[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 2/4] x86: remove PVHv1 code
On Mon, Mar 13, 2017 at 04:50:12PM +0000, Wei Liu wrote: > On Fri, Mar 03, 2017 at 12:25:06PM +0000, Roger Pau Monne wrote: > > This removal applies to both the hypervisor and the toolstack side of PVHv1. > > > > Note that on the toolstack side a new PVH domain type is introduced to > > libxl. > > The "none" device model version is removed, together with the "pvh" field in > > the create info struct (the defines announcing those features are also > > removed > > from libxl.h). The canonical way to create a PVH guest in libxl is to add > > "pvh=1" to the guest config file. > > > > Signed-off-by: Roger Pau Monné <roger.pau@xxxxxxxxxx> > > Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > > Acked-by: George Dunlap <george.dunlap@xxxxxxxxxx> > > Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx> > > Acked-by: Elena Ufimtseva <elena.ufimtseva@xxxxxxxxxx> > > Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx> > > --- > > Changes since v1: > > - Remove dom0pvh option from the command line docs. > > - Bump domctl interface version due to the removed CDF flag. > > - Introduce LIBXL_DOMAIN_TYPE_PVH. > > - Remove "none" from the valid device model version options. > > - Update the xl.cfg(5) man page to reflect the changes. > > > > --- > > Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> > > Cc: Wei Liu <wei.liu2@xxxxxxxxxx> > > Cc: Elena Ufimtseva <elena.ufimtseva@xxxxxxxxxx> > > Cc: Jan Beulich <jbeulich@xxxxxxxx> > > Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> > > Cc: Paul Durrant <paul.durrant@xxxxxxxxxx> > > Cc: Jun Nakajima <jun.nakajima@xxxxxxxxx> > > Cc: Kevin Tian <kevin.tian@xxxxxxxxx> > > Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx> > > Cc: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx> > > Cc: Tamas K Lengyel <tamas@xxxxxxxxxxxxx> > > --- > > docs/man/xl.cfg.pod.5.in | 16 +- > > docs/misc/pvh-readme.txt | 63 -------- > > docs/misc/xen-command-line.markdown | 7 - > > tools/debugger/gdbsx/xg/xg_main.c | 4 +- > > tools/libxc/include/xc_dom.h | 1 - > > tools/libxc/include/xenctrl.h | 2 +- > > tools/libxc/xc_cpuid_x86.c | 13 +- > > tools/libxc/xc_dom_core.c | 9 -- > > tools/libxc/xc_dom_x86.c | 49 +++--- > > tools/libxc/xc_domain.c | 1 - > > tools/libxl/libxl.h | 22 +-- > > tools/libxl/libxl_console.c | 1 + > > tools/libxl/libxl_create.c | 64 +++----- > > tools/libxl/libxl_disk.c | 10 +- > > tools/libxl/libxl_dm.c | 2 + > > tools/libxl/libxl_dom.c | 86 ++++++----- > > tools/libxl/libxl_dom_save.c | 7 +- > > tools/libxl/libxl_dom_suspend.c | 4 +- > > tools/libxl/libxl_domain.c | 18 +-- > > tools/libxl/libxl_internal.h | 1 - > > tools/libxl/libxl_mem.c | 1 + > > tools/libxl/libxl_nic.c | 7 +- > > tools/libxl/libxl_pci.c | 9 +- > > tools/libxl/libxl_stream_read.c | 8 +- > > tools/libxl/libxl_stream_write.c | 14 +- > > tools/libxl/libxl_types.idl | 115 ++++++++------- > > tools/libxl/libxl_usb.c | 4 +- > > tools/libxl/libxl_x86.c | 31 ++-- > > tools/libxl/libxl_x86_acpi.c | 3 +- > > tools/xl/xl_parse.c | 8 +- > [...] > > + [("hvm", libxl_domain_build_info_hvm), > > + ("pvh", libxl_domain_build_info_hvm), > > This "pvh" field is never used in code - instead you fill in the hvm > fields. It is problematic because people don't know how to use this. > > Either we don't want this, or you would have to (tediously) fill this > in. I think the latter is what Ian has asked for. Unfortunately C > doesn't have good support for meta-programming. On second thought, let's look at this from user's perspective. A user of libxl would certainly use .u.pvh field to construct a pvh guest, so I think we need the pvh struct. Since .u.pvh and .u.hvm share the same layout and type-punning via union is allowed even when strict-aliasing is enabled, this patch *might* just work. (Can someone familiar with C standard check this?) Ultimately I would like to avoid tricky code like this even it conforms to C standard. Let me check if there is a way forward. Wei. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |