|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 08/14] kernel-doc: public/memory.h
On Mon, 17 Aug 2020, Jan Beulich wrote:
> On 07.08.2020 23:51, Stefano Stabellini wrote:
> > On Fri, 7 Aug 2020, Jan Beulich wrote:
> >> On 07.08.2020 01:49, Stefano Stabellini wrote:
> >>> From: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>
> >>>
> >>> Convert in-code comments to kernel-doc format wherever possible.
> >>>
> >>> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxx>
> >>> ---
> >>> xen/include/public/memory.h | 232 ++++++++++++++++++++++++------------
> >>> 1 file changed, 155 insertions(+), 77 deletions(-)
> >>>
> >>> diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
> >>> index 21057ed78e..4c57ed213c 100644
> >>> --- a/xen/include/public/memory.h
> >>> +++ b/xen/include/public/memory.h
> >>> @@ -30,7 +30,9 @@
> >>> #include "xen.h"
> >>> #include "physdev.h"
> >>>
> >>> -/*
> >>> +/**
> >>> + * DOC: XENMEM_increase_reservation and XENMEM_decrease_reservation
> >>> + *
> >>> * Increase or decrease the specified domain's memory reservation.
> >>> Returns the
> >>> * number of extents successfully allocated or freed.
> >>> * arg == addr of struct xen_memory_reservation.
> >>> @@ -40,29 +42,37 @@
> >>> #define XENMEM_populate_physmap 6
> >>>
> >>> #if __XEN_INTERFACE_VERSION__ >= 0x00030209
> >>> -/*
> >>> - * Maximum # bits addressable by the user of the allocated region (e.g.,
> >>> I/O
> >>> - * devices often have a 32-bit limitation even in 64-bit systems). If
> >>> zero
> >>> - * then the user has no addressing restriction. This field is not used by
> >>> - * XENMEM_decrease_reservation.
> >>> +/**
> >>> + * DOC: XENMEMF_*
> >>> + *
> >>> + * - XENMEMF_address_bits, XENMEMF_get_address_bits:
> >>> + * Maximum # bits addressable by the user of the allocated region
> >>> + * (e.g., I/O devices often have a 32-bit limitation even in 64-bit
> >>> + * systems). If zero then the user has no addressing restriction.
> >>> This
> >>> + * field is not used by XENMEM_decrease_reservation.
> >>> + * - XENMEMF_node, XENMEMF_get_node: NUMA node to allocate from
> >>> + * - XENMEMF_populate_on_demand: Flag to populate physmap with
> >>> populate-on-demand entries
> >>> + * - XENMEMF_exact_node_request, XENMEMF_exact_node: Flag to request
> >>> allocation only from the node specified
> >>
> >> Nit: overly long line
> >
> > I'll fix
> >
> >
> >>> + * - XENMEMF_vnode: Flag to indicate the node specified is virtual node
> >>> */
> >>> #define XENMEMF_address_bits(x) (x)
> >>> #define XENMEMF_get_address_bits(x) ((x) & 0xffu)
> >>> -/* NUMA node to allocate from. */
> >>> #define XENMEMF_node(x) (((x) + 1) << 8)
> >>> #define XENMEMF_get_node(x) ((((x) >> 8) - 1) & 0xffu)
> >>> -/* Flag to populate physmap with populate-on-demand entries */
> >>> #define XENMEMF_populate_on_demand (1<<16)
> >>> -/* Flag to request allocation only from the node specified */
> >>> #define XENMEMF_exact_node_request (1<<17)
> >>> #define XENMEMF_exact_node(n) (XENMEMF_node(n) |
> >>> XENMEMF_exact_node_request)
> >>> -/* Flag to indicate the node specified is virtual node */
> >>> #define XENMEMF_vnode (1<<18)
> >>> #endif
> >>>
> >>> +/**
> >>> + * struct xen_memory_reservation
> >>> + */
> >>> struct xen_memory_reservation {
> >>>
> >>> - /*
> >>> + /**
> >>> + * @extent_start:
> >>> + *
> >>
> >> Take the opportunity and drop the stray blank line?
> >
> > Sure
> >
> >
> >>> @@ -200,90 +236,115 @@ DEFINE_XEN_GUEST_HANDLE(xen_machphys_mfn_list_t);
> >>> */
> >>> #define XENMEM_machphys_compat_mfn_list 25
> >>>
> >>> -/*
> >>> +#define XENMEM_machphys_mapping 12
> >>> +/**
> >>> + * struct xen_machphys_mapping - XENMEM_machphys_mapping
> >>> + *
> >>> * Returns the location in virtual address space of the machine_to_phys
> >>> * mapping table. Architectures which do not have a m2p table, or which
> >>> do not
> >>> * map it by default into guest address space, do not implement this
> >>> command.
> >>> * arg == addr of xen_machphys_mapping_t.
> >>> */
> >>> -#define XENMEM_machphys_mapping 12
> >>> struct xen_machphys_mapping {
> >>> + /** @v_start: Start virtual address */
> >>> xen_ulong_t v_start, v_end; /* Start and end virtual addresses. */
> >>> - xen_ulong_t max_mfn; /* Maximum MFN that can be looked up. */
> >>> + /** @v_end: End virtual addresses */
> >>> + xen_ulong_t v_end;
> >>> + /** @max_mfn: Maximum MFN that can be looked up */
> >>> + xen_ulong_t max_mfn;
> >>> };
> >>> typedef struct xen_machphys_mapping xen_machphys_mapping_t;
> >>> DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
> >>>
> >>> -/* Source mapping space. */
> >>> +/**
> >>> + * DOC: Source mapping space.
> >>> + *
> >>> + * - XENMAPSPACE_shared_info: shared info page
> >>> + * - XENMAPSPACE_grant_table: grant table page
> >>> + * - XENMAPSPACE_gmfn: GMFN
> >>> + * - XENMAPSPACE_gmfn_range: GMFN range, XENMEM_add_to_physmap only.
> >>> + * - XENMAPSPACE_gmfn_foreign: GMFN from another dom,
> >>> + * XENMEM_add_to_physmap_batch only.
> >>> + * - XENMAPSPACE_dev_mmio: device mmio region ARM only; the region
> >>> is mapped
> >>> + * in Stage-2 using the Normal
> >>> MemoryInner/Outer
> >>> + * Write-Back Cacheable memory attribute.
> >>> + */
> >>> /* ` enum phys_map_space { */
> >>
> >> Isn't this and ...
> >>
> >>> -#define XENMAPSPACE_shared_info 0 /* shared info page */
> >>> -#define XENMAPSPACE_grant_table 1 /* grant table page */
> >>> -#define XENMAPSPACE_gmfn 2 /* GMFN */
> >>> -#define XENMAPSPACE_gmfn_range 3 /* GMFN range, XENMEM_add_to_physmap
> >>> only. */
> >>> -#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom,
> >>> - * XENMEM_add_to_physmap_batch only.
> >>> */
> >>> -#define XENMAPSPACE_dev_mmio 5 /* device mmio region
> >>> - ARM only; the region is mapped in
> >>> - Stage-2 using the Normal Memory
> >>> - Inner/Outer Write-Back Cacheable
> >>> - memory attribute. */
> >>> +#define XENMAPSPACE_shared_info 0
> >>> +#define XENMAPSPACE_grant_table 1
> >>> +#define XENMAPSPACE_gmfn 2
> >>> +#define XENMAPSPACE_gmfn_range 3
> >>> +#define XENMAPSPACE_gmfn_foreign 4
> >>> +#define XENMAPSPACE_dev_mmio 5
> >>> /* ` } */
> >>
> >> ... this also something that wants converting?
> >
> > For clarity, I take you are talking about these two enum-related
> > comments:
> >
> > /* ` enum phys_map_space { */
> > [... various #defines ... ]
> > /* ` } */
> >
> > Is this something we want to convert to kernel-doc? I don't know. I
> > couldn't see an obvious value in doing it, in the sense that it doesn't
> > necessarely make things clearer.
> >
> > I took a second look at the header and the following would work:
> >
> > /**
> > * DOC: Source mapping space.
> > *
> > * enum phys_map_space {
> > *
> > * - XENMAPSPACE_shared_info: shared info page
> > * - XENMAPSPACE_grant_table: grant table page
> > * - XENMAPSPACE_gmfn: GMFN
> > * - XENMAPSPACE_gmfn_range: GMFN range, XENMEM_add_to_physmap only.
> > * - XENMAPSPACE_gmfn_foreign: GMFN from another dom,
> > * XENMEM_add_to_physmap_batch only.
> > * - XENMAPSPACE_dev_mmio: device mmio region ARM only; the region is
> > mapped
> > * in Stage-2 using the Normal MemoryInner/Outer
> > * Write-Back Cacheable memory attribute.
> > * }
> > */
> >
> > Note the blank line after "enum phys_map_space {" is required.
> >
> >
> > All in all I am in favor of *not* converting the enum comment to
> > kernel-doc, but I'd be OK with it anyway.
>
> Iirc the enum comments were added for documentation purposes. This to
> me means there are two options at this point:
> - retain them in a way that the new doc model consumes them,
> - drop them at the same time as adding the new doc comments.
>
> Their (presumed) value is that they identify #define-s which supposed
> to be enum-like without actually being able to use enums in the public
> headers (with some exceptions).
I understand. Then, it doesn't look like we want to keep them in the code
without converting them to kernel-doc. We could either:
1) remove them as part of this series
2) convert them to kernel-doc in the top comment as shown above
I could do either, but my preference is 1) because I think it leads to
clearer docs.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |