Re: [PATCH] vfs: Avoid IPI storm due to bh LRU invalidation

From: Jan Kara
Date: Mon Feb 06 2012 - 11:47:35 EST

On Mon 06-02-12 21:12:36, Srivatsa S. Bhat wrote:
> On 02/06/2012 07:25 PM, Jan Kara wrote:
> > When discovery of lots of disks happen in parallel, we call
> > invalidate_bh_lrus() once for each disk from partitioning code resulting in a
> > storm of IPIs and causing a softlockup detection to fire (it takes several
> > *minutes* for a machine to execute all the invalidate_bh_lrus() calls).
> >
> > Fix the issue by allowing only single invalidation to run using a mutex and let
> > waiters for mutex figure out whether someone invalidated LRUs for them while
> > they were waiting.
> >
> > Signed-off-by: Jan Kara <jack@xxxxxxx>
> > ---
> > fs/buffer.c | 23 ++++++++++++++++++++++-
> > 1 files changed, 22 insertions(+), 1 deletions(-)
> >
> > I feel this is slightly hacky approach but it works. If someone has better
> > idea, please speak up.
> >
> Something related that you might be interested in:
> (This is part of Gilad's patchset that tries to reduce cross-CPU IPI
> interference.)
Thanks for the pointer. I didn't know about it. As Hannes wrote, this
need not be enough for our use case as there might indeed be some bhs in
the LRU. But I'd be interested how well the patchset works anyway. Maybe it
would be enough because after all when we invalidate LRUs subsequent
callers will see them empty and not issue IPI? Hannes, can you give a try
to the patches?

Jan Kara <jack@xxxxxxx>
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at