[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH RFC 02/15] xen/arm: move a few guest related #defines to public/arch-arm.h



On Mon, 2 Jul 2018, Julien Grall wrote:
> Hi,
> 
> On 02/07/2018 21:37, Stefano Stabellini wrote:
> > On Fri, 15 Jun 2018, Julien Grall wrote:
> > > Hi Stefano,
> > > 
> > > On 06/14/2018 10:15 PM, Stefano Stabellini wrote:
> > > > On Thu, 14 Jun 2018, Julien Grall wrote:
> > > > > On 13/06/18 23:15, Stefano Stabellini wrote:
> > > > > > Move a few constants defined by libxl_arm.c to
> > > > > > xen/include/public/arch-arm.h, so that they are together with the
> > > > > > other
> > > > > > guest related #defines such as GUEST_GICD_BASE and GUEST_VPL011_SPI.
> > > > > > Also, this way they can be reused by hypervisor code.
> > > > > 
> > > > > All variables moved to arch-arm.h should be prefixed with GUEST_* to
> > > > > avoid
> > > > > clash with the rest of Xen.
> > > > 
> > > > I'll do.
> > > > 
> > > > > > 
> > > > > > Signed-off-by: Stefano Stabellini <stefanos@xxxxxxxxxx>
> > > > > > CC: wei.liu2@xxxxxxxxxx
> > > > > > CC: ian.jackson@xxxxxxxxxxxxx
> > > > > > ---
> > > > > >     tools/libxl/libxl_arm.c       | 26 --------------------------
> > > > > >     xen/include/public/arch-arm.h | 26 ++++++++++++++++++++++++++
> > > > > >     2 files changed, 26 insertions(+), 26 deletions(-)
> > > > > > 
> > > > > > diff --git a/tools/libxl/libxl_arm.c b/tools/libxl/libxl_arm.c
> > > > > > index 8af9f6f..89a417f 100644
> > > > > > --- a/tools/libxl/libxl_arm.c
> > > > > > +++ b/tools/libxl/libxl_arm.c
> > > > > > @@ -8,23 +8,6 @@
> > > > > >     #include <libfdt.h>
> > > > > >     #include <assert.h>
> > > > > >     -/**
> > > > > > - * IRQ line type.
> > > > > > - * DT_IRQ_TYPE_NONE            - default, unspecified type
> > > > > > - * DT_IRQ_TYPE_EDGE_RISING     - rising edge triggered
> > > > > > - * DT_IRQ_TYPE_EDGE_FALLING    - falling edge triggered
> > > > > > - * DT_IRQ_TYPE_EDGE_BOTH       - rising and falling edge triggered
> > > > > > - * DT_IRQ_TYPE_LEVEL_HIGH      - high level triggered
> > > > > > - * DT_IRQ_TYPE_LEVEL_LOW       - low level triggered
> > > > > > - */
> > > > > > -#define DT_IRQ_TYPE_NONE           0x00000000
> > > > > > -#define DT_IRQ_TYPE_EDGE_RISING    0x00000001
> > > > > > -#define DT_IRQ_TYPE_EDGE_FALLING   0x00000002
> > > > > > -#define DT_IRQ_TYPE_EDGE_BOTH                           \
> > > > > > -    (DT_IRQ_TYPE_EDGE_FALLING | DT_IRQ_TYPE_EDGE_RISING)
> > > > > > -#define DT_IRQ_TYPE_LEVEL_HIGH     0x00000004
> > > > > > -#define DT_IRQ_TYPE_LEVEL_LOW      0x00000008
> > > > > > -
> > > > > 
> > > > > Those defines have nothing to do with the guest itself. They are
> > > > > currently
> > > > > define in Xen without the DT_ prefix.
> > > > 
> > > > Sounds like we want to get rid of the DT_IRQ_TYPE_* definitions
> > > > completely, move the IRQ_TYPE_* definitions from device_tree.h to here,
> > > > and start using them in tools/libxl/libxl_arm.c (which involves a
> > > > renaming s/DT_IRQ_TYPE/IRQ_TYPE/g).
> > > > 
> > > > Is that what you had in mind?
> > > 
> > > Even if DT is Arm only today, the DT code is in common code and therefore
> > > header device_tree.h should contain every thing necessary to use a DT.
> > > 
> > > If we still want to share constant with libxl then I would prefer to
> > > introduce
> > > a new header (similar to acpi/acconfig.h) that provide all the common
> > > values.
> > 
> > OK, I can do that. I'll introduce a new header file.
> > 
> > 
> > > Note that the hypervisor one don't have the DT_ prefix because they are
> > > use to
> > > describe IRQ for both DT and ACPI in Xen. It is not that nice, we might
> > > want
> > > to introduce aliases in that case. So we keep DT_* in libxl.
> > 
> > With the new header file we'll be able to reuse the same #defines in
> > libxl and xen. I think it would be nicer to avoid the aliases and just
> > use the regular definitions in libxl too? Changing libxl to use
> > IRQ_TYPE_ directly only requires a small patch.
> 
> I really don't want that. As I explained, IRQ_TYPE have been conveniently
> chosen to avoid converting DT value to IRQ_TYPE. They are not meant to be use
> like that libxl (or any header publicly shared) and will provide more
> confusion that anything for other bits than the hypervisor.

I don't follow the explanation. Why would they be confusing in public
headers? What is the important difference between DT_IRQ_TYPE_* and
IRQ_TYPE_* that we are trying to keep? Why IRQ_TYPE_* shouldn't be used
by libxl?


> So in the hypervisor case we want to:
>       1) Define DT_* in a separate header
>       2) Alias IRQ_TYPE_* to corresponding one.
> 
> In the libxl case we want to use the new header containing DT_*.

I understand what you are asking now, that is clear. I don't understand
why though.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.