diff mbox series

mm/memory-failure: Fix return wrong value when isolate page fail

Message ID 20200830081053.64981-1-songmuchun@bytedance.com (mailing list archive)
State New, archived
Headers show
Series mm/memory-failure: Fix return wrong value when isolate page fail | expand

Commit Message

Muchun Song Aug. 30, 2020, 8:10 a.m. UTC
When we isolate page fail, we should not return 0, because we do not
set page HWPoison on any page.

Signed-off-by: Muchun Song <songmuchun@bytedance.com>
---
 mm/memory-failure.c | 1 +
 1 file changed, 1 insertion(+)

Comments

HORIGUCHI NAOYA(堀口 直也) Aug. 30, 2020, 10:27 p.m. UTC | #1
On Sun, Aug 30, 2020 at 03:44:18PM -0400, Qian Cai wrote:
> On Sun, Aug 30, 2020 at 04:10:53PM +0800, Muchun Song wrote:
> > When we isolate page fail, we should not return 0, because we do not
> > set page HWPoison on any page.
> > 
> > Signed-off-by: Muchun Song <songmuchun@bytedance.com>
> 
> This seems solve the problem for me that madvise(MADV_SOFT_OFFLINE) will run
> into ENOMEM eventually:
> 
> https://lore.kernel.org/lkml/20200811220643.GB39857@lca.pw/
> 
> Reviewed-by: Qian Cai <cai@lca.pw>

Thank you very much, both of you!

Acked-by: Naoya Horiguchi <naoya.horiguchi@nec.com>

> > ---
> >  mm/memory-failure.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/mm/memory-failure.c b/mm/memory-failure.c
> > index 696505f56910..4eb3c42ffe35 100644
> > --- a/mm/memory-failure.c
> > +++ b/mm/memory-failure.c
> > @@ -1850,6 +1850,7 @@ static int __soft_offline_page(struct page *page)
> >  	} else {
> >  		pr_info("soft offline: %#lx: %s isolation failed: %d, page count %d, type %lx (%pGp)\n",
> >  			pfn, msg_page[huge], ret, page_count(page), page->flags, &page->flags);
> > +		ret = -EBUSY;
> >  	}
> >  	return ret;
> >  }
> > -- 
> > 2.11.0
> > 
> > 
>
Oscar Salvador Aug. 31, 2020, 7:31 a.m. UTC | #2
On Sun, Aug 30, 2020 at 04:10:53PM +0800, Muchun Song wrote:
> When we isolate page fail, we should not return 0, because we do not
> set page HWPoison on any page.
> 
> Signed-off-by: Muchun Song <songmuchun@bytedance.com>

Thanks for spotting this

Reviewed-by: Oscar Salvador <osalvador@suse.de>

> ---
>  mm/memory-failure.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/mm/memory-failure.c b/mm/memory-failure.c
> index 696505f56910..4eb3c42ffe35 100644
> --- a/mm/memory-failure.c
> +++ b/mm/memory-failure.c
> @@ -1850,6 +1850,7 @@ static int __soft_offline_page(struct page *page)
>  	} else {
>  		pr_info("soft offline: %#lx: %s isolation failed: %d, page count %d, type %lx (%pGp)\n",
>  			pfn, msg_page[huge], ret, page_count(page), page->flags, &page->flags);
> +		ret = -EBUSY;
>  	}
>  	return ret;
>  }
> -- 
> 2.11.0
> 
>
Pankaj Gupta Aug. 31, 2020, 9:45 a.m. UTC | #3
> When we isolate page fail, we should not return 0, because we do not
> set page HWPoison on any page.
>
> Signed-off-by: Muchun Song <songmuchun@bytedance.com>
> ---
>  mm/memory-failure.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/mm/memory-failure.c b/mm/memory-failure.c
> index 696505f56910..4eb3c42ffe35 100644
> --- a/mm/memory-failure.c
> +++ b/mm/memory-failure.c
> @@ -1850,6 +1850,7 @@ static int __soft_offline_page(struct page *page)
>         } else {
>                 pr_info("soft offline: %#lx: %s isolation failed: %d, page count %d, type %lx (%pGp)\n",
>                         pfn, msg_page[huge], ret, page_count(page), page->flags, &page->flags);
> +               ret = -EBUSY;
>         }
>         return ret;
>  }
> --

Acked-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
> 2.11.0
>
>
diff mbox series

Patch

diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index 696505f56910..4eb3c42ffe35 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -1850,6 +1850,7 @@  static int __soft_offline_page(struct page *page)
 	} else {
 		pr_info("soft offline: %#lx: %s isolation failed: %d, page count %d, type %lx (%pGp)\n",
 			pfn, msg_page[huge], ret, page_count(page), page->flags, &page->flags);
+		ret = -EBUSY;
 	}
 	return ret;
 }