mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
mm/hotplug: optimize clear_hwpoisoned_pages()
In hot remove, we try to clear poisoned pages, but a small optimization to check if num_poisoned_pages is 0 helps remove the iteration through nr_pages. [[email protected]: tweak comment text] Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Balbir Singh <[email protected]> Acked-by: Michal Hocko <[email protected]> Acked-by: Naoya Horiguchi <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
c8f61cfc87
commit
5eb570a8d9
1 changed files with 9 additions and 0 deletions
|
|
@ -740,6 +740,15 @@ static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages)
|
|||
if (!memmap)
|
||||
return;
|
||||
|
||||
/*
|
||||
* A further optimization is to have per section refcounted
|
||||
* num_poisoned_pages. But that would need more space per memmap, so
|
||||
* for now just do a quick global check to speed up this routine in the
|
||||
* absence of bad pages.
|
||||
*/
|
||||
if (atomic_long_read(&num_poisoned_pages) == 0)
|
||||
return;
|
||||
|
||||
for (i = 0; i < nr_pages; i++) {
|
||||
if (PageHWPoison(&memmap[i])) {
|
||||
atomic_long_sub(1, &num_poisoned_pages);
|
||||
|
|
|
|||
Loading…
Reference in a new issue