svn commit: r286288 - in head/sys/i386: i386 include
Steven Hartland
steven.hartland at multiplay.co.uk
Tue Aug 4 14:01:10 UTC 2015
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 at 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
>
More information about the svn-src-all
mailing list