[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [dm-devel] Re: [PATCH resubmit] do_mount: reduce stack consumption
- From: Andrew Morton <akpm osdl org>
- To: Neil Brown <neilb suse de>
- Cc: nickpiggin yahoo com au, heiko carstens de ibm com, linux-kernel vger kernel org, bunk stusta de, dm-devel redhat com, aherrman de ibm com, cplk itee uq edu au
- Subject: Re: [dm-devel] Re: [PATCH resubmit] do_mount: reduce stack consumption
- Date: Mon, 7 Nov 2005 17:15:07 -0800
Neil Brown <neilb suse de> wrote:
>
> On Tuesday November 8, nickpiggin yahoo com au wrote:
> > Andrew Morton wrote:
> > >
> > > More state in the task_strut is a bit sad, but not nearly as sad as deep
> > > recursion in our deepest codepath..
> > >
> > > Possibly one could do:
> > >
> > > struct make_request_state {
> > > struct bio *bio_list;
> > > struct bio **bio_tail;
> > > };
> > >
> > > and stick a `struct make_request_state *' into the task_struct and actually
> > > allocate the thing on the stack. That's not much nicer though.
> >
> > Possibly it could go into struct io_context?
> >
>
> My quick reading of the code says that we could have to
> allocate the struct right there in generic_make_request, and I don't
> think we can be certain that such an allocation will succeed.
With this sort of lifecycle it's more appropriat to allocate the struct on
the stack and to put a pointer to it into task_struct.
> Code that uses io_context can limp along if it doesn't exist.
> The new generic_make_request needs this bio_list to be present
> or it cannot do it's job.
>
> Just how tight are we for space in task_struct?
I don't recall anyone getting outraged about it.
> It seems to have a
> fair amount of cruft in it.
yup.
> Is it getting close to one-page or something?
1280 bytes on my x86
> Can we just split the less interesting stuff up into a separate
> structure, allocate a separate page for that are fork time, and leave
> just a pointer in the task_struct?
Something like that, if it becomes a problem.
Probably there are various deporking opportunities in there.
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]