Re: [PATCH 04/13] mm: Track NR_KERNEL_STACK in pages instead of number of stacks
From: Josh Poimboeuf
Date: Thu Jun 16 2016 - 15:39:32 EST
On Thu, Jun 16, 2016 at 10:39:43AM -0700, Andy Lutomirski wrote:
> On Thu, Jun 16, 2016 at 8:33 AM, Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
> > On Wed, Jun 15, 2016 at 05:28:26PM -0700, Andy Lutomirski wrote:
> >> Currently, NR_KERNEL_STACK tracks the number of kernel stacks in a
> >> zone. This only makes sense if each kernel stack exists entirely in
> >> one zone, and allowing vmapped stacks could break this assumption.
> >>
> >> It turns out that the code for tracking kernel stack allocations in
> >> units of pages is slightly simpler, so just switch to counting
> >> pages.
> >>
> >> Cc: Vladimir Davydov <vdavydov@xxxxxxxxxxxxx>
> >> Cc: Johannes Weiner <hannes@xxxxxxxxxxx>
> >> Cc: Michal Hocko <mhocko@xxxxxxxxxx>
> >> Cc: linux-mm@xxxxxxxxx
> >> Signed-off-by: Andy Lutomirski <luto@xxxxxxxxxx>
> >> ---
> >> fs/proc/meminfo.c | 2 +-
> >> kernel/fork.c | 3 ++-
> >> mm/page_alloc.c | 3 +--
> >> 3 files changed, 4 insertions(+), 4 deletions(-)
> >
> > You missed another usage of NR_KERNEL_STACK in drivers/base/node.c.
>
> Thanks.
>
> The real reason I cc'd you was so you could look at
> rewind_stack_do_exit and the sneaky trick I did in no_context in the
> last patch, though. :) Both survive objtool, but I figured I'd check
> with objtool's author as well. If there was a taint bit I could set
> saying "kernel is hosed -- don't try to apply live patches any more",
> I'd have extra confidence.
I think it all looks fine from an objtool and a live patching
standpoint. Other than my previous comment about setting the stack
pointer correctly before calling do_exit(), I didn't see anything else
which would mess up the stack of a sleeping task, which is all I really
care about.
--
Josh