Kernel/Compiler bug
Larry Baird
lab at gta.com
Thu Oct 2 14:02:39 UTC 2014
> > Is this something that can be bumped in the tree for GENERIC?
>
> The cost of the increased size for kernel stack is significant, even
> on architectures with ample KVA. This must not be done just because
> some non-default kernel settings cause stack overflow. If somebody
> feels himself qualified enough to tune compiler options, it must
> understand the consequences and do other required adjustments,
> including kernel stack size tuning.
>
> FWIW, there was old reason why -O0 did not worked for the kernel.
> The cpufunc.h inlines are not provided in non-inline version, and
> at least gcc at -O0 level sometimes generated the call to nonexisting
> function, leading to linking failure. It is curious that clang always
> inlines at -O0, but it is possible, although unlikely, that kernel
> source was changed to be immune.
Overall I aggree with your comments. The fact is that I have been using
-O0 and -O1 on custom kernels for years. It makes using kgdb much more
effective. Both optimization levels work for a custom kernel I have for
FreeBSD 10.0 but do not work for FreeBSD 10.1. I just tried turning off
optimization for a FreeBSD 10.0 release GENERIC kernel. Same issue. My
concern is that opimized kernels may be close to the edge as well. Since
people have been runing 10.0 for a while without issue, maybe me concern
is unfounded. Anybody have any thoughts on how to instrument a kernel
build option to check for maximum used stack depth? It would be nice to
prove that my concern is unfounded.
Larry
--
------------------------------------------------------------------------
Larry Baird
Global Technology Associates, Inc. 1992-2012 | http://www.gta.com
Celebrating Twenty Years of Software Innovation | Orlando, FL
Email: lab at gta.com | TEL 407-380-0220
More information about the freebsd-hackers
mailing list