[CRIU] [PATCH 1/6] Replace PAGE_SIZE in vaddr_to_pfn

Pavel Emelyanov xemul at parallels.com
Wed Oct 8 06:42:15 PDT 2014


On 10/08/2014 05:29 PM, Cyrill Gorcunov wrote:
> On Wed, Oct 08, 2014 at 09:11:46AM -0400, Christopher Covington wrote:
>>>>
>>>> or something like that.
>>>
>>> But the intention was exactly to avoid compile-time PAGE_SIZE, thus
>>> direct call to _sysconf on ARM looks more acceptable here.
>>>
>>> As far as the performance is concerned. In the current set I see no
>>> problems having one as a call, but we may someday have the PAGE_SIZE
>>> get involved into some for() loop and making one call per iteration
>>> would just produce unnecessary noise.
>>>
>>> Can we "cache" the value in kerndat.c and always use the variable?
>>
>> Sure, for v2 I'll try out page_size and task_size variables in kerndat.c.
> 
> Guys, guys, wait. Look, we have a generic definitions for PAGE_SIZE in
> include/asm-generic/page.h
> 
> #ifndef __CR_ASM_GENERIC_PAGE_H__
> #define __CR_ASM_GENERIC_PAGE_H__
> 
> #ifndef PAGE_SHIFT
> # define PAGE_SHIFT12
> #endif
> 
> #ifndef PAGE_SIZE
> # define PAGE_SIZE(1UL << PAGE_SHIFT)
> #endif
> 
> #ifndef PAGE_MASK
> # define PAGE_MASK(~(PAGE_SIZE - 1))
> #endif
> 
> #define PAGE_PFN(addr)addr((addr) / PAGE_SIZE)
> 
> #endif /* __CR_ASM_GENERIC_PAGE_H__ */
> 
> Why don't
> 
> #include "asm/page.h"
> 
> here and redefine PAGE_SIZE/SHIT and such there. IOW,
> for ARM it could be
> 
> arch/arm/include/asm/page.h
> 
> #define PAGE_SIZE (sysconf(_PAGE_SIZE)))
> 
> or something like that. SO we don't have to change PAGE_SIZE all over
> the criu code at all, but in one place only. Hmm? What do you think?
> .
> 

I think if we go this route, then we should remove the generic definition
of PAGE_SIZE at all and require arch/ headers to provide one.

Thanks,
Pavel



More information about the CRIU mailing list