From owner-svn-src-head@freebsd.org Mon Dec 11 04:32:38 2017 Return-Path: Delivered-To: svn-src-head@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 89D7CE8576B; Mon, 11 Dec 2017 04:32:38 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 56EF270985; Mon, 11 Dec 2017 04:32:38 +0000 (UTC) (envelope-from cem@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id vBB4WbdF021092; Mon, 11 Dec 2017 04:32:37 GMT (envelope-from cem@FreeBSD.org) Received: (from cem@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id vBB4WbnE021090; Mon, 11 Dec 2017 04:32:37 GMT (envelope-from cem@FreeBSD.org) Message-Id: <201712110432.vBB4WbnE021090@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: cem set sender to cem@FreeBSD.org using -f From: Conrad Meyer Date: Mon, 11 Dec 2017 04:32:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r326758 - in head/sys/i386: conf include X-SVN-Group: head X-SVN-Commit-Author: cem X-SVN-Commit-Paths: in head/sys/i386: conf include X-SVN-Commit-Revision: 326758 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Dec 2017 04:32:38 -0000 Author: cem Date: Mon Dec 11 04:32:37 2017 New Revision: 326758 URL: https://svnweb.freebsd.org/changeset/base/326758 Log: i386: Bump KSTACK_PAGES default to match amd64 Logically, extend r286288 to cover all threads, by default. The world has largely moved on from i386. Most FreeBSD users and developers test on amd64 hardware. For better or worse, we have written a non-trivial amount of kernel code that relies on stacks larger than 8 kB, and it "just works" on amd64, so there has been little incentive to shrink it. amd64 had its KSTACK_PAGES bumped to 4 back in Peter's initial AMD64 commit, r114349, in 2003. Since that time, i386 has limped along on a stack half the size. We've even observed the stack overflows years ago, but neglected to fix the issue; see the 20121223 and 20150728 entries in UPDATING. If anyone is concerned with this change, I suggest they configure their AMD64 kernels with KSTACK_PAGES 2 and fix the fallout there first. Eugene has identified a list of high stack usage functions in the first PR below. PR: 219476, 224218 Reported by: eugen@, Shreesh Holla Relnotes: maybe Sponsored by: Dell EMC Isilon Modified: head/sys/i386/conf/NOTES head/sys/i386/include/param.h Modified: head/sys/i386/conf/NOTES ============================================================================== --- head/sys/i386/conf/NOTES Mon Dec 11 02:44:15 2017 (r326757) +++ head/sys/i386/conf/NOTES Mon Dec 11 04:32:37 2017 (r326758) @@ -968,7 +968,7 @@ device ndis # KSTACK_PAGES is the number of memory pages to assign to the kernel # stack of each thread. -options KSTACK_PAGES=3 +options KSTACK_PAGES=5 # Enable detailed accounting by the PV entry allocator. Modified: head/sys/i386/include/param.h ============================================================================== --- head/sys/i386/include/param.h Mon Dec 11 02:44:15 2017 (r326757) +++ head/sys/i386/include/param.h Mon Dec 11 04:32:37 2017 (r326758) @@ -113,7 +113,7 @@ #define IOPAGES 2 /* pages of i/o permission bitmap */ #ifndef KSTACK_PAGES -#define KSTACK_PAGES 2 /* Includes pcb! */ +#define KSTACK_PAGES 4 /* Includes pcb! */ #endif #define KSTACK_GUARD_PAGES 1 /* pages of kstack guard; 0 disables */ #if KSTACK_PAGES < 4