[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <55C23476.8020104@citrix.com>
Date: Wed, 5 Aug 2015 17:06:14 +0100
From: Julien Grall <julien.grall@...rix.com>
To: David Vrabel <david.vrabel@...rix.com>,
<xen-devel@...ts.xenproject.org>
CC: <ian.campbell@...rix.com>,
Boris Ostrovsky <boris.ostrovsky@...cle.com>,
<linux-kernel@...r.kernel.org>,
<linux-arm-kernel@...ts.infradead.org>,
<stefano.stabellini@...citrix.com>
Subject: Re: [Xen-devel] [PATCH v2 02/20] xen: Introduce a function to split
a Linux page into Xen page
On 05/08/15 16:50, David Vrabel wrote:
>>>>> Also perhaps make it
>>>>>
>>>>> int xen_for_each_gfn(struct page *page,
>>>>> xen_gfn_fn_t fn, void *data);
>>>>
>>>> gfn standing for Guest Frame Number right?
>>>
>>> Yes. This suggestion is just changing the name to make it more obvious
>>> what it does.
>>
>> Thinking more about this suggestion. The callback (fn) is getting a 4K
>> PFN in parameter and not a GFN.
>
> I would like only APIs that deal with 64 KiB PFNs and 4 KiB GFNs. I
> think having a 4 KiB "PFN" is confusing.
I agree with that. Note that helpers splitting Linux page in 4K chunk
such as gnttab_for_each_grant (see patch #3) and this one may still have
the concept of 4K "PFN" for internal purpose.
> Can you rework this xen_for_each_gfn() to pass GFNs to fn, instead?
I will do.
>
>> This is because the balloon code seems to require having a 4K PFN in
>> hand in few places. For instance XENMEM_populate_physmap and
>> HYPERVISOR_update_va_mapping.
>
> Ug. For an auto-xlate guest frame-list needs GFNs, for a PV guest
> XENMEM_populate_physmap does want PFNs (so it can fill in the M2P).
>
> Perhaps in increase_reservation:
>
> if (auto-xlate)
> frame_list[i] = page_to_gfn(page);
> /* Or whatever per-GFN loop you need. */
> else
> frame_list[i] = page_to_pfn(page);
>
> update_va_mapping takes VAs (e.g, __va(pfn << PAGE_SHIFT) could be
> page_to_virt(page).
I though about a similar approach but I wanted to keep the code generic,
i.e support the splitting even for non auto-translated guest. Hence the
implementation xen_apply_to_page.
Anyway, I will see to do what you suggest.
> Sorry for being so picky here, but the inconsistency of terminology and
> API misuse is already confusing and I don't want to see it get worse.
No worry, I'm happy to rework this code to be able to drop the 4K PFN
concept.
Regards,
--
Julien Grall
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists