Displaying 20 results from an estimated 35 matches for "num_poisoned_pages_inc".
2016 Apr 04
1
mm/hwpoison: fix wrong num_poisoned_pages account
....
> > > >+ */
> > > >+ if (rc == MIGRATEPAGE_SUCCESS) {
> > > >+ put_page(page);
> > > > if (reason == MR_MEMORY_FAILURE) {
> > > >- put_page(page);
> > > > if (!test_set_page_hwpoison(page))
> > > > num_poisoned_pages_inc();
> > > >- } else
> > > >+ }
> > >
> > > Hmm, I didn't notice it previously, or it's due to rebasing, but it
> > > seems that you restricted the memory failure handling (i.e. setting
> > > hwpoison) to MIGRATE_SUCCESS, while pr...
2016 Apr 04
1
mm/hwpoison: fix wrong num_poisoned_pages account
....
> > > >+ */
> > > >+ if (rc == MIGRATEPAGE_SUCCESS) {
> > > >+ put_page(page);
> > > > if (reason == MR_MEMORY_FAILURE) {
> > > >- put_page(page);
> > > > if (!test_set_page_hwpoison(page))
> > > > num_poisoned_pages_inc();
> > > >- } else
> > > >+ }
> > >
> > > Hmm, I didn't notice it previously, or it's due to rebasing, but it
> > > seems that you restricted the memory failure handling (i.e. setting
> > > hwpoison) to MIGRATE_SUCCESS, while pr...
2016 Apr 01
2
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...ing
> + * isolation. Otherwise, restore the page to LRU list unless we
> + * want to retry.
> + */
> + if (rc == MIGRATEPAGE_SUCCESS) {
> + put_page(page);
> if (reason == MR_MEMORY_FAILURE) {
> - put_page(page);
> if (!test_set_page_hwpoison(page))
> num_poisoned_pages_inc();
> - } else
> + }
Hmm, I didn't notice it previously, or it's due to rebasing, but it seems that
you restricted the memory failure handling (i.e. setting hwpoison) to
MIGRATE_SUCCESS, while previously it was done for all non-EAGAIN results. I
think that goes against the intent...
2016 Apr 01
2
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...ing
> + * isolation. Otherwise, restore the page to LRU list unless we
> + * want to retry.
> + */
> + if (rc == MIGRATEPAGE_SUCCESS) {
> + put_page(page);
> if (reason == MR_MEMORY_FAILURE) {
> - put_page(page);
> if (!test_set_page_hwpoison(page))
> num_poisoned_pages_inc();
> - } else
> + }
Hmm, I didn't notice it previously, or it's due to rebasing, but it seems that
you restricted the memory failure handling (i.e. setting hwpoison) to
MIGRATE_SUCCESS, while previously it was done for all non-EAGAIN results. I
think that goes against the intent...
2016 Apr 04
2
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...we
> > >+ * want to retry.
> > >+ */
> > >+ if (rc == MIGRATEPAGE_SUCCESS) {
> > >+ put_page(page);
> > > if (reason == MR_MEMORY_FAILURE) {
> > >- put_page(page);
> > > if (!test_set_page_hwpoison(page))
> > > num_poisoned_pages_inc();
> > >- } else
> > >+ }
> >
> > Hmm, I didn't notice it previously, or it's due to rebasing, but it
> > seems that you restricted the memory failure handling (i.e. setting
> > hwpoison) to MIGRATE_SUCCESS, while previously it was done for all
&...
2016 Apr 04
2
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...we
> > >+ * want to retry.
> > >+ */
> > >+ if (rc == MIGRATEPAGE_SUCCESS) {
> > >+ put_page(page);
> > > if (reason == MR_MEMORY_FAILURE) {
> > >- put_page(page);
> > > if (!test_set_page_hwpoison(page))
> > > num_poisoned_pages_inc();
> > >- } else
> > >+ }
> >
> > Hmm, I didn't notice it previously, or it's due to rebasing, but it
> > seems that you restricted the memory failure handling (i.e. setting
> > hwpoison) to MIGRATE_SUCCESS, while previously it was done for all
&...
2016 Apr 04
0
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...essful invalidated page.
>> IOW, they are already successful isolated page so I guess it should
>> increase the count when only successful migration is done?
>
> Yes, that's right. When exiting with migration's failure, we shouldn't call
> test_set_page_hwpoison or num_poisoned_pages_inc, so current code checking
> (rc != -EAGAIN) is simply incorrect. Your change fixes the bug in memory
> error handling. Great!
Ah, I see, soft onlining works differently than I thought.
>> And when I read memory_failure, it bails out without killing if it
>> encounters HWPoisoned...
2016 Mar 11
0
[PATCH v1 01/19] mm: use put_page to free page instead of putback_lru_page
...on is successful, drop the reference grabbed during
+ * isolation. Otherwise, restore the page to LRU list unless we
+ * want to retry.
+ */
+ if (rc == MIGRATEPAGE_SUCCESS) {
+ put_page(page);
if (reason == MR_MEMORY_FAILURE) {
- put_page(page);
if (!test_set_page_hwpoison(page))
num_poisoned_pages_inc();
- } else
+ }
+ } else {
+ if (rc != -EAGAIN)
putback_lru_page(page);
+ if (put_new_page)
+ put_new_page(newpage, private);
+ else
+ put_page(newpage);
}
- /*
- * If migration was not successful and there's a freeing callback, use
- * it. Otherwise, putback_lru_page() will...
2016 Mar 30
0
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...on is successful, drop the reference grabbed during
+ * isolation. Otherwise, restore the page to LRU list unless we
+ * want to retry.
+ */
+ if (rc == MIGRATEPAGE_SUCCESS) {
+ put_page(page);
if (reason == MR_MEMORY_FAILURE) {
- put_page(page);
if (!test_set_page_hwpoison(page))
num_poisoned_pages_inc();
- } else
+ }
+ } else {
+ if (rc != -EAGAIN)
putback_lru_page(page);
+ if (put_new_page)
+ put_new_page(newpage, private);
+ else
+ put_page(newpage);
}
- /*
- * If migration was not successful and there's a freeing callback, use
- * it. Otherwise, putback_lru_page() will...
2016 Apr 04
0
[PATCH v3 01/16] mm: use put_page to free page instead of putback_lru_page
...se, restore the page to LRU list unless we
> >+ * want to retry.
> >+ */
> >+ if (rc == MIGRATEPAGE_SUCCESS) {
> >+ put_page(page);
> > if (reason == MR_MEMORY_FAILURE) {
> >- put_page(page);
> > if (!test_set_page_hwpoison(page))
> > num_poisoned_pages_inc();
> >- } else
> >+ }
>
> Hmm, I didn't notice it previously, or it's due to rebasing, but it
> seems that you restricted the memory failure handling (i.e. setting
> hwpoison) to MIGRATE_SUCCESS, while previously it was done for all
> non-EAGAIN results. I thin...
2016 Mar 21
0
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...ping, newpage,
+ page, mode);
+ WARN_ON_ONCE(rc == MIGRATEPAGE_SUCCESS &&
+ PageIsolated(page));
+ }
+ }
/*
* When successful, old pagecache page->mapping must be cleared before
@@ -1000,8 +1100,12 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
num_poisoned_pages_inc();
}
} else {
- if (rc != -EAGAIN)
- putback_lru_page(page);
+ if (rc != -EAGAIN) {
+ if (likely(!PageIsolated(page)))
+ putback_lru_page(page);
+ else
+ putback_movable_page(page);
+ }
if (put_new_page)
put_new_page(newpage, private);
else
--
1.9.1
2016 Mar 11
0
[PATCH v1 02/19] mm/compaction: support non-lru movable page migration
...pping, newpage,
+ page, mode);
+ WARN_ON_ONCE(rc == MIGRATEPAGE_SUCCESS &&
+ PageIsolated(page));
+ }
+ }
/*
* When successful, old pagecache page->mapping must be cleared before
@@ -991,8 +1091,12 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
num_poisoned_pages_inc();
}
} else {
- if (rc != -EAGAIN)
- putback_lru_page(page);
+ if (rc != -EAGAIN) {
+ if (likely(!PageIsolated(page)))
+ putback_lru_page(page);
+ else
+ putback_movable_page(page);
+ }
if (put_new_page)
put_new_page(newpage, private);
else
--
1.9.1
2016 Mar 30
0
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
put_new_page(newpage, private);
else
put_page(newpage);
+ if (PageMovable(page))
+ __ClearPageMovable(page);
goto out;
}
@@ -1000,8 +1120,26 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
num_poisoned_pages_inc();
}
} else {
- if (rc != -EAGAIN)
- putback_lru_page(page);
+ if (rc != -EAGAIN) {
+ /*
+ * subsystem couldn't remove PG_movable since page is
+ * isolated so PageMovable check is not racy in here.
+ * But PageIsolated check can be racy but it's okay
+ * because putb...
2016 Apr 01
2
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...t_new_page,
> put_new_page(newpage, private);
> else
> put_page(newpage);
> + if (PageMovable(page))
> + __ClearPageMovable(page);
> goto out;
> }
>
> @@ -1000,8 +1120,26 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
> num_poisoned_pages_inc();
> }
> } else {
> - if (rc != -EAGAIN)
> - putback_lru_page(page);
> + if (rc != -EAGAIN) {
> + /*
> + * subsystem couldn't remove PG_movable since page is
> + * isolated so PageMovable check is not racy in here.
> + * But PageIsolated check ca...
2016 Apr 01
2
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...t_new_page,
> put_new_page(newpage, private);
> else
> put_page(newpage);
> + if (PageMovable(page))
> + __ClearPageMovable(page);
> goto out;
> }
>
> @@ -1000,8 +1120,26 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
> num_poisoned_pages_inc();
> }
> } else {
> - if (rc != -EAGAIN)
> - putback_lru_page(page);
> + if (rc != -EAGAIN) {
> + /*
> + * subsystem couldn't remove PG_movable since page is
> + * isolated so PageMovable check is not racy in here.
> + * But PageIsolated check ca...
2016 Apr 04
0
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...wpage, private);
> > else
> > put_page(newpage);
> >+ if (PageMovable(page))
> >+ __ClearPageMovable(page);
> > goto out;
> > }
> >
> >@@ -1000,8 +1120,26 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
> > num_poisoned_pages_inc();
> > }
> > } else {
> >- if (rc != -EAGAIN)
> >- putback_lru_page(page);
> >+ if (rc != -EAGAIN) {
> >+ /*
> >+ * subsystem couldn't remove PG_movable since page is
> >+ * isolated so PageMovable check is not racy in here.
>...
2016 May 09
0
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...(unlikely(__PageMovable(page))) {
+ lock_page(page);
+ if (!PageMovable(page))
+ __ClearPageIsolated(page);
+ unlock_page(page);
+ }
if (put_new_page)
put_new_page(newpage, private);
else
@@ -1010,8 +1179,21 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
num_poisoned_pages_inc();
}
} else {
- if (rc != -EAGAIN)
- putback_lru_page(page);
+ if (rc != -EAGAIN) {
+ if (likely(!__PageMovable(page))) {
+ putback_lru_page(page);
+ goto put_new;
+ }
+
+ lock_page(page);
+ if (PageMovable(page))
+ putback_movable_page(page);
+ else
+ __ClearPageIsol...
2016 May 20
0
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...(unlikely(__PageMovable(page))) {
+ lock_page(page);
+ if (!PageMovable(page))
+ __ClearPageIsolated(page);
+ unlock_page(page);
+ }
if (put_new_page)
put_new_page(newpage, private);
else
@@ -1010,8 +1148,21 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
num_poisoned_pages_inc();
}
} else {
- if (rc != -EAGAIN)
- putback_lru_page(page);
+ if (rc != -EAGAIN) {
+ if (likely(!__PageMovable(page))) {
+ putback_lru_page(page);
+ goto put_new;
+ }
+
+ lock_page(page);
+ if (PageMovable(page))
+ putback_movable_page(page);
+ else
+ __ClearPageIsol...
2016 May 31
0
[PATCH v6v3 02/12] mm: migrate: support non-lru movable page migration
...(unlikely(__PageMovable(page))) {
+ lock_page(page);
+ if (!PageMovable(page))
+ __ClearPageIsolated(page);
+ unlock_page(page);
+ }
if (put_new_page)
put_new_page(newpage, private);
else
@@ -1010,8 +1153,21 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
num_poisoned_pages_inc();
}
} else {
- if (rc != -EAGAIN)
- putback_lru_page(page);
+ if (rc != -EAGAIN) {
+ if (likely(!__PageMovable(page))) {
+ putback_lru_page(page);
+ goto put_new;
+ }
+
+ lock_page(page);
+ if (PageMovable(page))
+ putback_movable_page(page);
+ else
+ __ClearPageIsol...
2016 May 30
5
PATCH v6v2 02/12] mm: migrate: support non-lru movable page migration
...(unlikely(__PageMovable(page))) {
+ lock_page(page);
+ if (!PageMovable(page))
+ __ClearPageIsolated(page);
+ unlock_page(page);
+ }
if (put_new_page)
put_new_page(newpage, private);
else
@@ -1010,8 +1153,21 @@ static ICE_noinline int unmap_and_move(new_page_t get_new_page,
num_poisoned_pages_inc();
}
} else {
- if (rc != -EAGAIN)
- putback_lru_page(page);
+ if (rc != -EAGAIN) {
+ if (likely(!__PageMovable(page))) {
+ putback_lru_page(page);
+ goto put_new;
+ }
+
+ lock_page(page);
+ if (PageMovable(page))
+ putback_movable_page(page);
+ else
+ __ClearPageIsol...