mbox series

[0/7,v2,RFC] Make wake_up_{bit,var} less fragile

Message ID 20240826063659.15327-1-neilb@suse.de (mailing list archive)
Headers show
Series Make wake_up_{bit,var} less fragile | expand

Message

NeilBrown Aug. 26, 2024, 6:30 a.m. UTC
This is a second attempt to make wake_up_{bit,var} less fragile.
This version doesn't change those functions much, but instead
improves the documentation and provides some helpers which
both serve as patterns to follow and alternates so that use of the
fragile functions can be limited or eliminated.

The only change to either function is that wake_up_bit() is changed to
take an unsigned long * rather than a void *.  This necessitates the
first patch which changes the one place where something other then
unsigned long * is passed to wake_up bit - it is in block/.

The final patch modifies the same bit of code as a demonstration of one
of the new APIs that has been added.

Thanks,
NeilBrown


 [PATCH 1/7] block: change wait on bd_claiming to use a var_waitqueue,
 [PATCH 2/7] sched: change wake_up_bit() and related function to
 [PATCH 3/7] sched: Improve documentation for wake_up_bit/wait_on_bit
 [PATCH 4/7] sched: Document wait_var_event() family of functions and
 [PATCH 5/7] sched: Add test_and_clear_wake_up_bit() and
 [PATCH 6/7] sched: Add wait/wake interface for variable updated under
 [PATCH 7/7] Block: switch bd_prepare_to_claim to use

Comments

NeilBrown Sept. 15, 2024, 11:52 p.m. UTC | #1
Hi Ingo and Peter,
 have you had a chance to look at these yet?  Should I resend?  Maybe
 after -rc is out?

Thanks,
NeilBrown


On Mon, 26 Aug 2024, NeilBrown wrote:
> This is a second attempt to make wake_up_{bit,var} less fragile.
> This version doesn't change those functions much, but instead
> improves the documentation and provides some helpers which
> both serve as patterns to follow and alternates so that use of the
> fragile functions can be limited or eliminated.
> 
> The only change to either function is that wake_up_bit() is changed to
> take an unsigned long * rather than a void *.  This necessitates the
> first patch which changes the one place where something other then
> unsigned long * is passed to wake_up bit - it is in block/.
> 
> The final patch modifies the same bit of code as a demonstration of one
> of the new APIs that has been added.
> 
> Thanks,
> NeilBrown
> 
> 
>  [PATCH 1/7] block: change wait on bd_claiming to use a var_waitqueue,
>  [PATCH 2/7] sched: change wake_up_bit() and related function to
>  [PATCH 3/7] sched: Improve documentation for wake_up_bit/wait_on_bit
>  [PATCH 4/7] sched: Document wait_var_event() family of functions and
>  [PATCH 5/7] sched: Add test_and_clear_wake_up_bit() and
>  [PATCH 6/7] sched: Add wait/wake interface for variable updated under
>  [PATCH 7/7] Block: switch bd_prepare_to_claim to use
> 
>