linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/7] jbd2: Bit spinlock conversions
@ 2019-08-02 15:13 Jan Kara
  2019-08-02 15:13 ` [PATCH 1/7] jbd2: Simplify journal_unmap_buffer() Jan Kara
                   ` (7 more replies)
  0 siblings, 8 replies; 15+ messages in thread
From: Jan Kara @ 2019-08-02 15:13 UTC (permalink / raw)
  To: Ted Tso
  Cc: linux-ext4, Thomas Gleixner, Peter Zijlstra, Ingo Molnar,
	Steven Rostedt, Anna-Maria Gleixner, Julia Cartwright, Jan Kara

Hello,

This series is derived from Thomas' series to get rid of bit spinlocks in
buffer head code. These patches convert BH_State bit spinlock to an ordinary
spinlock inside struct journal_head and somewhat reduce the critical section
under BH_JournalHead bit spinlock so that it is fine for RT. 

Motivation from original Thomas' series:

Bit spinlocks are problematic if PREEMPT_RT is enabled. They disable
preemption, which is undesired for latency reasons and breaks when regular
spinlocks are taken within the bit_spinlock locked region because regular
spinlocks are converted to 'sleeping spinlocks' on RT.

Bit spinlocks are also not covered by lock debugging, e.g. lockdep. With
the spinlock substitution in place, they can be exposed via a new config
switch: CONFIG_DEBUG_BIT_SPINLOCKS.

WRT patch routing: Since these are non-trivial changes to JBD2 and independent
of the rest of the series from Thomas, I think it would be safest to route
them through ext4 tree where they get most testing. Thoughts?

								Honza

^ permalink raw reply	[flat|nested] 15+ messages in thread
* [PATCH 0/7 v2] jbd2: Bit spinlock conversions
@ 2019-08-09 12:42 Jan Kara
  2019-08-09 12:42 ` [PATCH 5/7] jbd2: Don't call __bforget() unnecessarily Jan Kara
  0 siblings, 1 reply; 15+ messages in thread
From: Jan Kara @ 2019-08-09 12:42 UTC (permalink / raw)
  To: Ted Tso
  Cc: linux-ext4, Thomas Gleixner, Peter Zijlstra, Ingo Molnar,
	Steven Rostedt, Anna-Maria Gleixner, Julia Cartwright, Jan Kara

Hello,

This series is derived from Thomas' series to get rid of bit spinlocks in
buffer head code. These patches convert BH_State bit spinlock to an ordinary
spinlock inside struct journal_head and somewhat reduce the critical section
under BH_JournalHead bit spinlock so that it is fine for RT. 

Motivation from original Thomas' series:

Bit spinlocks are problematic if PREEMPT_RT is enabled. They disable
preemption, which is undesired for latency reasons and breaks when regular
spinlocks are taken within the bit_spinlock locked region because regular
spinlocks are converted to 'sleeping spinlocks' on RT.

Bit spinlocks are also not covered by lock debugging, e.g. lockdep. With
the spinlock substitution in place, they can be exposed via a new config
switch: CONFIG_DEBUG_BIT_SPINLOCKS.

Ted, can you pick up these patches? Thanks!

Changes since v1:
* Fixed up compilation breakage on UP due to missing linux/spinlock.h include

								Honza

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2019-10-30 11:49 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-02 15:13 [PATCH 0/7] jbd2: Bit spinlock conversions Jan Kara
2019-08-02 15:13 ` [PATCH 1/7] jbd2: Simplify journal_unmap_buffer() Jan Kara
2019-08-02 15:13 ` [PATCH 2/7] jbd2: Remove jbd_trylock_bh_state() Jan Kara
2019-08-02 15:13 ` [PATCH 3/7] jbd2: Move dropping of jh reference out of un/re-filing functions Jan Kara
2019-08-02 15:13 ` [PATCH 4/7] jbd2: Drop unnecessary branch from jbd2_journal_forget() Jan Kara
2019-08-02 15:13 ` [PATCH 5/7] jbd2: Don't call __bforget() unnecessarily Jan Kara
2019-08-02 15:13 ` [PATCH 6/7] jbd2: Make state lock a spinlock Jan Kara
2019-08-07 12:57   ` kbuild test robot
2019-08-09 12:38     ` Jan Kara
2019-08-02 15:13 ` [PATCH 7/7] jbd2: Free journal head outside of locked region Jan Kara
2019-08-02 20:46 ` [PATCH 0/7] jbd2: Bit spinlock conversions Thomas Gleixner
2019-08-09 12:42 [PATCH 0/7 v2] " Jan Kara
2019-08-09 12:42 ` [PATCH 5/7] jbd2: Don't call __bforget() unnecessarily Jan Kara
2019-10-28 15:28   ` Theodore Y. Ts'o
2019-10-28 16:01     ` Theodore Y. Ts'o
2019-10-30 11:49       ` Jan Kara

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).