Page migration issue with UBIFS
Richard Weinberger
richard at nod.at
Tue Mar 15 09:02:19 PDT 2016
Christoph,
Am 15.03.2016 um 16:37 schrieb Christoph Hellwig:
> On Tue, Mar 15, 2016 at 04:32:40PM +0100, Richard Weinberger wrote:
>>> Or if ->page_mkwrite() was called, why the page is not dirty?
>>
>> BTW: UBIFS does not implement ->migratepage(), could this be a problem?
>
> This might be the reason. I can't reall make sense of
> buffer_migrate_page, but it seems to migrate buffer_head state to
> the new page.
Oh, yes. This makes a lot of sense.
> I'd love to know why CMA even tries to migrate pages that don't have a
> ->migratepage method, this seems incredibly dangerous to me.
CMA folks, can you please clarify? :-)
UBIFS cannot use buffer_migrate_page() as this function assumes a
buffer head and UBIFS works on top of an MTD.
This is most likely why ->migratepage() was never implemented in UBIFS.
Also the documentation is not clear, reads more like an not required optimization:
migrate_page: This is used to compact the physical memory usage.
If the VM wants to relocate a page (maybe off a memory card
that is signalling imminent failure) it will pass a new page
and an old page to this function. migrate_page should
transfer any private data across and update any references
that it has to the page.
...assuming s/migrate_page/migratepage.
Thanks,
//richard
More information about the linux-mtd
mailing list