Re: [PATCH 0/2] new API to allocate buffer-cache for superblock in non-movable area

Gioh Kim
2014-07-30T23:46:03Z

2014-07-30 오후 7:19, Peter Zijlstra 쓴 글:
> On Wed, Jul 30, 2014 at 12:11:43PM +0200, Jan Kara wrote:
>>> sb_bread allocates page from movable area but it is not movable until the
>>> reference counter of the buffer-head becomes zero.
>>> There is no lock for the buffer but the reference counter acts like lock.
>> OK, but why do you care about a single page (of at most handful if you
>> have more filesystems) which isn't movable? That shouldn't make a big
>> difference to compaction...
>
> The thing is, CMA _must_ be able to clear all the pages in its range,
> otherwise its broken.
>
> So placing nonmovable pages in a movable block utterly wrecks that.

YES. Even a single page can make CMA migration fail.

>
> Now, Ted said that there's more effectively pinned stuff from
> filesystems (and I imagine those would be things like the root inode
> etc.) and those would equally wreck this..
>
> But Gioh didn't mention any of that.. he should I suppose.

Thanks to inform me.

I thought there are more pinned stuff but I didn't know what they are.
I tried CMA migration but it failed even after I moved the sb page-cache to non-movable area.
So I just guessed there are more pinned stuff.
I am newbie and not familiar with filesystem code.

Of course all of the pinned stuff should be moved to non-movable area.

>