svn commit: r351456 - head/sys/amd64/amd64

Konstantin Belousov kostikbel at gmail.com
Sat Aug 24 16:15:19 UTC 2019


On Sat, Aug 24, 2019 at 08:49:42AM -0700, Conrad Meyer wrote:
> Hi Konstantin,
> 
> What is the motivation for this change?  The commit message doesn't
> really describe why it was done.
Really it does. There is no point to request allocations for e.g.
doublefault stack to be at the local domain, because this stack is only
used once.  Doublefault is definitely a machine halt situation, it does
not matter if it generates inter-socket traffic to handle.

Same for boot stacks, and for mce.

The change avoids unnecessary constraints.

> 
> Thanks,
> Conrad
> 
> On Sat, Aug 24, 2019 at 8:28 AM Konstantin Belousov <kib at freebsd.org> wrote:
> >
> > Author: kib
> > Date: Sat Aug 24 15:28:40 2019
> > New Revision: 351456
> > URL: https://svnweb.freebsd.org/changeset/base/351456
> >
> > Log:
> >   Do not constrain allocations for doublefault, boot, and mce stacks.
> >
> >   All these stacks are used only once (doublefault, boot) or very rare
> >   (mce).
> >
> >   Reviewed by:  markj
> >   Tested by:    pho
> >   Sponsored by: The FreeBSD Foundation
> >   Differential revision:        https://reviews.freebsd.org/D21320
> >
> > Modified:
> >   head/sys/amd64/amd64/mp_machdep.c
> >
> > Modified: head/sys/amd64/amd64/mp_machdep.c
> > ==============================================================================
> > --- head/sys/amd64/amd64/mp_machdep.c   Sat Aug 24 15:25:53 2019        (r351455)
> > +++ head/sys/amd64/amd64/mp_machdep.c   Sat Aug 24 15:28:40 2019        (r351456)
> > @@ -475,13 +475,11 @@ native_start_all_aps(void)
> >                         domain = acpi_pxm_get_cpu_locality(apic_id);
> >  #endif
> >                 /* allocate and set up an idle stack data page */
> > -               bootstacks[cpu] = (void *)kmem_malloc_domainset(
> > -                   DOMAINSET_FIXED(domain), kstack_pages * PAGE_SIZE,
> > +               bootstacks[cpu] = (void *)kmem_malloc(kstack_pages * PAGE_SIZE,
> >                     M_WAITOK | M_ZERO);
> > -               doublefault_stack = (char *)kmem_malloc_domainset(
> > -                   DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO);
> > -               mce_stack = (char *)kmem_malloc_domainset(
> > -                   DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO);
> > +               doublefault_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK |
> > +                   M_ZERO);
> > +               mce_stack = (char *)kmem_malloc(PAGE_SIZE, M_WAITOK | M_ZERO);
> >                 nmi_stack = (char *)kmem_malloc_domainset(
> >                     DOMAINSET_FIXED(domain), PAGE_SIZE, M_WAITOK | M_ZERO);
> >                 dbg_stack = (char *)kmem_malloc_domainset(
> >


More information about the svn-src-all mailing list