All of lore.kernel.org
 help / color / mirror / Atom feed
From: Juergen Gross <jgross@suse.com>
To: Vitaly Kuznetsov <vkuznets@redhat.com>, xen-devel@lists.xenproject.org
Cc: x86@kernel.org, linux-kernel@vger.kernel.org,
	Boris Ostrovsky <boris.ostrovsky@oracle.com>,
	Andrew Jones <drjones@redhat.com>
Subject: Re: [PATCH v3 00/21] x86/xen: untangle PV and PVHVM guest support code
Date: Wed, 15 Mar 2017 10:42:45 +0100	[thread overview]
Message-ID: <2db82157-d380-43ba-2917-0d6e7f07a945@suse.com> (raw)
In-Reply-To: <20170314173556.2249-1-vkuznets@redhat.com>

On 14/03/17 18:35, Vitaly Kuznetsov wrote:
> Changes since v2:
> - Rebase to 4.11.0-rc1+
> - XEN_HAVE_PVMMU moved to config XEN_PV [Juergen Gross]
> - .pin_vcpu kept for x86_hyper_xen_hvm to support PVH Dom0 in future
>    [Juergen Gross]
> - 'extern' qualifiers dropped from newly introduced function prototypes
>   in headers [Juergen Gross]
> - A couple of #includes added to address build issues with different
>   configs [kbuild test robot].
> - Juergen reviewed-bys added (hope they stand with the above mentioned
>   changes).

They do.

In case nobody objects I'll take this series for 4.12.


Juergen

> 
> The series can also be pulled from https://github.com/vittyvk/linux.git
>  (xen_pv_hvm_split_v3 branch).
> 
> Some patches are known to produce checkpatch.pl WARNINGS and a couple of
> ERRORs, I fixed a few (mostly in _hvm* code I split) and I refrained from
> fixing the rest to make it easier to review. I think that we may leave PV
> code as it is as sooner or later it will go away.
> 
> Original description:
> 
> I have a long-standing idea to separate PV and PVHVM code in kernel and 
> introduce Kconfig options to make it possible to enable the required
> parts only breaking the current 'all or nothing' approach.
> 
> Motivation:
> - Xen related x86 code in kernel is rather big and it is unclear which
>   parts of it are required for PV, for HVM or for both. With PVH coming
>   into picture is becomes even more tangled. It makes it hard to
>   understand/audit the code.
> 
> - In some case we may want to avoid bloating kernel by supporting Xen
>   guests we don't need. In particular, 90% of the code in arch/x86/xen/ is
>   required to support PV guests and one may require PVHVM support only.
> 
> - PV guests are supposed to go away one day and such code separation would
>   help us to get ready.
> 
> This series adds XEN_PV Kconfig option and makes it possible to build PV-only
> and PVHVM-only kernels. It also makes it possible to disable Dom0 support.
> 
> Some patches are rather big but this is mostly just moving code around, no
> functional changes intended. I smoke tested it with PV-only and PVHVM-only
> builds, booted and did save/restore test. I also tried the newly introduced
> PVHv2 guest, it even worked!
> 
> Vitaly Kuznetsov (21):
>   x86/xen: separate PV and HVM hypervisors
>   x86/xen: globalize have_vcpu_info_placement
>   x86/xen: add CONFIG_XEN_PV to Kconfig
>   x86/xen: split off enlighten_pvh.c
>   x86/xen: split off enlighten_hvm.c
>   x86/xen: split off enlighten_pv.c
>   x86/xen: split xen_smp_intr_init()/xen_smp_intr_free()
>   x86/xen: split xen_smp_prepare_boot_cpu()
>   x86/xen: split xen_cpu_die()
>   x86/xen: split off smp_hvm.c
>   x86/xen: split off smp_pv.c
>   x86/xen: split off mmu_hvm.c
>   x86/xen: split off mmu_pv.c
>   x86/xen: split suspend.c for PV and PVHVM guests
>   x86/xen: put setup.c, pmu.c and apic.c under CONFIG_XEN_PV
>   x86/xen: define startup_xen for XEN PV only
>   x86/xen: create stubs for HVM-only builds in page.h
>   xen/balloon: decorate PV-only parts with #ifdef CONFIG_XEN_PV
>   xen: create xen_create/destroy_contiguous_region() stubs for PVHVM
>     only builds
>   x86/xen: enable PVHVM-only builds
>   x86/xen: rename some PV-only functions in smp_pv.c
> 
>  arch/x86/include/asm/hypervisor.h |    3 +-
>  arch/x86/include/asm/xen/page.h   |   25 +
>  arch/x86/kernel/cpu/hypervisor.c  |    7 +-
>  arch/x86/kernel/process_64.c      |    2 +-
>  arch/x86/xen/Kconfig              |   33 +-
>  arch/x86/xen/Makefile             |   16 +-
>  arch/x86/xen/enlighten.c          | 1925 +------------------------
>  arch/x86/xen/enlighten_hvm.c      |  213 +++
>  arch/x86/xen/enlighten_pv.c       | 1522 ++++++++++++++++++++
>  arch/x86/xen/enlighten_pvh.c      |  115 ++
>  arch/x86/xen/mmu.c                | 2776 +------------------------------------
>  arch/x86/xen/mmu_hvm.c            |   79 ++
>  arch/x86/xen/mmu_pv.c             | 2635 +++++++++++++++++++++++++++++++++++
>  arch/x86/xen/pmu.h                |    5 +
>  arch/x86/xen/smp.c                |  517 +------
>  arch/x86/xen/smp.h                |   16 +
>  arch/x86/xen/smp_hvm.c            |   58 +
>  arch/x86/xen/smp_pv.c             |  500 +++++++
>  arch/x86/xen/suspend.c            |   54 -
>  arch/x86/xen/suspend_hvm.c        |   22 +
>  arch/x86/xen/suspend_pv.c         |   46 +
>  arch/x86/xen/xen-head.S           |    4 +
>  arch/x86/xen/xen-ops.h            |   23 +
>  drivers/xen/balloon.c             |   30 +-
>  include/xen/xen-ops.h             |   14 +
>  25 files changed, 5461 insertions(+), 5179 deletions(-)
>  create mode 100644 arch/x86/xen/enlighten_hvm.c
>  create mode 100644 arch/x86/xen/enlighten_pv.c
>  create mode 100644 arch/x86/xen/enlighten_pvh.c
>  create mode 100644 arch/x86/xen/mmu_hvm.c
>  create mode 100644 arch/x86/xen/mmu_pv.c
>  create mode 100644 arch/x86/xen/smp_hvm.c
>  create mode 100644 arch/x86/xen/smp_pv.c
>  create mode 100644 arch/x86/xen/suspend_hvm.c
>  create mode 100644 arch/x86/xen/suspend_pv.c
> 

  parent reply	other threads:[~2017-03-15  9:42 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-14 17:35 [PATCH v3 00/21] x86/xen: untangle PV and PVHVM guest support code Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 01/21] x86/xen: separate PV and HVM hypervisors Vitaly Kuznetsov
2017-03-15  9:39   ` Juergen Gross
2017-03-15  9:39   ` Juergen Gross
2017-03-14 17:35 ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 02/21] x86/xen: globalize have_vcpu_info_placement Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 03/21] x86/xen: add CONFIG_XEN_PV to Kconfig Vitaly Kuznetsov
2017-03-14 17:35 ` Vitaly Kuznetsov
2017-03-15  9:39   ` Juergen Gross
2017-03-15  9:39   ` Juergen Gross
2017-03-14 17:35 ` [PATCH v3 04/21] x86/xen: split off enlighten_pvh.c Vitaly Kuznetsov
2017-03-14 17:35 ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 05/21] x86/xen: split off enlighten_hvm.c Vitaly Kuznetsov
2017-03-14 17:35 ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 06/21] x86/xen: split off enlighten_pv.c Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 07/21] x86/xen: split xen_smp_intr_init()/xen_smp_intr_free() Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 08/21] x86/xen: split xen_smp_prepare_boot_cpu() Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 09/21] x86/xen: split xen_cpu_die() Vitaly Kuznetsov
2017-03-14 17:35 ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 10/21] x86/xen: split off smp_hvm.c Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 11/21] x86/xen: split off smp_pv.c Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 12/21] x86/xen: split off mmu_hvm.c Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 13/21] x86/xen: split off mmu_pv.c Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 14/21] x86/xen: split suspend.c for PV and PVHVM guests Vitaly Kuznetsov
2017-03-14 17:35 ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 15/21] x86/xen: put setup.c, pmu.c and apic.c under CONFIG_XEN_PV Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 16/21] x86/xen: define startup_xen for XEN PV only Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 17/21] x86/xen: create stubs for HVM-only builds in page.h Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 18/21] xen/balloon: decorate PV-only parts with #ifdef CONFIG_XEN_PV Vitaly Kuznetsov
2017-03-14 17:35 ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 19/21] xen: create xen_create/destroy_contiguous_region() stubs for PVHVM only builds Vitaly Kuznetsov
2017-03-14 17:35 ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 20/21] x86/xen: enable PVHVM-only builds Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-14 17:35 ` [PATCH v3 21/21] x86/xen: rename some PV-only functions in smp_pv.c Vitaly Kuznetsov
2017-03-14 17:35   ` Vitaly Kuznetsov
2017-03-15  9:42 ` Juergen Gross [this message]
2017-03-15 16:54   ` [PATCH v3 00/21] x86/xen: untangle PV and PVHVM guest support code Boris Ostrovsky
2017-03-15 16:54     ` Boris Ostrovsky
2017-03-15  9:42 ` Juergen Gross
2017-03-28  9:05 ` Juergen Gross
2017-03-28 11:27   ` Vitaly Kuznetsov
2017-03-28 11:27     ` Vitaly Kuznetsov
2017-03-28  9:05 ` Juergen Gross
2017-03-14 17:35 Vitaly Kuznetsov

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=2db82157-d380-43ba-2917-0d6e7f07a945@suse.com \
    --to=jgross@suse.com \
    --cc=boris.ostrovsky@oracle.com \
    --cc=drjones@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=vkuznets@redhat.com \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.