On Thu, 19 Nov 2015 12:40:50 -0800 (PST) David Rientjes <rientjes@xxxxxxxxxx> wrote: > On Tue, 17 Nov 2015, Jesper Dangaard Brouer wrote: > > > I did manage to provoke/test the error path in kmem_cache_alloc_bulk(), > > by using fault-injection framework "fail_page_alloc". > > > > But was a little hard to trigger SLUB errors with this, because SLUB > > retries after a failure, and second call to alloc_pages() is done with > > lower order. > > > > If order is lowered to zero, then should_fail_alloc_page() will skip it. > > And just lowering /sys/kernel/debug/fail_page_alloc/min-order=0 is not > > feasible as even fork starts to fail. I managed to work-around this by > > using "space" setting. > > > > Created a script to ease this tricky invocation: > > https://github.com/netoptimizer/prototype-kernel/blob/master/tests/fault-inject/fail01_kmem_cache_alloc_bulk.sh > > > > Any chance you could proffer some of your scripts in the form of patches > to the tools/testing directory? Anything that can reliably trigger rarely > executed code is always useful. Perhaps that is a good idea. I think should move the directory location in my git-repo prototype-kernel[1] to reflect this directory layout, like I do with real kernel stuff. And when we are happy with the quality of the scripts we can "move" it to the kernel. (Like I did with my pktgen tests[4], now located in samples/pktgen/). A question; where should/could we place the kernel module slab_bulk_test04_exhaust_mem[1] that my fail01 script depends on? BTW, I've also added a script for testing NULL handling in normal kmem_cache_alloc() call see[3]. -- Best regards, Jesper Dangaard Brouer MSc.CS, Principal Kernel Engineer at Red Hat Author of http://www.iptv-analyzer.org LinkedIn: http://www.linkedin.com/in/brouer [1] https://github.com/netoptimizer/prototype-kernel/ [2] https://github.com/netoptimizer/prototype-kernel/blob/master/kernel/mm/slab_bulk_test04_exhaust_mem.c [3] https://github.com/netoptimizer/prototype-kernel/blob/master/tests/fault-inject/fail02_kmem_cache_alloc.sh [4] https://github.com/netoptimizer/network-testing/tree/master/pktgen -- 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>