* Re: [PATCH] kmalloc: Return NULL instead of link failure [not found] <4975F376.4010506@suse.com> @ 2009-01-27 21:37 ` Andrew Morton 2009-01-27 21:44 ` Jeff Mahoney 2009-01-27 21:49 ` Pekka Enberg 0 siblings, 2 replies; 3+ messages in thread From: Andrew Morton @ 2009-01-27 21:37 UTC (permalink / raw) To: Jeff Mahoney; +Cc: torvalds, linux-kernel, linux-mm, Pekka Enberg On Tue, 20 Jan 2009 10:53:26 -0500 Jeff Mahoney <jeffm@suse.com> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > The SLAB kmalloc with a constant value isn't consistent with the other > implementations because it bails out with __you_cannot_kmalloc_that_much > rather than returning NULL and properly allowing the caller to fall back > to vmalloc or take other action. This doesn't happen with a non-constant > value or with SLOB or SLUB. > > Starting with 2.6.28, I've been seeing build failures on s390x. This is > due to init_section_page_cgroup trying to allocate 2.5MB when the max > size for a kmalloc on s390x is 2MB. > > It's failing because the value is constant. The workarounds at the call > size are ugly and the caller shouldn't have to change behavior depending > on what the backend of the API is. > > So, this patch eliminates the link failure and returns NULL like the > other implementations. > OK by me, is that's what the other sl[abcd...xyz]b.c implementations do. That __you_cannot_kmalloc_that_much() thing has frequently been a PITA anyway - some gcc versions flub the constant_p() test and end up referencing __you_cannot_kmalloc_that_much() when the callsite was passing a variable `size' arg. > - --- > include/linux/slab_def.h | 10 ++-------- > 1 file changed, 2 insertions(+), 8 deletions(-) > > - --- a/include/linux/slab_def.h > +++ b/include/linux/slab_def.h > @@ -43,10 +43,7 @@ static inline void *kmalloc(size_t size, > i++; > #include <linux/kmalloc_sizes.h> > #undef CACHE > - - { > - - extern void __you_cannot_kmalloc_that_much(void); > - - __you_cannot_kmalloc_that_much(); > - - } > + return NULL; > found: > #ifdef CONFIG_ZONE_DMA > if (flags & GFP_DMA) > @@ -77,10 +74,7 @@ static inline void *kmalloc_node(size_t > i++; > #include <linux/kmalloc_sizes.h> > #undef CACHE > - - { > - - extern void __you_cannot_kmalloc_that_much(void); > - - __you_cannot_kmalloc_that_much(); > - - } > + return NULL; > found: > #ifdef CONFIG_ZONE_DMA > if (flags & GFP_DMA) > Strange patch format, but it applied. I'll punt this patch in the Pekka direction. Do you think we should include it in 2.6.28.x? -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] kmalloc: Return NULL instead of link failure 2009-01-27 21:37 ` [PATCH] kmalloc: Return NULL instead of link failure Andrew Morton @ 2009-01-27 21:44 ` Jeff Mahoney 2009-01-27 21:49 ` Pekka Enberg 1 sibling, 0 replies; 3+ messages in thread From: Jeff Mahoney @ 2009-01-27 21:44 UTC (permalink / raw) To: Andrew Morton; +Cc: torvalds, linux-kernel, linux-mm, Pekka Enberg -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Andrew Morton wrote: > Strange patch format, but it applied. Ugh, sorry about that. I forgot to disable the GPG signing. It escapes - -'s like that. > I'll punt this patch in the Pekka direction. > > Do you think we should include it in 2.6.28.x? I think so. It's a corner case, but does fix a build failure. - -Jeff - -- Jeff Mahoney SUSE Labs -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iEYEARECAAYFAkl/gCcACgkQLPWxlyuTD7IdcwCgkdOmH3P8a9q1RQYsOcCkG8C0 TYsAn3rEJMROguhVqbWuFlzg58t+vVEL =RM/e -----END PGP SIGNATURE----- -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] kmalloc: Return NULL instead of link failure 2009-01-27 21:37 ` [PATCH] kmalloc: Return NULL instead of link failure Andrew Morton 2009-01-27 21:44 ` Jeff Mahoney @ 2009-01-27 21:49 ` Pekka Enberg 1 sibling, 0 replies; 3+ messages in thread From: Pekka Enberg @ 2009-01-27 21:49 UTC (permalink / raw) To: Andrew Morton; +Cc: Jeff Mahoney, torvalds, linux-kernel, linux-mm Andrew Morton wrote: > On Tue, 20 Jan 2009 10:53:26 -0500 > Jeff Mahoney <jeffm@suse.com> wrote: > >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> The SLAB kmalloc with a constant value isn't consistent with the other >> implementations because it bails out with __you_cannot_kmalloc_that_much >> rather than returning NULL and properly allowing the caller to fall back >> to vmalloc or take other action. This doesn't happen with a non-constant >> value or with SLOB or SLUB. >> >> Starting with 2.6.28, I've been seeing build failures on s390x. This is >> due to init_section_page_cgroup trying to allocate 2.5MB when the max >> size for a kmalloc on s390x is 2MB. >> >> It's failing because the value is constant. The workarounds at the call >> size are ugly and the caller shouldn't have to change behavior depending >> on what the backend of the API is. >> >> So, this patch eliminates the link failure and returns NULL like the >> other implementations. >> > > OK by me, is that's what the other sl[abcd...xyz]b.c implementations > do. > > That __you_cannot_kmalloc_that_much() thing has frequently been a PITA > anyway - some gcc versions flub the constant_p() test and end up > referencing __you_cannot_kmalloc_that_much() when the callsite was > passing a variable `size' arg. [snip] > Strange patch format, but it applied. > > I'll punt this patch in the Pekka direction. Applied, thanks! Pekka -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-01-27 21:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <4975F376.4010506@suse.com>
2009-01-27 21:37 ` [PATCH] kmalloc: Return NULL instead of link failure Andrew Morton
2009-01-27 21:44 ` Jeff Mahoney
2009-01-27 21:49 ` Pekka Enberg
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox