Re: [PATCH v7 9/9] block: Avoid deadlocks with bio allocation bystacking drivers

From: Tejun Heo
Date: Wed Sep 05 2012 - 00:37:35 EST


Hello, Dave.

On Wed, Sep 05, 2012 at 01:57:59PM +1000, Dave Chinner wrote:
> > But, yeah, this can't be solved by enlarging the stack size. The
> > upper limit is unbound.
>
> Sure, but recursion issue is isolated to the block layer.
>
> If we can still submit IO directly through the block layer without
> pushing it off to a work queue, then the overall stack usage problem
> still exists. But if the block layer always pushes the IO off into
> another workqueue to avoid stack overflows, then the context
> switches are going to cause significant performance regressions for
> high IOPS workloads. I don't really like either situation.

Kent's proposed solution doesn't do that. The rescuer work item is
used iff mempool allocation fails w/o GFP_WAIT. IOW, we're already
under severe memory pressure and stalls are expected all around the
kernel (somehow this sounds festive...) It doesn't alter the
breadth-first walk of bio decomposition and shouldn't degrade
performance in any noticeable way.

> So while you are discussing stack issues, think a little about the
> bigger picture outside of the immediate issue at hand - a better
> solution for everyone might pop up....

It's probably because I haven't been bitten much from stack overflow
but I'd like to keep thinking that stack overflows are extremely
unusual and the ones causing them are the bad ones. Thank you very
much. :p

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/