[PATCH 00/10] Support free page filtering looking up mem_map array
Hatayama, Daisuke
d.hatayama at jp.fujitsu.com
Thu Nov 15 00:44:39 EST 2012
> -----Original Message-----
> From: Atsushi Kumagai [mailto:kumagai-atsushi at mxc.nes.nec.co.jp]
> Sent: Thursday, November 15, 2012 2:20 PM
[...]
> On Thu, 15 Nov 2012 01:55:04 +0000
> "Hatayama, Daisuke" <d.hatayama at jp.fujitsu.com> wrote:
[...]
>
> I think it's OK on the logic of selection for page_is_buddy_vX().
> But there remain some cases where page_is_buddy_vX() doesn't work correctly
> because OFFSET(page.private) and OFFSET(page._mapcount) do not exist.
> And it's difficult to hard code for them.
>
> So I think setup_page_is_buddy() should be changed like below:
>
> static void
> setup_page_is_buddy(void)
> {
> if (OFFSET(page.private) == NOT_FOUND_STRUCTURE)
> info->page_is_buddy = NULL;
> else if (NUMBER(PG_buddy) == NOT_FOUND_NUMBER) {
> if (NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE) !=
> NOT_FOUND_NUMBER) {
> if (OFFSET(page._mapcout) !=
> NOT_FOUND_STRUCTURE) {
> info->page_is_buddy =
> page_is_buddy_v3;
> return;
> }
> } else if (SIZE(pageflags) == NOT_FOUND_STRUCTURE) {
> info->page_is_buddy = page_is_buddy_v1;
> return;
> }
> } else {
> info->page_is_buddy = page_is_buddy_v2;
> return;
> }
>
> DEBUG_MSG("Can't select page_is_buddy handler; "
> "follow freelist instead of mem_map.\n");
>
> }
>
Agree. I'll rewrite it.
When do you plan to post v1.5.1-rc?
Thanks.
HATAYAMA, Daisuke
More information about the kexec
mailing list