[Devel] [PATCH rh7] x86: arch_free_page() introduced

Stanislav Kinsburskiy skinsbursky at odin.com
Tue Nov 17 06:42:46 PST 2015



17.11.2015 15:20, Vladimir Davydov пишет:
> On Thu, Nov 12, 2015 at 10:01:14PM +0400, Stanislav Kinsburskiy wrote:
>
>> @@ -0,0 +1,23 @@
>> +#ifndef _ASM_X86_FREE_PAGE_H
>> +#define _ASM_X86_FREE_PAGE_H
>> +
>> +#ifdef __KERNEL__
>> +
>> +#ifndef __ASSEMBLY__
>> +
>> +#include <linux/jump_label.h>
>> +
>> +#define HAVE_ARCH_FREE_PAGE
>> +
>> +extern struct static_key zero_free_pages;
>> +extern void do_zero_pages(struct page *page, int order);
>> +
>> +static __always_inline void arch_free_page(struct page *page, int order)
>> +{
>> +	if (static_key_false(&zero_free_pages))
>> +		do_zero_pages(page, order);
>> +}
> There is no point in making this feature arch-dependant now, as you use
> jump labels, which are arch-independent. The only reason why I had to
> overwrite arch_free_page in PCS6 is that I had to write some asm code to
> implement functionality close to that provided by jump labels, which are
> absent in RH6-based kernels. Please move it to mm/page_alloc.c.
>
> Thanks.

If we will make this function generic, then we have to declare 
"zero_free_pages" as generic (which is more or less ok)  and define 
do_zero_pages for the case, when HAVE_ARCH_FREE_PAGE is not defined. 
Does the goal worth it?
If yes, then why?


More information about the Devel mailing list