On Tue, Nov 21, 2006 at 11:02:23PM +0100, Jesper Juhl wrote:...
> On 21/11/06, David Chatterton <chatz@xxxxxxxxxxxxxxxxx> wrote:
That sounds good. I'll be keeping an eye out for that one :)
> >Audits have been done in the past and will again be done in the future to
> >try to
> >identify areas where XFS could use less stack space by reducing/avoid large
> >local variables. Reducing the code path is far more difficult.
> >
> I realize that fixing the problem may be difficult. I just wanted to
> make sure that people were informed that there is an actual problem
> and provide as much info as possible so that perhaps in the future it
> can be fixed... :)
I've got one that prevents gcc from inlining single use functions in XFS
that I need to finish off, and that results in some significant stack
usage reductions in some XFS functions.
However, XFS is only one part of the picture - when you put NFS on top,True, there are a lot of players involved here, although XFS seems (to
DM+md then scsi/FC below and then you nest a soft irq that might go
20 functions deep as well - then 4k stacks simply aren't big enough.
> I'm reading through the XFS code myself at the moment and I'll be sureI'll try to spot some of the remaining low hanging fruit ;)
> to submit patches if I spot something that could help reduce stack
> usage.
Most of the low hanging fruit is already gone. The problem we are
facing now for further reductions in stack usage is the fact that we
need to factor code. That is a major undertaking and has a _lot_ of
risk associated with it....
> >There is active discussion about reducing inlining:Nice. Will be good to get that in.
> >http://bugzilla.kernel.org/show_bug.cgi?id=7364
>
> Thanks, I'll check that out.
That's one of the few remaining low hanging fruit, and that's fixed
in the patches I already have.
> >Thanks for traces, I've captured this information.I'll try to extract a copy of each unique trace that involves xfs,
> >
> You are welcome. If you want/need more traces then I've got ~2.1G
> worth of traces that you can have :)
Well, we don't need that many, but it would be nice to have a
set of unique traces that lead to overflows - could you process
them in some way just to extract just the unique XFS traces that
occur?