Date: Tue, 4 Aug 2015 15:00:59 +0100 From: Steven Hartland <steven.hartland@multiplay.co.uk> To: Konstantin Belousov <kib@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r286288 - in head/sys/i386: i386 include Message-ID: <55C0C59B.5040906@multiplay.co.uk> In-Reply-To: <201508041350.t74DoraL020588@repo.freebsd.org> References: <201508041350.t74DoraL020588@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This effects other platforms arm and mips spring to mind from when I last checked. Would you like me to backout the checks I added to the ZFS module once all the platforms are addressed? Regards Steve On 04/08/2015 14:50, Konstantin Belousov wrote: > Author: kib > Date: Tue Aug 4 13:50:52 2015 > New Revision: 286288 > URL: https://svnweb.freebsd.org/changeset/base/286288 > > Log: > Give large kernel stack to the initial thread . Otherwise, ZFS > overflows the stack during root mount in some configurations. > > Tested by: Fabian Keil <freebsd-listen@fabiankeil.de> (previous version) > Sponsored by: The FreeBSD Foundation > MFC after: 2 weeks > > Modified: > head/sys/i386/i386/genassym.c > head/sys/i386/i386/locore.s > head/sys/i386/i386/machdep.c > head/sys/i386/include/param.h > > Modified: head/sys/i386/i386/genassym.c > ============================================================================== > --- head/sys/i386/i386/genassym.c Tue Aug 4 13:42:44 2015 (r286287) > +++ head/sys/i386/i386/genassym.c Tue Aug 4 13:50:52 2015 (r286288) > @@ -103,6 +103,7 @@ ASSYM(V_SYSCALL, offsetof(struct vmmeter > ASSYM(V_INTR, offsetof(struct vmmeter, v_intr)); > /* ASSYM(UPAGES, UPAGES);*/ > ASSYM(KSTACK_PAGES, KSTACK_PAGES); > +ASSYM(TD0_KSTACK_PAGES, TD0_KSTACK_PAGES); > ASSYM(PAGE_SIZE, PAGE_SIZE); > ASSYM(NPTEPG, NPTEPG); > ASSYM(NPDEPG, NPDEPG); > > Modified: head/sys/i386/i386/locore.s > ============================================================================== > --- head/sys/i386/i386/locore.s Tue Aug 4 13:42:44 2015 (r286287) > +++ head/sys/i386/i386/locore.s Tue Aug 4 13:50:52 2015 (r286288) > @@ -731,7 +731,7 @@ no_kernend: > movl %esi,R(IdlePTD) > > /* Allocate KSTACK */ > - ALLOCPAGES(KSTACK_PAGES) > + ALLOCPAGES(TD0_KSTACK_PAGES) > movl %esi,R(p0kpa) > addl $KERNBASE, %esi > movl %esi, R(proc0kstack) > @@ -800,7 +800,7 @@ no_kernend: > > /* Map proc0's KSTACK in the physical way ... */ > movl R(p0kpa), %eax > - movl $(KSTACK_PAGES), %ecx > + movl $(TD0_KSTACK_PAGES), %ecx > fillkptphys($PG_RW) > > /* Map ISA hole */ > > Modified: head/sys/i386/i386/machdep.c > ============================================================================== > --- head/sys/i386/i386/machdep.c Tue Aug 4 13:42:44 2015 (r286287) > +++ head/sys/i386/i386/machdep.c Tue Aug 4 13:50:52 2015 (r286288) > @@ -2445,7 +2445,7 @@ init386(first) > #endif > > thread0.td_kstack = proc0kstack; > - thread0.td_kstack_pages = KSTACK_PAGES; > + thread0.td_kstack_pages = TD0_KSTACK_PAGES; > > /* > * This may be done better later if it gets more high level > > Modified: head/sys/i386/include/param.h > ============================================================================== > --- head/sys/i386/include/param.h Tue Aug 4 13:42:44 2015 (r286287) > +++ head/sys/i386/include/param.h Tue Aug 4 13:50:52 2015 (r286288) > @@ -114,6 +114,11 @@ > #define KSTACK_PAGES 2 /* Includes pcb! */ > #endif > #define KSTACK_GUARD_PAGES 1 /* pages of kstack guard; 0 disables */ > +#if KSTACK_PAGES < 4 > +#define TD0_KSTACK_PAGES 4 > +#else > +#define TD0_KSTACK_PAGES KSTACK_PAGES > +#endif > > /* > * Ceiling on amount of swblock kva space, can be changed via >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?55C0C59B.5040906>