[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