From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49890) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1e1aLe-0005zb-1z for qemu-devel@nongnu.org; Mon, 09 Oct 2017 11:52:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1e1aLY-00050L-2A for qemu-devel@nongnu.org; Mon, 09 Oct 2017 11:52:06 -0400 Received: from smtp02.citrix.com ([66.165.176.63]:46831) by eggs.gnu.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.71) (envelope-from ) id 1e1aLX-0004zQ-TG for qemu-devel@nongnu.org; Mon, 09 Oct 2017 11:52:00 -0400 Date: Mon, 9 Oct 2017 16:50:44 +0100 From: Anthony PERARD Message-ID: <20171009155044.GC1771@perard.uk.xensource.com> References: <1507133891-26013-1-git-send-email-ian.jackson@eu.citrix.com> <1507133891-26013-4-git-send-email-ian.jackson@eu.citrix.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1507133891-26013-4-git-send-email-ian.jackson@eu.citrix.com> Subject: Re: [Qemu-devel] [PATCH 3/8] xen: defer call to xen_restrict until after os_setup_post List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Ian Jackson Cc: qemu-devel@nongnu.org, Ross Lagerwall , xen-devel@lists.xenproject.org, Juergen Gross , Stefano Stabellini , xen-devel@nongnu.org On Wed, Oct 04, 2017 at 05:18:06PM +0100, Ian Jackson wrote: > We need to restrict *all* the control fds that qemu opens. Looking in > /proc/PID/fd shows there are many; their allocation seems scattered > throughout Xen support code in qemu. > > We must postpone the restrict call until roughly the same time as qemu > changes its uid, chroots (if applicable), and so on. > > There doesn't seem to be an appropriate hook already. The RunState > change hook fires at different times depending on exactly what mode > qemu is operating in. > > And it appears that no-one but the Xen code wants a hook at this phase > of execution. So, introduce a bare call to a new function > xen_setup_post, just after os_setup_post. Also provide the > appropriate stub for when Xen compilation is disabled. > > Signed-off-by: Ian Jackson > --- > hw/i386/xen/xen-hvm.c | 8 -------- > hw/xen/xen-common.c | 13 +++++++++++++ > include/sysemu/sysemu.h | 2 ++ > stubs/xen-hvm.c | 5 +++++ > vl.c | 1 + > 5 files changed, 21 insertions(+), 8 deletions(-) > > diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c > index d9ccd5d..7b60ec6 100644 > --- a/hw/i386/xen/xen-hvm.c > +++ b/hw/i386/xen/xen-hvm.c > @@ -1254,14 +1254,6 @@ void xen_hvm_init(PCMachineState *pcms, MemoryRegion **ram_memory) > goto err; > } > > - if (xen_domid_restrict) { > - rc = xen_restrict(xen_domid); > - if (rc < 0) { > - error_report("failed to restrict: error %d", errno); > - goto err; > - } > - } > - > xen_create_ioreq_server(xen_domid, &state->ioservid); > > state->exit.notify = xen_exit_notifier; > diff --git a/hw/xen/xen-common.c b/hw/xen/xen-common.c > index 632a938..4056420 100644 > --- a/hw/xen/xen-common.c > +++ b/hw/xen/xen-common.c > @@ -117,6 +117,19 @@ static void xen_change_state_handler(void *opaque, int running, > } > } > > +void xen_setup_post(void) > +{ > + int rc; We probably want to check here if Xen is enable (via xen_enabled()). xen_domid_restrict could be true when Xen is not used, even if it does not make sense to use -xen-domid-restrict in that case. > + if (xen_domid_restrict) { > + rc = xen_restrict(xen_domid); > + if (rc < 0) { > + perror("xen: failed to restrict"); > + exit(1); > + } > + } > +} > + > static int xen_init(MachineState *ms) > { > xen_xc = xc_interface_open(0, 0, 0); > diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h > index b213696..b064a55 100644 > --- a/include/sysemu/sysemu.h > +++ b/include/sysemu/sysemu.h > @@ -93,6 +93,8 @@ void qemu_remove_machine_init_done_notifier(Notifier *notify); > > void qemu_announce_self(void); > > +void xen_setup_post(void); > + > extern int autostart; > > typedef enum { > diff --git a/stubs/xen-hvm.c b/stubs/xen-hvm.c > index 3ca6c51..9701feb 100644 > --- a/stubs/xen-hvm.c > +++ b/stubs/xen-hvm.c > @@ -13,6 +13,7 @@ > #include "hw/xen/xen.h" > #include "exec/memory.h" > #include "qmp-commands.h" > +#include "sysemu/sysemu.h" > > int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num) > { > @@ -61,3 +62,7 @@ void xen_hvm_init(PCMachineState *pcms, MemoryRegion **ram_memory) > void qmp_xen_set_global_dirty_log(bool enable, Error **errp) > { > } > + > +void xen_setup_post(void) > +{ > +} > diff --git a/vl.c b/vl.c > index fb1f05b..9e7d541 100644 > --- a/vl.c > +++ b/vl.c > @@ -4793,6 +4793,7 @@ int main(int argc, char **argv, char **envp) > } > > os_setup_post(); > + xen_setup_post(); > > main_loop(); > replay_disable_events(); > -- > 2.1.4 > -- Anthony PERARD From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony PERARD Subject: Re: [PATCH 3/8] xen: defer call to xen_restrict until after os_setup_post Date: Mon, 9 Oct 2017 16:50:44 +0100 Message-ID: <20171009155044.GC1771@perard.uk.xensource.com> References: <1507133891-26013-1-git-send-email-ian.jackson@eu.citrix.com> <1507133891-26013-4-git-send-email-ian.jackson@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e1aLY-0002au-Lx for xen-devel@lists.xenproject.org; Mon, 09 Oct 2017 15:52:00 +0000 Content-Disposition: inline In-Reply-To: <1507133891-26013-4-git-send-email-ian.jackson@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Ian Jackson Cc: Juergen Gross , Stefano Stabellini , qemu-devel@nongnu.org, Ross Lagerwall , xen-devel@lists.xenproject.org, xen-devel@nongnu.org List-Id: xen-devel@lists.xenproject.org T24gV2VkLCBPY3QgMDQsIDIwMTcgYXQgMDU6MTg6MDZQTSArMDEwMCwgSWFuIEphY2tzb24gd3Jv dGU6Cj4gV2UgbmVlZCB0byByZXN0cmljdCAqYWxsKiB0aGUgY29udHJvbCBmZHMgdGhhdCBxZW11 IG9wZW5zLiAgTG9va2luZyBpbgo+IC9wcm9jL1BJRC9mZCBzaG93cyB0aGVyZSBhcmUgbWFueTsg dGhlaXIgYWxsb2NhdGlvbiBzZWVtcyBzY2F0dGVyZWQKPiB0aHJvdWdob3V0IFhlbiBzdXBwb3J0 IGNvZGUgaW4gcWVtdS4KPiAKPiBXZSBtdXN0IHBvc3Rwb25lIHRoZSByZXN0cmljdCBjYWxsIHVu dGlsIHJvdWdobHkgdGhlIHNhbWUgdGltZSBhcyBxZW11Cj4gY2hhbmdlcyBpdHMgdWlkLCBjaHJv b3RzIChpZiBhcHBsaWNhYmxlKSwgYW5kIHNvIG9uLgo+IAo+IFRoZXJlIGRvZXNuJ3Qgc2VlbSB0 byBiZSBhbiBhcHByb3ByaWF0ZSBob29rIGFscmVhZHkuICBUaGUgUnVuU3RhdGUKPiBjaGFuZ2Ug aG9vayBmaXJlcyBhdCBkaWZmZXJlbnQgdGltZXMgZGVwZW5kaW5nIG9uIGV4YWN0bHkgd2hhdCBt b2RlCj4gcWVtdSBpcyBvcGVyYXRpbmcgaW4uCj4gCj4gQW5kIGl0IGFwcGVhcnMgdGhhdCBuby1v bmUgYnV0IHRoZSBYZW4gY29kZSB3YW50cyBhIGhvb2sgYXQgdGhpcyBwaGFzZQo+IG9mIGV4ZWN1 dGlvbi4gIFNvLCBpbnRyb2R1Y2UgYSBiYXJlIGNhbGwgdG8gYSBuZXcgZnVuY3Rpb24KPiB4ZW5f c2V0dXBfcG9zdCwganVzdCBhZnRlciBvc19zZXR1cF9wb3N0LiAgQWxzbyBwcm92aWRlIHRoZQo+ IGFwcHJvcHJpYXRlIHN0dWIgZm9yIHdoZW4gWGVuIGNvbXBpbGF0aW9uIGlzIGRpc2FibGVkLgo+ IAo+IFNpZ25lZC1vZmYtYnk6IElhbiBKYWNrc29uIDxJYW4uSmFja3NvbkBldS5jaXRyaXguY29t Pgo+IC0tLQo+ICBody9pMzg2L3hlbi94ZW4taHZtLmMgICB8ICA4IC0tLS0tLS0tCj4gIGh3L3hl bi94ZW4tY29tbW9uLmMgICAgIHwgMTMgKysrKysrKysrKysrKwo+ICBpbmNsdWRlL3N5c2VtdS9z eXNlbXUuaCB8ICAyICsrCj4gIHN0dWJzL3hlbi1odm0uYyAgICAgICAgIHwgIDUgKysrKysKPiAg dmwuYyAgICAgICAgICAgICAgICAgICAgfCAgMSArCj4gIDUgZmlsZXMgY2hhbmdlZCwgMjEgaW5z ZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvaHcvaTM4Ni94ZW4v eGVuLWh2bS5jIGIvaHcvaTM4Ni94ZW4veGVuLWh2bS5jCj4gaW5kZXggZDljY2Q1ZC4uN2I2MGVj NiAxMDA2NDQKPiAtLS0gYS9ody9pMzg2L3hlbi94ZW4taHZtLmMKPiArKysgYi9ody9pMzg2L3hl bi94ZW4taHZtLmMKPiBAQCAtMTI1NCwxNCArMTI1NCw2IEBAIHZvaWQgeGVuX2h2bV9pbml0KFBD TWFjaGluZVN0YXRlICpwY21zLCBNZW1vcnlSZWdpb24gKipyYW1fbWVtb3J5KQo+ICAgICAgICAg IGdvdG8gZXJyOwo+ICAgICAgfQo+ICAKPiAtICAgIGlmICh4ZW5fZG9taWRfcmVzdHJpY3QpIHsK PiAtICAgICAgICByYyA9IHhlbl9yZXN0cmljdCh4ZW5fZG9taWQpOwo+IC0gICAgICAgIGlmIChy YyA8IDApIHsKPiAtICAgICAgICAgICAgZXJyb3JfcmVwb3J0KCJmYWlsZWQgdG8gcmVzdHJpY3Q6 IGVycm9yICVkIiwgZXJybm8pOwo+IC0gICAgICAgICAgICBnb3RvIGVycjsKPiAtICAgICAgICB9 Cj4gLSAgICB9Cj4gLQo+ICAgICAgeGVuX2NyZWF0ZV9pb3JlcV9zZXJ2ZXIoeGVuX2RvbWlkLCAm c3RhdGUtPmlvc2VydmlkKTsKPiAgCj4gICAgICBzdGF0ZS0+ZXhpdC5ub3RpZnkgPSB4ZW5fZXhp dF9ub3RpZmllcjsKPiBkaWZmIC0tZ2l0IGEvaHcveGVuL3hlbi1jb21tb24uYyBiL2h3L3hlbi94 ZW4tY29tbW9uLmMKPiBpbmRleCA2MzJhOTM4Li40MDU2NDIwIDEwMDY0NAo+IC0tLSBhL2h3L3hl bi94ZW4tY29tbW9uLmMKPiArKysgYi9ody94ZW4veGVuLWNvbW1vbi5jCj4gQEAgLTExNyw2ICsx MTcsMTkgQEAgc3RhdGljIHZvaWQgeGVuX2NoYW5nZV9zdGF0ZV9oYW5kbGVyKHZvaWQgKm9wYXF1 ZSwgaW50IHJ1bm5pbmcsCj4gICAgICB9Cj4gIH0KPiAgCj4gK3ZvaWQgeGVuX3NldHVwX3Bvc3Qo dm9pZCkKPiArewo+ICsgICAgaW50IHJjOwoKV2UgcHJvYmFibHkgd2FudCB0byBjaGVjayBoZXJl IGlmIFhlbiBpcyBlbmFibGUgKHZpYSB4ZW5fZW5hYmxlZCgpKS4KeGVuX2RvbWlkX3Jlc3RyaWN0 IGNvdWxkIGJlIHRydWUgd2hlbiBYZW4gaXMgbm90IHVzZWQsIGV2ZW4gaWYgaXQgZG9lcwpub3Qg bWFrZSBzZW5zZSB0byB1c2UgLXhlbi1kb21pZC1yZXN0cmljdCBpbiB0aGF0IGNhc2UuCgo+ICsg ICAgaWYgKHhlbl9kb21pZF9yZXN0cmljdCkgewo+ICsgICAgICAgIHJjID0geGVuX3Jlc3RyaWN0 KHhlbl9kb21pZCk7Cj4gKyAgICAgICAgaWYgKHJjIDwgMCkgewo+ICsgICAgICAgICAgICBwZXJy b3IoInhlbjogZmFpbGVkIHRvIHJlc3RyaWN0Iik7Cj4gKyAgICAgICAgICAgIGV4aXQoMSk7Cj4g KyAgICAgICAgfQo+ICsgICAgfQo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IHhlbl9pbml0KE1hY2hp bmVTdGF0ZSAqbXMpCj4gIHsKPiAgICAgIHhlbl94YyA9IHhjX2ludGVyZmFjZV9vcGVuKDAsIDAs IDApOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3N5c2VtdS9zeXNlbXUuaCBiL2luY2x1ZGUvc3lz ZW11L3N5c2VtdS5oCj4gaW5kZXggYjIxMzY5Ni4uYjA2NGE1NSAxMDA2NDQKPiAtLS0gYS9pbmNs dWRlL3N5c2VtdS9zeXNlbXUuaAo+ICsrKyBiL2luY2x1ZGUvc3lzZW11L3N5c2VtdS5oCj4gQEAg LTkzLDYgKzkzLDggQEAgdm9pZCBxZW11X3JlbW92ZV9tYWNoaW5lX2luaXRfZG9uZV9ub3RpZmll cihOb3RpZmllciAqbm90aWZ5KTsKPiAgCj4gIHZvaWQgcWVtdV9hbm5vdW5jZV9zZWxmKHZvaWQp Owo+ICAKPiArdm9pZCB4ZW5fc2V0dXBfcG9zdCh2b2lkKTsKPiArCj4gIGV4dGVybiBpbnQgYXV0 b3N0YXJ0Owo+ICAKPiAgdHlwZWRlZiBlbnVtIHsKPiBkaWZmIC0tZ2l0IGEvc3R1YnMveGVuLWh2 bS5jIGIvc3R1YnMveGVuLWh2bS5jCj4gaW5kZXggM2NhNmM1MS4uOTcwMWZlYiAxMDA2NDQKPiAt LS0gYS9zdHVicy94ZW4taHZtLmMKPiArKysgYi9zdHVicy94ZW4taHZtLmMKPiBAQCAtMTMsNiAr MTMsNyBAQAo+ICAjaW5jbHVkZSAiaHcveGVuL3hlbi5oIgo+ICAjaW5jbHVkZSAiZXhlYy9tZW1v cnkuaCIKPiAgI2luY2x1ZGUgInFtcC1jb21tYW5kcy5oIgo+ICsjaW5jbHVkZSAic3lzZW11L3N5 c2VtdS5oIgo+ICAKPiAgaW50IHhlbl9wY2lfc2xvdF9nZXRfcGlycShQQ0lEZXZpY2UgKnBjaV9k ZXYsIGludCBpcnFfbnVtKQo+ICB7Cj4gQEAgLTYxLDMgKzYyLDcgQEAgdm9pZCB4ZW5faHZtX2lu aXQoUENNYWNoaW5lU3RhdGUgKnBjbXMsIE1lbW9yeVJlZ2lvbiAqKnJhbV9tZW1vcnkpCj4gIHZv aWQgcW1wX3hlbl9zZXRfZ2xvYmFsX2RpcnR5X2xvZyhib29sIGVuYWJsZSwgRXJyb3IgKiplcnJw KQo+ICB7Cj4gIH0KPiArCj4gK3ZvaWQgeGVuX3NldHVwX3Bvc3Qodm9pZCkKPiArewo+ICt9Cj4g ZGlmZiAtLWdpdCBhL3ZsLmMgYi92bC5jCj4gaW5kZXggZmIxZjA1Yi4uOWU3ZDU0MSAxMDA2NDQK PiAtLS0gYS92bC5jCj4gKysrIGIvdmwuYwo+IEBAIC00NzkzLDYgKzQ3OTMsNyBAQCBpbnQgbWFp bihpbnQgYXJnYywgY2hhciAqKmFyZ3YsIGNoYXIgKiplbnZwKQo+ICAgICAgfQo+ICAKPiAgICAg IG9zX3NldHVwX3Bvc3QoKTsKPiArICAgIHhlbl9zZXR1cF9wb3N0KCk7Cj4gIAo+ICAgICAgbWFp bl9sb29wKCk7Cj4gICAgICByZXBsYXlfZGlzYWJsZV9ldmVudHMoKTsKPiAtLSAKPiAyLjEuNAo+ IAoKLS0gCkFudGhvbnkgUEVSQVJECgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4u b3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK