* [PATCH] mm: do not print backtraces on GFP_ATOMIC failures @ 2010-09-21 16:18 Rik van Riel 2010-09-21 16:46 ` Andrew Morton 0 siblings, 1 reply; 5+ messages in thread From: Rik van Riel @ 2010-09-21 16:18 UTC (permalink / raw) To: linux-mm; +Cc: linux-kernel, akpm, KOSAKI Motohiro Atomic allocations cannot fall back to the page eviction code and are expected to fail. In fact, in some network intensive workloads, it is common to experience hundreds of GFP_ATOMIC allocation failures. Printing out a backtrace for every one of those expected allocation failures accomplishes nothing good. At multi-gigabit network speeds with jumbo frames, a burst of allocation failure backtraces could even slow down the system. We're better off not printing out backtraces on GFP_ATOMIC allocation failures. Signed-off-by: Rik van Riel <riel@redhat.com> diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 975609c..5a0bddb 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -72,7 +72,7 @@ struct vm_area_struct; /* This equals 0, but use constants in case they ever change */ #define GFP_NOWAIT (GFP_ATOMIC & ~__GFP_HIGH) /* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */ -#define GFP_ATOMIC (__GFP_HIGH) +#define GFP_ATOMIC (__GFP_HIGH | __GFP_NOWARN) #define GFP_NOIO (__GFP_WAIT) #define GFP_NOFS (__GFP_WAIT | __GFP_IO) #define GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS) -- 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 related [flat|nested] 5+ messages in thread
* Re: [PATCH] mm: do not print backtraces on GFP_ATOMIC failures 2010-09-21 16:18 [PATCH] mm: do not print backtraces on GFP_ATOMIC failures Rik van Riel @ 2010-09-21 16:46 ` Andrew Morton 2010-09-21 17:00 ` Eric Dumazet 0 siblings, 1 reply; 5+ messages in thread From: Andrew Morton @ 2010-09-21 16:46 UTC (permalink / raw) To: Rik van Riel; +Cc: linux-mm, linux-kernel, KOSAKI Motohiro, netdev On Tue, 21 Sep 2010 12:18:18 -0400 Rik van Riel <riel@redhat.com> wrote: > Atomic allocations cannot fall back to the page eviction code > and are expected to fail. In fact, in some network intensive > workloads, it is common to experience hundreds of GFP_ATOMIC > allocation failures. > > Printing out a backtrace for every one of those expected > allocation failures accomplishes nothing good. At multi-gigabit > network speeds with jumbo frames, a burst of allocation failure > backtraces could even slow down the system. > > We're better off not printing out backtraces on GFP_ATOMIC > allocation failures. > > Signed-off-by: Rik van Riel <riel@redhat.com> > > diff --git a/include/linux/gfp.h b/include/linux/gfp.h > index 975609c..5a0bddb 100644 > --- a/include/linux/gfp.h > +++ b/include/linux/gfp.h > @@ -72,7 +72,7 @@ struct vm_area_struct; > /* This equals 0, but use constants in case they ever change */ > #define GFP_NOWAIT (GFP_ATOMIC & ~__GFP_HIGH) > /* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */ > -#define GFP_ATOMIC (__GFP_HIGH) > +#define GFP_ATOMIC (__GFP_HIGH | __GFP_NOWARN) > #define GFP_NOIO (__GFP_WAIT) > #define GFP_NOFS (__GFP_WAIT | __GFP_IO) > #define GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS) A much finer-tuned implementation would be to add __GFP_NOWARN just to the networking call sites. I asked about this in June and it got nixed: http://www.spinics.net/lists/netdev/msg131965.html -- 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] 5+ messages in thread
* Re: [PATCH] mm: do not print backtraces on GFP_ATOMIC failures 2010-09-21 16:46 ` Andrew Morton @ 2010-09-21 17:00 ` Eric Dumazet 2010-09-27 2:17 ` KOSAKI Motohiro 0 siblings, 1 reply; 5+ messages in thread From: Eric Dumazet @ 2010-09-21 17:00 UTC (permalink / raw) To: Andrew Morton Cc: Rik van Riel, linux-mm, linux-kernel, KOSAKI Motohiro, netdev Le mardi 21 septembre 2010 A 09:46 -0700, Andrew Morton a A(C)crit : > On Tue, 21 Sep 2010 12:18:18 -0400 Rik van Riel <riel@redhat.com> wrote: > > > Atomic allocations cannot fall back to the page eviction code > > and are expected to fail. In fact, in some network intensive > > workloads, it is common to experience hundreds of GFP_ATOMIC > > allocation failures. > > > > Printing out a backtrace for every one of those expected > > allocation failures accomplishes nothing good. At multi-gigabit > > network speeds with jumbo frames, a burst of allocation failure > > backtraces could even slow down the system. > > > > We're better off not printing out backtraces on GFP_ATOMIC > > allocation failures. > > > > Signed-off-by: Rik van Riel <riel@redhat.com> > > > > diff --git a/include/linux/gfp.h b/include/linux/gfp.h > > index 975609c..5a0bddb 100644 > > --- a/include/linux/gfp.h > > +++ b/include/linux/gfp.h > > @@ -72,7 +72,7 @@ struct vm_area_struct; > > /* This equals 0, but use constants in case they ever change */ > > #define GFP_NOWAIT (GFP_ATOMIC & ~__GFP_HIGH) > > /* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */ > > -#define GFP_ATOMIC (__GFP_HIGH) > > +#define GFP_ATOMIC (__GFP_HIGH | __GFP_NOWARN) > > #define GFP_NOIO (__GFP_WAIT) > > #define GFP_NOFS (__GFP_WAIT | __GFP_IO) > > #define GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS) > > A much finer-tuned implementation would be to add __GFP_NOWARN just to > the networking call sites. I asked about this in June and it got > nixed: > > http://www.spinics.net/lists/netdev/msg131965.html > -- Yes, I remember this particular report was useful to find and correct a bug. I dont know what to say. Being silent or verbose, it really depends on the context ? -- 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] 5+ messages in thread
* Re: [PATCH] mm: do not print backtraces on GFP_ATOMIC failures 2010-09-21 17:00 ` Eric Dumazet @ 2010-09-27 2:17 ` KOSAKI Motohiro 2010-09-27 18:49 ` Andrew Morton 0 siblings, 1 reply; 5+ messages in thread From: KOSAKI Motohiro @ 2010-09-27 2:17 UTC (permalink / raw) To: Eric Dumazet Cc: kosaki.motohiro, Andrew Morton, Rik van Riel, linux-mm, linux-kernel, netdev > > > @@ -72,7 +72,7 @@ struct vm_area_struct; > > > /* This equals 0, but use constants in case they ever change */ > > > #define GFP_NOWAIT (GFP_ATOMIC & ~__GFP_HIGH) > > > /* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */ > > > -#define GFP_ATOMIC (__GFP_HIGH) > > > +#define GFP_ATOMIC (__GFP_HIGH | __GFP_NOWARN) > > > #define GFP_NOIO (__GFP_WAIT) > > > #define GFP_NOFS (__GFP_WAIT | __GFP_IO) > > > #define GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS) > > > > A much finer-tuned implementation would be to add __GFP_NOWARN just to > > the networking call sites. I asked about this in June and it got > > nixed: > > > > http://www.spinics.net/lists/netdev/msg131965.html > > -- > > Yes, I remember this particular report was useful to find and correct a > bug. > > I dont know what to say. > > Being silent or verbose, it really depends on the context ? At least, MM developers don't want to track network allocation failure issue. We don't have enough knowledge in this area. To be honest, We are unhappy current bad S/N bug report rate ;) Traditionally, We hoped this warnings help to debug VM issue. but It haven't happen. We haven't detect VM issue from this allocation failure report. Instead, We've received a lot of network allocation failure report. Recently, The S/N ratio became more bad. If the network device enable jumbo frame feature, order-2 GFP_ATOMIC allocation is called frequently. Anybody don't have to assume order-2 allocation can success anytime. I'm not against accurate warning at all. but I cant tolerate this semi-random warning steal our time. If anyone will not make accurate warning, I hope to remove this one completely instead. -- 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] 5+ messages in thread
* Re: [PATCH] mm: do not print backtraces on GFP_ATOMIC failures 2010-09-27 2:17 ` KOSAKI Motohiro @ 2010-09-27 18:49 ` Andrew Morton 0 siblings, 0 replies; 5+ messages in thread From: Andrew Morton @ 2010-09-27 18:49 UTC (permalink / raw) To: KOSAKI Motohiro Cc: Eric Dumazet, Rik van Riel, linux-mm, linux-kernel, netdev On Mon, 27 Sep 2010 11:17:19 +0900 (JST) KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> wrote: > > > > @@ -72,7 +72,7 @@ struct vm_area_struct; > > > > /* This equals 0, but use constants in case they ever change */ > > > > #define GFP_NOWAIT (GFP_ATOMIC & ~__GFP_HIGH) > > > > /* GFP_ATOMIC means both !wait (__GFP_WAIT not set) and use emergency pool */ > > > > -#define GFP_ATOMIC (__GFP_HIGH) > > > > +#define GFP_ATOMIC (__GFP_HIGH | __GFP_NOWARN) > > > > #define GFP_NOIO (__GFP_WAIT) > > > > #define GFP_NOFS (__GFP_WAIT | __GFP_IO) > > > > #define GFP_KERNEL (__GFP_WAIT | __GFP_IO | __GFP_FS) > > > > > > A much finer-tuned implementation would be to add __GFP_NOWARN just to > > > the networking call sites. I asked about this in June and it got > > > nixed: > > > > > > http://www.spinics.net/lists/netdev/msg131965.html > > > -- > > > > Yes, I remember this particular report was useful to find and correct a > > bug. > > > > I dont know what to say. > > > > Being silent or verbose, it really depends on the context ? > > At least, MM developers don't want to track network allocation failure > issue. We don't have enough knowledge in this area. To be honest, We > are unhappy current bad S/N bug report rate ;) > > Traditionally, We hoped this warnings help to debug VM issue. Well, no, not really. I thought that the main reason for having that warning was to debug _callers_ of the memory allocator. Firstly it tells us when callsites are being too optimistic: asking for large amounts of contiguous pages, sometimes from atomic context. Quite a number of such callsites have been fixed as a result. Secondly, memory allocation failures are a rare event, so the calling code's error paths are not well tested. This warning turns the bug report "hey, my computer locked up" into the much better "hey, I got this error message and then my computer locked up". This allows us to go and look at the offending code and see if it is handling ENOMEM correctly. However I don't recall this scenario ever having actually happened. > but > It haven't happen. We haven't detect VM issue from this allocation > failure report. Instead, We've received a lot of network allocation > failure report. > > Recently, The S/N ratio became more bad. If the network device enable > jumbo frame feature, order-2 GFP_ATOMIC allocation is called frequently. > Anybody don't have to assume order-2 allocation can success anytime. > > I'm not against accurate warning at all. but I cant tolerate this > semi-random warning steal our time. If anyone will not make accurate > warning, I hope to remove this one completely instead. We can disable the warning for only net drivers quite easily. I don't have any strong opinions, really - yes, we get quite a few such bug reports but most of them end up in my lap anyway and it can't be more than one per week, shrug. -- 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] 5+ messages in thread
end of thread, other threads:[~2010-09-27 18:49 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-09-21 16:18 [PATCH] mm: do not print backtraces on GFP_ATOMIC failures Rik van Riel 2010-09-21 16:46 ` Andrew Morton 2010-09-21 17:00 ` Eric Dumazet 2010-09-27 2:17 ` KOSAKI Motohiro 2010-09-27 18:49 ` Andrew Morton
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).