Re: [PATCH 2/8] xen/balloon: Move common memory reservation routines to a module

From: Boris Ostrovsky
Date: Wed May 30 2018 - 15:21:38 EST


On 05/30/2018 01:46 PM, Oleksandr Andrushchenko wrote:
> On 05/30/2018 06:54 PM, Boris Ostrovsky wrote:
>>
>>
>> BTW, I also think you can further simplify
>> xenmem_reservation_va_mapping_* routines by bailing out right away if
>> xen_feature(XENFEAT_auto_translated_physmap). In fact, you might even
>> make them inlines, along the lines of
>>
>> inline void xenmem_reservation_va_mapping_reset(unsigned long count,
>> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ struct page **pages)
>> {
>> #ifdef CONFIG_XEN_HAVE_PVMMU
>> ÂÂÂÂif (!xen_feature(XENFEAT_auto_translated_physmap))
>> ÂÂÂÂÂÂÂ __xenmem_reservation_va_mapping_reset(...)
>> #endif
>> }
> How about:
>
> #ifdef CONFIG_XEN_HAVE_PVMMU
> static inline __xenmem_reservation_va_mapping_reset(struct page *page)
> {
> [...]
> }
> #endif
>
> and
>
> void xenmem_reservation_va_mapping_reset(unsigned long count,
> ÂÂÂ ÂÂÂ ÂÂÂ ÂÂÂ ÂÂÂ Âstruct page **pages)
> {
> #ifdef CONFIG_XEN_HAVE_PVMMU
> ÂÂÂ if (!xen_feature(XENFEAT_auto_translated_physmap)) {
> ÂÂÂ ÂÂÂ int i;
>
> ÂÂÂ ÂÂÂ for (i = 0; i < count; i++)
> ÂÂÂ ÂÂÂ ÂÂÂ __xenmem_reservation_va_mapping_reset(pages[i]);
> ÂÂÂ }
> #endif
> }
>
> This way I can use __xenmem_reservation_va_mapping_reset(page);
> instead of xenmem_reservation_va_mapping_reset(1, &page);


Sure, this also works.

-boris