Message ID | 20200416073417.5003-1-david@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] mm/page_alloc: fix watchdog soft lockups during set_zone_contiguous() | expand |
On Thu, 16 Apr 2020 09:34:17 +0200 David Hildenbrand <david@redhat.com> wrote: > Without CONFIG_PREEMPT, it can happen that we get soft lockups detected, > e.g., while booting up. > > ... > > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1607,6 +1607,7 @@ void set_zone_contiguous(struct zone *zone) > if (!__pageblock_pfn_to_page(block_start_pfn, > block_end_pfn, zone)) > return; > + cond_resched(); > } > > /* We confirm that there is no hole */ I added cc:stable to this one. Please let me know if that wasn't a good idea.
On Fri 17-04-20 15:12:47, Andrew Morton wrote: > On Thu, 16 Apr 2020 09:34:17 +0200 David Hildenbrand <david@redhat.com> wrote: > > > Without CONFIG_PREEMPT, it can happen that we get soft lockups detected, > > e.g., while booting up. > > > > ... > > > > --- a/mm/page_alloc.c > > +++ b/mm/page_alloc.c > > @@ -1607,6 +1607,7 @@ void set_zone_contiguous(struct zone *zone) > > if (!__pageblock_pfn_to_page(block_start_pfn, > > block_end_pfn, zone)) > > return; > > + cond_resched(); > > } > > > > /* We confirm that there is no hole */ > > I added cc:stable to this one. Please let me know if that wasn't a > good idea. Really large memory setups tend to run on distribution kernels so backporting to old kernels doesn't really harm.
On 20.04.20 09:34, Michal Hocko wrote: > On Fri 17-04-20 15:12:47, Andrew Morton wrote: >> On Thu, 16 Apr 2020 09:34:17 +0200 David Hildenbrand <david@redhat.com> wrote: >> >>> Without CONFIG_PREEMPT, it can happen that we get soft lockups detected, >>> e.g., while booting up. >>> >>> ... >>> >>> --- a/mm/page_alloc.c >>> +++ b/mm/page_alloc.c >>> @@ -1607,6 +1607,7 @@ void set_zone_contiguous(struct zone *zone) >>> if (!__pageblock_pfn_to_page(block_start_pfn, >>> block_end_pfn, zone)) >>> return; >>> + cond_resched(); >>> } >>> >>> /* We confirm that there is no hole */ >> >> I added cc:stable to this one. Please let me know if that wasn't a >> good idea. > > Really large memory setups tend to run on distribution kernels so > backporting to old kernels doesn't really harm. > Yeah, shouldn't hurt.
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 1385d786a01a..ae1545246b69 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1607,6 +1607,7 @@ void set_zone_contiguous(struct zone *zone) if (!__pageblock_pfn_to_page(block_start_pfn, block_end_pfn, zone)) return; + cond_resched(); } /* We confirm that there is no hole */