[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [RFC 1/2] xen/mm: Clarify the granularity for each Frame Number
From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> ARM64 is able to support 64KB and 4KB page granularities. While the guest will support both granularities, Xen and hypercall interface will always be in 4KB. Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx> Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx> --- Cc: Ian Campbell <ian.campbell@xxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Keir Fraser <keir@xxxxxxx> Cc: Tim Deegan <tim@xxxxxxx> Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> I'm missing one term for Linux Frame Number but always in 4KB granularity. It's necessary in few places such as the balloon code where we need to map a Linux 4KB Frame Number into a Machine Frame Number. I was thinking to name it xen_pfn. --- xen/include/xen/mm.h | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/xen/include/xen/mm.h b/xen/include/xen/mm.h index 876d370..8dfd61a 100644 --- a/xen/include/xen/mm.h +++ b/xen/include/xen/mm.h @@ -15,16 +15,24 @@ * * mfn: Machine Frame Number * The values Xen puts into its own pagetables. This is the host physical - * memory address space with RAM, MMIO etc. + * memory address space with RAM, MMIO etc. Always 4KB granularity. * * gfn: Guest Frame Number - * The values a guest puts in its own pagetables. For an auto-translated - * guest (hardware assisted with 2nd stage translation, or shadowed), gfn != - * mfn. For a non-translated guest which is aware of Xen, gfn == mfn. + * The values a guest puts in its own pagetables, except for 64KB + * granularity. Gfns are always based on 4KB granularity, while actually + * the guest could use other granularities. For an auto-translated guest + * (hardware assisted with 2nd stage translation, or shadowed), gfn != mfn. + * For a non-translated guest which is aware of Xen, gfn == mfn. + * Hypercalls take gfns, not mfns, as parameters unless clearly specified + * otherwise. * * pfn: Pseudophysical Frame Number - * A linear idea of a guest physical address space. For an auto-translated - * guest, pfn == gfn while for a non-translated guest, pfn != gfn. + * A linear idea of a guest physical address space. Pfns are in guest + * granularity, which can be 64KB or 4KB. PV guests must only use 4KB + * granularity. For an auto-translated guest, pfn == gfn << shift, + * where the shift is the different between the Xen and Linux page + * granularity, while for a non-translated guest, pfn != gfn. Pfns are + * internal to the guest and are not passed to hypercalls. * * WARNING: Some of these terms have changed over time while others have been * used inconsistently, meaning that a lot of existing code does not match the -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |