On Thu, Dec 14, 2017 at 10:19:17AM +0100, Michal Hocko wrote: > On Thu 14-12-17 07:49:29, Paul Menzel wrote: > > I enabled the undefined behavior sanitizer, and built Linus’ master branch > > under Ubuntu 17.10 with gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0. > > > > ``` > > $ grep UBSAN /boot/config-4.15.0-rc3+ > > CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y > > # CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set > > CONFIG_UBSAN=y > > CONFIG_UBSAN_SANITIZE_ALL=y > > # CONFIG_UBSAN_ALIGNMENT is not set > > CONFIG_UBSAN_NULL=y > But this depends on the configuration because NR_VM_EVENT_ITEMS enables > some counters depending on the config. The stack is really large but > this is a function which is called from a shallow context wrt. stack so > we should fit into a single page. One way we could do, though, is to > make those large arrays static and use a internal lock around them. > Something like the following. What do you think Johannes? As you said, this is a very shallow stack. Why introduce a global lock to save memory, when we have a statically allocated 16k kernel stack which we know is plenty for that call chain? It introduces a potential bottleneck for nothing in return. -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html