search for: num_poisoned_pages_inc

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...