On 10/07/2014 06:02 PM, Dave Hansen wrote: > On 09/29/2014 06:47 PM, Sasha Levin wrote: >> struct page { >> +#ifdef CONFIG_DEBUG_VM_POISON >> + u32 poison_start; >> +#endif >> /* First double word block */ >> unsigned long flags; /* Atomic flags, some possibly >> * updated asynchronously */ >> @@ -196,6 +199,9 @@ struct page { >> #ifdef LAST_CPUPID_NOT_IN_PAGE_FLAGS >> int _last_cpupid; >> #endif >> +#ifdef CONFIG_DEBUG_VM_POISON >> + u32 poison_end; >> +#endif >> } > > Does this break slub's __cmpxchg_double_slab trick? I thought it > required page->freelist and page->counters to be doubleword-aligned. I'll probably have to switch it to 8 bytes anyways to make it work with kasan. This should take care of the slub optimization as well. > It's not like we really require this optimization when we're debugging, > but trying to use it will unnecessarily slow things down. > > FWIW, if you're looking to trim down the number of lines of code, you > could certainly play some macro tricks and #ifdef tricks. > > struct vm_poison { > #ifdef CONFIG_DEBUG_VM_POISON > u32 val; > #endif > }; > > Then, instead of #ifdefs in each structure, you do: > > struct page { > struct vm_poison poison_start; > ... other gunk > struct vm_poison poison_end; > }; Agreed, I'll reword that in the next version. Thanks, Sasha -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>