OK, Accepted.

Mikulas



On Tue, 22 Apr 2025, Eric Biggers wrote:

> From: Eric Biggers <ebigg...@google.com>
> 
> Further limit verification in softirq (a.k.a. BH) context to cases where
> rescheduling of the interrupted task is not pending.
> 
> This helps prevent the CPU from spending too long in softirq context.
> 
> Note that handle_softirqs() in kernel/softirq.c already stops running
> softirqs in this same case.  However, that check is too coarse-grained,
> since many I/O requests can be processed in a single BLOCK_SOFTIRQ.
> 
> Signed-off-by: Eric Biggers <ebigg...@google.com>
> ---
>  drivers/md/dm-verity-target.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/md/dm-verity-target.c b/drivers/md/dm-verity-target.c
> index 3c427f18a04b3..4de2c226ac9db 100644
> --- a/drivers/md/dm-verity-target.c
> +++ b/drivers/md/dm-verity-target.c
> @@ -680,11 +680,12 @@ static void verity_bh_work(struct work_struct *w)
>  }
>  
>  static inline bool verity_use_bh(unsigned int bytes, unsigned short ioprio)
>  {
>       return ioprio <= IOPRIO_CLASS_IDLE &&
> -             bytes <= READ_ONCE(dm_verity_use_bh_bytes[ioprio]);
> +             bytes <= READ_ONCE(dm_verity_use_bh_bytes[ioprio]) &&
> +             !need_resched();
>  }
>  
>  static void verity_end_io(struct bio *bio)
>  {
>       struct dm_verity_io *io = bio->bi_private;
> 
> base-commit: a33b5a08cbbdd7aadff95f40cbb45ab86841679e
> -- 
> 2.49.0
> 


Reply via email to