xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xen.org>
Cc: "Juergen Gross" <jgross@suse.com>,
	"Marek Marczykowski-Górecki" <marmarek@invisiblethingslab.com>,
	"Rob Hoes" <Rob.Hoes@citrix.com>,
	"Stefano Stabellini" <sstabellini@kernel.org>,
	"Wei Liu" <wei.liu2@citrix.com>,
	"George Dunlap" <George.Dunlap@eu.citrix.com>,
	"Andrew Cooper" <andrew.cooper3@citrix.com>,
	"Ian Jackson" <ian.jackson@eu.citrix.com>,
	"Jon Ludlam" <jonathan.ludlam@eu.citrix.com>,
	"Tim Deegan" <tim@xen.org>, "Julien Grall" <julien.grall@arm.com>,
	"Christian Lindig" <christian.lindig@citrix.com>,
	"Jan Beulich" <JBeulich@suse.com>,
	"David Scott" <dave@recoil.org>,
	"Daniel De Graaf" <dgdegra@tycho.nsa.gov>
Subject: [PATCH v2 00/12] Improvements to domain creation
Date: Mon, 13 Aug 2018 11:00:57 +0100	[thread overview]
Message-ID: <1534154469-6076-1-git-send-email-andrew.cooper3@citrix.com> (raw)

The main purpose of this series is to move the allocation of d->vcpu[] into
XEN_DOMCTL_createdomain, which resolves a longstanding issue since Xen 4.0
whereby the toolstack can cause NULL pointer deferences in Xen by issuing
hypercalls in an unexpected order.

Due to the way cleanup is currently performed, XEN_DOMCTL_max_vcpus is still
required at this point.  Further hypervisor cleanup and rearrangement is going
to be required before the hypercall can be dropped.

This series can be found in git form here:
  http://xenbits.xen.org/gitweb/?p=people/andrewcoop/xen.git;a=shortlog;h=refs/heads/xen-create-v1

v2 has had comprehensive testing in XenServer, but is only build tested for ARM.

Andrew Cooper (12):
  tools/ocaml: Pass a full domctl_create_config into stub_xc_domain_create()
  tools: Rework xc_domain_create() to take a full xen_domctl_createdomain
  xen/domctl: Merge set_max_evtchn into createdomain
  xen/evtchn: Pass max_evtchn_port into evtchn_init()
  tools: Pass grant table limits to XEN_DOMCTL_set_gnttab_limits
  xen/gnttab: Pass max_{grant,maptrack}_frames into grant_table_create()
  xen/domctl: Remove XEN_DOMCTL_set_gnttab_limits
  xen/gnttab: Fold grant_table_{create,set_limits}() into grant_table_init()
  xen/domain: Call arch_domain_create() as early as possible in domain_create()
  tools: Pass max_vcpus to XEN_DOMCTL_createdomain
  xen/dom0: Arrange for dom0_cfg to contain the real max_vcpus value
  xen/domain: Allocate d->vcpu[] in domain_create()

 tools/flask/policy/modules/dom0.te   |   4 +-
 tools/flask/policy/modules/xen.if    |   4 +-
 tools/helpers/init-xenstore-domain.c |  39 ++++++-------
 tools/libxc/include/xenctrl.h        |  31 +----------
 tools/libxc/xc_domain.c              |  55 ++-----------------
 tools/libxl/libxl_arch.h             |   4 +-
 tools/libxl/libxl_arm.c              |  16 +++---
 tools/libxl/libxl_create.c           |  28 ++++++----
 tools/libxl/libxl_dom.c              |  13 -----
 tools/libxl/libxl_x86.c              |  10 ++--
 tools/ocaml/libs/xc/xenctrl.ml       |  18 +++++-
 tools/ocaml/libs/xc/xenctrl.mli      |  17 +++++-
 tools/ocaml/libs/xc/xenctrl_stubs.c  |  63 +++++++++++++++------
 tools/python/xen/lowlevel/xc/xc.c    |  42 ++++++++++----
 xen/arch/arm/domain_build.c          |  13 +++--
 xen/arch/arm/setup.c                 |  17 +++++-
 xen/arch/arm/vgic.c                  |  11 +---
 xen/arch/arm/vgic/vgic.c             |  22 +-------
 xen/arch/x86/dom0_build.c            |   7 ---
 xen/arch/x86/setup.c                 |   5 ++
 xen/common/domain.c                  |  57 ++++++++++++-------
 xen/common/domctl.c                  |  50 +----------------
 xen/common/event_channel.c           |   7 +--
 xen/common/grant_table.c             | 103 +++++++++--------------------------
 xen/include/asm-arm/grant_table.h    |  12 ----
 xen/include/asm-x86/grant_table.h    |   5 --
 xen/include/asm-x86/setup.h          |   2 -
 xen/include/public/domctl.h          |  30 ++++------
 xen/include/xen/domain.h             |   3 +
 xen/include/xen/grant_table.h        |   8 +--
 xen/include/xen/sched.h              |   2 +-
 xen/xsm/flask/hooks.c                |   6 --
 xen/xsm/flask/policy/access_vectors  |   4 --
 33 files changed, 281 insertions(+), 427 deletions(-)

-- 
2.1.4


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

             reply	other threads:[~2018-08-13 10:00 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-13 10:00 Andrew Cooper [this message]
2018-08-13 10:00 ` [PATCH v2 01/12] tools/ocaml: Pass a full domctl_create_config into stub_xc_domain_create() Andrew Cooper
2018-08-13 10:00 ` [PATCH v2 02/12] tools: Rework xc_domain_create() to take a full xen_domctl_createdomain Andrew Cooper
2018-08-13 10:01 ` [PATCH v2 03/12] xen/domctl: Merge set_max_evtchn into createdomain Andrew Cooper
2018-08-14 13:58   ` Roger Pau Monné
2018-08-13 10:01 ` [PATCH v2 04/12] xen/evtchn: Pass max_evtchn_port into evtchn_init() Andrew Cooper
2018-08-14 14:07   ` Roger Pau Monné
2018-08-15 12:45   ` Jan Beulich
2018-08-15 12:57   ` Julien Grall
2018-08-13 10:01 ` [PATCH v2 05/12] tools: Pass grant table limits to XEN_DOMCTL_set_gnttab_limits Andrew Cooper
2018-08-13 10:01 ` [PATCH v2 06/12] xen/gnttab: Pass max_{grant, maptrack}_frames into grant_table_create() Andrew Cooper
2018-08-14 14:17   ` Roger Pau Monné
2018-08-15 12:51   ` Jan Beulich
2018-08-15 13:04   ` Julien Grall
2018-08-15 13:08     ` Andrew Cooper
2018-08-15 13:32       ` Julien Grall
2018-08-15 19:03         ` Andrew Cooper
2018-08-16  8:59           ` Julien Grall
2018-08-29  9:38   ` [PATCH v3 6/12] " Andrew Cooper
2018-08-30 19:40     ` Julien Grall
2018-08-13 10:01 ` [PATCH v2 07/12] xen/domctl: Remove XEN_DOMCTL_set_gnttab_limits Andrew Cooper
2018-08-14 14:19   ` Roger Pau Monné
2018-08-13 10:01 ` [PATCH v2 08/12] xen/gnttab: Fold grant_table_{create, set_limits}() into grant_table_init() Andrew Cooper
2018-08-14 14:31   ` Roger Pau Monné
2018-08-15 12:54   ` Jan Beulich
2018-08-13 10:01 ` [PATCH v2 09/12] xen/domain: Call arch_domain_create() as early as possible in domain_create() Andrew Cooper
2018-08-14 14:37   ` Roger Pau Monné
2018-08-15 12:56   ` Jan Beulich
2018-09-04 18:44   ` Rats nest with domain pirq initialisation Andrew Cooper
2018-09-05  7:24     ` Jan Beulich
2018-09-05 11:38       ` Jan Beulich
2018-09-05 12:04       ` Andrew Cooper
2018-09-05 12:25         ` Jan Beulich
2018-09-05 12:39           ` Andrew Cooper
2018-09-05 15:44             ` Roger Pau Monné
2018-08-13 10:01 ` [PATCH v2 10/12] tools: Pass max_vcpus to XEN_DOMCTL_createdomain Andrew Cooper
2018-08-13 10:01 ` [PATCH v2 11/12] xen/dom0: Arrange for dom0_cfg to contain the real max_vcpus value Andrew Cooper
2018-08-14 15:05   ` Roger Pau Monné
2018-08-15 12:59   ` Jan Beulich
2018-08-13 10:01 ` [PATCH v2 12/12] xen/domain: Allocate d->vcpu[] in domain_create() Andrew Cooper
2018-08-14 15:17   ` Roger Pau Monné
2018-08-15 13:17     ` Julien Grall
2018-08-15 13:50       ` Andrew Cooper
2018-08-15 13:52         ` Julien Grall
2018-08-15 13:56           ` Andrew Cooper
2018-08-15 13:11   ` Jan Beulich
2018-08-15 14:03     ` Andrew Cooper
2018-08-15 15:18       ` Jan Beulich
2018-08-29 10:36         ` Andrew Cooper
2018-08-29 12:10           ` Jan Beulich
2018-08-29 12:29             ` Andrew Cooper
2018-08-29 12:49               ` Jan Beulich
2018-08-29 14:40   ` [PATCH v3 " Andrew Cooper
2018-08-29 15:03     ` Jan Beulich
2018-08-31 10:33       ` Wei Liu
2018-08-31 10:42         ` Jan Beulich
2018-08-31 10:57           ` Julien Grall
2018-08-31 11:00             ` Juergen Gross
2018-08-31 10:58           ` Andrew Cooper
2018-08-30 19:46     ` Julien Grall
2018-08-30 20:04       ` Andrew Cooper
2018-08-14 13:12 ` [PATCH v2 00/12] Improvements to domain creation Christian Lindig
2018-08-14 13:34   ` Andrew Cooper

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1534154469-6076-1-git-send-email-andrew.cooper3@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=George.Dunlap@eu.citrix.com \
    --cc=JBeulich@suse.com \
    --cc=Rob.Hoes@citrix.com \
    --cc=christian.lindig@citrix.com \
    --cc=dave@recoil.org \
    --cc=dgdegra@tycho.nsa.gov \
    --cc=ian.jackson@eu.citrix.com \
    --cc=jgross@suse.com \
    --cc=jonathan.ludlam@eu.citrix.com \
    --cc=julien.grall@arm.com \
    --cc=marmarek@invisiblethingslab.com \
    --cc=sstabellini@kernel.org \
    --cc=tim@xen.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).