Re: [PATCH V2] MCE: fix an error of mce_bad_pages statistics

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Dec 11, 2012 at 01:55:15PM +0800, Xishi Qiu wrote:
>On 2012/12/11 11:48, Simon Jeons wrote:
>
>> On Tue, 2012-12-11 at 04:19 +0100, Andi Kleen wrote:
>>> On Mon, Dec 10, 2012 at 09:13:11PM -0600, Simon Jeons wrote:
>>>> On Tue, 2012-12-11 at 04:01 +0100, Andi Kleen wrote:
>>>>>> Oh, it will be putback to lru list during migration. So does your "some
>>>>>> time" mean before call check_new_page?
>>>>>
>>>>> Yes until the next check_new_page() whenever that is. If the migration
>>>>> works it will be earlier, otherwise later.
>>>>
>>>> But I can't figure out any page reclaim path check if the page is set
>>>> PG_hwpoison, can poisoned pages be rclaimed?
>>>
>>> The only way to reclaim a page is to free and reallocate it.
>> 
>> Then why there doesn't have check in reclaim path to avoid relcaim
>> poisoned page?
>> 
>> 			-Simon
>
>Hi Simon,
>
>If the page is free, it will be set PG_hwpoison, and soft_offline_page() is done.
>When the page is alocated later, check_new_page() will find the poisoned page and
>isolate the whole buddy block(just drop the block).
>
>If the page is not free, soft_offline_page() try to free it first, if this is
>failed, it will migrate the page, but the page is still in LRU list after migration,
>migrate_pages()
>	unmap_and_move()
>		if (rc != -EAGAIN) {
>			...
>			putback_lru_page(page);
>		}
>We can use lru_add_drain_all() to drain lru pagevec, at last free_hot_cold_page()

Hi Xishi,

I don't understand why you need drain lru pagevec here, if the page has
been migrated has all references removed and then it will be freed. The 
putback_lru_page mentioned above will call put_page free to it. 

putback_lru_page
	->put_page
		->__put_single_page
			->free_hot_cold_page
				->free_page_check
					->free_pages_prepare
						->free_pages_check
							->bad_page

Regards,
Wanpeng Li 

>will be called, and free_pages_prepare() check the poisoned pages.
>free_pages_prepare()
>	free_pages_check()
>		bad_page()
>
>Is this right, Andi?
>
>Thanks
>Xishi Qiu
>
>>>
>>> -Andi
>> 
>> 
>> 
>> 
>
>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]