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

Re: [PATCH-for-4.16] tools/helpers: fix broken xenstore stubdom init



On 04.11.21 17:33, Jason Andryuk wrote:
On Thu, Nov 4, 2021 at 11:00 AM Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote:

On 04/11/2021 14:42, Juergen Gross wrote:
Commit 1787cc167906f3f ("libs/guest: Move the guest ABI check earlier
into xc_dom_parse_image()") broke starting the xenstore stubdom. This
is due to a rather special way the xenstore stubdom domain config is
being initialized: in order to support both, PV and PVH stubdom,
init-xenstore-domain is using xc_dom_parse_image() to find the correct
domain type. Unfortunately above commit requires xc_dom_boot_xen_init()
to have been called before using xc_dom_parse_image(). This requires
the domid, which is known only after xc_domain_create(), which requires
the domain type.

In order to break this circular dependency, call xc_dom_boot_xen_init()
with an arbitrary domid first, and then set dom->guest_domid later.

Fixes: 1787cc167906f3f ("libs/guest: Move the guest ABI check earlier into 
xc_dom_parse_image()")
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
Release-acked-by: Ian Jackson <iwj@xxxxxxxxxxxxxx>

This is all rather nasty, and really highlights problems with the
libxenguest abi, because you really ought to be able to ask "what ELF
properties do I have on my hand" without an implicit "and try to start
building a VM using it" on the side.

I agree this is probably the best thing to do right now.

Yes, this is probably the best change before release.

If xc_dom_allocate() filled in dom->xen_version & dom->xen_caps - i.e.
move that from xc_dom_boot_xen_init() - then I think this patch
wouldn't be necessary.  But there could be side effects of such a
change.

This is a nice idea for a cleanup patch after 4.16 has been branched.


Juergen

Attachment: OpenPGP_0xB0DE9DD628BF132F.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


 


Rackspace

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