On Wed, Mar 05, 2014 at 12:00:42PM +0100, Laurent Pinchart wrote: > Hi Dan, > > On Monday 03 March 2014 12:53:11 Dan Carpenter wrote: > > On Mon, Mar 03, 2014 at 10:14:22AM +0900, Jingoo Han wrote: > > > On Wednesday, February 26, 2014 3:26 PM, Viresh Kumar wrote: > > > > On 26 February 2014 10:49, Joe Perches <[email protected]> wrote: > > > > > Look at warn_alloc_failed() in mm/page_alloc.c > > > > > > > > Okay, there is a print there. But I am not able to reach to this routine > > > > from devm_kzalloc(). > > > > > > > > devm_kzalloc() <linux/device.h> > > > > devm_kmalloc() <drivers/base/devres.c> > > > > alloc_dr() <drivers/base/devres.c> > > > > kmalloc_track_caller() <linux/slab.h> > > > > __kmalloc_track_caller() <mm/slab,slub/slob.c> Taking slab as example: > > > > __do_kmalloc() <mm/slab.c> > > > > > > (+CC Laurent Pinchart, Dan Carpenter) > > > > > > Right, I also cannot find that warn_alloc_failed() is called, during > > > devm_kzalloc(). > > > > > > However, in the case of vmalloc(), warn_alloc_failed() is called > > > as below. > > > > > > ./mm/vmalloc.c > > > vmalloc() > > > __vmalloc_node_flags() > > > __vmalloc_node() > > > __vmalloc_node_range() > > > > > > ./mm/page_alloc.c > > > warn_alloc_failed() > > > > > > > ... > > > > > > > > I can see cases where NULL is returned after above paths and the > > > > function you mentioned wasn't there. So, I am not sure that we will get > > > > a print for sure for any error that might occur from devm_kzalloc(). > > > > > > I guess that slab_out_of_memory() <./mm/slub.c> may print it for any > > > errors. But, I am not sure. :-( > > > > devm_kzalloc() is just kmalloc(). The OOM error messages are the same. > > Sure, but I wasn't sure whether all error code paths in kmalloc() resulted in > an OOM message. For instance, the following code path results in an > allocation > failure but doesn't seem to print an OOM message: > > kmalloc > __kmalloc > __do_kmalloc > slab_alloc > slab_should_failslab > should_failslab > should_fail > > A bit far-fetched possibly as it requires fault injection. I haven't found > any > other such code path, but my understanding of that code is a bit limited.
should_fail() only returns true after calling fail_dump(). You can pass (GFP_KERNEL | __GFP_NOWARN) if you want to turn off warnings. Otherwise it shuold print a warning. regards, dan carpenter -- To unsubscribe from this list: send the line "unsubscribe linux-pwm" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
