public inbox for linuxppc-dev@ozlabs.org 
 help / color / mirror / Atom feed
From: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei•com>
To: Sean Christopherson <seanjc@google•com>,
	Catalin Marinas <catalin.marinas@arm•com>,
	Will Deacon <will@kernel•org>, Marc Zyngier <maz@kernel•org>,
	Oliver Upton <oliver.upton@linux•dev>,
	Huacai Chen <chenhuacai@kernel•org>,
	Michael Ellerman <mpe@ellerman•id.au>,
	Anup Patel <anup@brainfault•org>,
	Paul Walmsley <paul.walmsley@sifive•com>,
	"Palmer Dabbelt" <palmer@dabbelt•com>,
	Albert Ou <aou@eecs•berkeley.edu>,
	"Heiko Carstens" <hca@linux•ibm.com>,
	Vasily Gorbik <gor@linux•ibm.com>,
	"Alexander Gordeev" <agordeev@linux•ibm.com>,
	Christian Borntraeger <borntraeger@linux•ibm.com>,
	Janosch Frank <frankja@linux•ibm.com>,
	"Claudio Imbrenda" <imbrenda@linux•ibm.com>,
	Thomas Gleixner <tglx@linutronix•de>,
	"Ingo Molnar" <mingo@redhat•com>, Borislav Petkov <bp@alien8•de>,
	Dave Hansen <dave.hansen@linux•intel.com>,
	"x86@kernel•org" <x86@kernel•org>,
	"Peter Zijlstra" <peterz@infradead•org>,
	Arnaldo Carvalho de Melo <acme@kernel•org>,
	Paolo Bonzini <pbonzini@redhat•com>,
	Tony Krowiak <akrowiak@linux•ibm.com>,
	Halil Pasic <pasic@linux•ibm.com>,
	Jason Herne <jjherne@linux•ibm.com>,
	Harald Freudenberger <freude@linux•ibm.com>,
	Alex Williamson <alex.williamson@redhat•com>,
	Andy Lutomirski <luto@kernel•org>
Cc: "linux-s390@vger•kernel.org" <linux-s390@vger•kernel.org>,
	"kvm@vger•kernel.org" <kvm@vger•kernel.org>,
	Venkatesh Srinivas <venkateshs@chromium•org>,
	Anish Ghulati <aghulati@google•com>,
	"linux-mips@vger•kernel.org" <linux-mips@vger•kernel.org>,
	"linux-kernel@vger•kernel.org" <linux-kernel@vger•kernel.org>,
	"linux-perf-users@vger•kernel.org"
	<linux-perf-users@vger•kernel.org>,
	Andrew Thornton <andrewth@google•com>,
	"kvm-riscv@lists•infradead.org" <kvm-riscv@lists•infradead.org>,
	"kvmarm@lists•linux.dev" <kvmarm@lists•linux.dev>,
	"linux-riscv@lists•infradead.org"
	<linux-riscv@lists•infradead.org>,
	"linuxppc-dev@lists•ozlabs.org" <linuxppc-dev@lists•ozlabs.org>,
	"linux-arm-kernel@lists•infradead.org"
	<linux-arm-kernel@lists•infradead.org>
Subject: RE: [PATCH 00/26] KVM: vfio: Hide KVM internals from others
Date: Thu, 20 Jun 2024 10:10:59 +0000	[thread overview]
Message-ID: <504fa0a7264d4762afda2f13c3525ce5@huawei.com> (raw)
In-Reply-To: <20230916003118.2540661-1-seanjc@google.com>



> -----Original Message-----
> From: Sean Christopherson <seanjc@google•com>
> Sent: Saturday, September 16, 2023 1:31 AM
> To: Catalin Marinas <catalin.marinas@arm•com>; Will Deacon
> <will@kernel•org>; Marc Zyngier <maz@kernel•org>; Oliver Upton
> <oliver.upton@linux•dev>; Huacai Chen <chenhuacai@kernel•org>; Michael
> Ellerman <mpe@ellerman•id.au>; Anup Patel <anup@brainfault•org>; Paul
> Walmsley <paul.walmsley@sifive•com>; Palmer Dabbelt
> <palmer@dabbelt•com>; Albert Ou <aou@eecs•berkeley.edu>; Heiko
> Carstens <hca@linux•ibm.com>; Vasily Gorbik <gor@linux•ibm.com>;
> Alexander Gordeev <agordeev@linux•ibm.com>; Christian Borntraeger
> <borntraeger@linux•ibm.com>; Janosch Frank <frankja@linux•ibm.com>;
> Claudio Imbrenda <imbrenda@linux•ibm.com>; Thomas Gleixner
> <tglx@linutronix•de>; Ingo Molnar <mingo@redhat•com>; Borislav Petkov
> <bp@alien8•de>; Dave Hansen <dave.hansen@linux•intel.com>;
> x86@kernel•org; Peter Zijlstra <peterz@infradead•org>; Arnaldo Carvalho de
> Melo <acme@kernel•org>; Sean Christopherson <seanjc@google•com>;
> Paolo Bonzini <pbonzini@redhat•com>; Tony Krowiak
> <akrowiak@linux•ibm.com>; Halil Pasic <pasic@linux•ibm.com>; Jason Herne
> <jjherne@linux•ibm.com>; Harald Freudenberger <freude@linux•ibm.com>;
> Alex Williamson <alex.williamson@redhat•com>; Andy Lutomirski
> <luto@kernel•org>
> Cc: linux-arm-kernel@lists•infradead.org; kvmarm@lists•linux.dev; linux-
> mips@vger•kernel.org; kvm@vger•kernel.org; linuxppc-dev@lists•ozlabs.org;
> kvm-riscv@lists•infradead.org; linux-riscv@lists•infradead.org; linux-
> s390@vger•kernel.org; linux-kernel@vger•kernel.org; linux-perf-
> users@vger•kernel.org; Anish Ghulati <aghulati@google•com>; Venkatesh
> Srinivas <venkateshs@chromium•org>; Andrew Thornton
> <andrewth@google•com>
> Subject: [PATCH 00/26] KVM: vfio: Hide KVM internals from others
> 
> This is a borderline RFC series to hide KVM's internals from the rest of
> the kernel, where "internals" means data structures, enums, #defines,
> APIs, etc. that are intended to be KVM-only, but are exposed everywhere
> due to kvm_host.h (and other headers) living in the global include paths.
> 
> The motiviation for hiding KVM's internals is to allow *safely* loading a
> "new" KVM module without having to reboot the host.  Where "new" doesn't
> have to be strictly newer, just a different incarnation of KVM.  Hiding
> KVM's internals means those assets can change across KVM instances
> without
> breaking things, e.g. would allow modifying the layout of struct kvm_vcpu
> to introduce new fields related to a new feature or mitigation for hardware
> bugs.
> 
> The end goal for all of this is to allow loading and running multiple
> instances of KVM (the module) simultaneously on a single host, e.g. to
> deploy fixes, mitigations, and/or new features without having to drain
> all VMs from the host.
> 
> For now, the immediate goal is to get KVM to a state where KVM x86 doesn't
> expose anything to the broader world that isn't intended for external
> consumption, e.g. the page write-tracking APIs used by KVM-GT.
> 
> I say this is borderline RFC because I don't think I've "formally" proposed
> the idea of hiding KVM internals before now.  I decided not to tag this RFC
> because the changes ended up being not _that_ invasive, and everything
> before the last six patches is worthwhile even if hiding internals is
> ultimately rejected (IMO).
> 
> This would ideally be ~5 separate series, and I certainly have no objection
> if that's how we want to get this stuff merged.  E.g. (1) VFIO cleanups,
> (2) drop HAVE_KVM, (3) clean up makefiles, (4) x86 perf cleanup, and
> (5) final push for hiding state.  The HAVE_KVM and virt/kvm include stuff
> isn't strictly necessary, but I included them here because they're
> relatively minor (in the grand scheme).

Hi Sean,

Just thought of checking with you on this series. Do you have plans to revive this
series? The reason I am asking is, on ARM64/KVM side we do have a requirement
to share the KVM VMID with SMMUV3. Please see the RFC I sent out earlier this
year[1]. The series basically provides a way for KVM to pin a VMID and also
associates an iommufd ctx with a struct kvm * to retrieve that VMID. 

As mentioned above, some of the patches in this series(especially 1-4 & 6) that
does the VFIO cleanups and dropping CONFIG_KVM_VFIO looks very straightforward
and useful. I am thinking of including those when I re-spin my RFC series, if that’s ok.

Please let me know your thoughts.

Thanks,
Shameer

[1]. https://lore.kernel.org/linux-iommu/20240209115824.GA2922446@myrica/


  parent reply	other threads:[~2024-06-21  5:59 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-16  0:30 [PATCH 00/26] KVM: vfio: Hide KVM internals from others Sean Christopherson
2023-09-16  0:30 ` [PATCH 01/26] vfio: Wrap KVM helpers with CONFIG_KVM instead of CONFIG_HAVE_KVM Sean Christopherson
2023-09-18 15:16   ` Jason Gunthorpe
2023-09-28 22:21   ` Alex Williamson
2023-09-16  0:30 ` [PATCH 02/26] vfio: Move KVM get/put helpers to colocate it with other KVM related code Sean Christopherson
2023-09-18 15:17   ` Jason Gunthorpe
2023-09-28 22:21   ` Alex Williamson
2023-09-16  0:30 ` [PATCH 03/26] virt: Declare and define vfio_file_set_kvm() iff CONFIG_KVM is enabled Sean Christopherson
2023-09-18 15:18   ` Jason Gunthorpe
2023-09-28 22:21   ` Alex Williamson
2023-09-16  0:30 ` [PATCH 04/26] vfio: Add struct to hold KVM assets and dedup group vs. iommufd code Sean Christopherson
2023-09-28 22:21   ` Alex Williamson
2023-09-16  0:30 ` [PATCH 05/26] vfio: KVM: Pass get/put helpers from KVM to VFIO, don't do circular lookup Sean Christopherson
2023-09-18 15:21   ` Jason Gunthorpe
2023-09-18 15:49     ` Sean Christopherson
2023-09-18 16:02       ` Jason Gunthorpe
2023-12-02  0:51         ` Sean Christopherson
2023-12-03 14:07           ` Jason Gunthorpe
2023-12-13  2:22             ` Sean Christopherson
2023-09-28 22:21   ` Alex Williamson
2023-09-16  0:30 ` [PATCH 06/26] KVM: Drop CONFIG_KVM_VFIO and just look at KVM+VFIO Sean Christopherson
2023-09-18 15:29   ` Jason Gunthorpe
2023-09-18 15:52     ` Sean Christopherson
2023-09-18 16:17       ` Jason Gunthorpe
2023-09-28 22:21   ` Alex Williamson
2023-09-16  0:30 ` [PATCH 07/26] x86/idt: Wrap KVM logic with CONFIG_KVM instead of CONFIG_HAVE_KVM Sean Christopherson
2023-09-16  0:31 ` [PATCH 08/26] KVM: x86: Stop selecting and depending on HAVE_KVM Sean Christopherson
2023-09-16  0:31 ` [PATCH 09/26] KVM: arm64: " Sean Christopherson
2023-09-16  0:31 ` [PATCH 10/26] KVM: s390: " Sean Christopherson
2023-09-18 13:38   ` Claudio Imbrenda
2023-09-16  0:31 ` [PATCH 11/26] KVM: MIPS: Make HAVE_KVM a MIPS-only Kconfig Sean Christopherson
2023-09-16  0:31 ` [PATCH 12/26] KVM: arm64: Move arm_{psci,hypercalls}.h to an internal KVM path Sean Christopherson
2023-09-16  0:31 ` [PATCH 13/26] KVM: arm64: Include KVM headers to get forward declarations Sean Christopherson
2023-09-16  0:31 ` [PATCH 14/26] KVM: arm64: Move ARM specific headers in include/kvm to arch directory Sean Christopherson
2023-09-16  0:31 ` [PATCH 15/26] KVM: Move include/kvm/iodev.h to include/linux as kvm_iodev.h Sean Christopherson
2023-12-14  6:02   ` Anup Patel
2023-09-16  0:31 ` [PATCH 16/26] KVM: MIPS: Stop adding virt/kvm to the arch include path Sean Christopherson
2023-09-16  0:31 ` [PATCH 17/26] KVM: PPC: " Sean Christopherson
2023-09-16  0:31 ` [PATCH 18/26] KVM: s390: " Sean Christopherson
2023-09-18  6:56   ` Thomas Huth
2023-09-18 13:38   ` Claudio Imbrenda
2023-09-16  0:31 ` [PATCH 19/26] KVM: Standardize include paths across all architectures Sean Christopherson
2023-12-14  6:04   ` Anup Patel
2023-09-16  0:31 ` [PATCH 20/26] perf/x86: KVM: Have perf define a dedicated struct for getting guest PEBS data Sean Christopherson
2023-09-16  0:31 ` [PATCH 21/26] entry/kvm: Drop @vcpu param from arch_xfer_to_guest_mode_handle_work() Sean Christopherson
2023-09-16  0:31 ` [PATCH 22/26] entry/kvm: KVM: Move KVM details related to signal/-EINTR into KVM proper Sean Christopherson
2023-12-14  6:13   ` Anup Patel
2023-09-16  0:31 ` [PATCH 23/26] KVM: arm64: Move and consolidate "public" functions in asm/kvm_host.h Sean Christopherson
2023-09-16  0:31 ` [PATCH 24/26] powerpc/xics: Move declaration of xics_wake_cpu() out of kvm_ppc.h Sean Christopherson
2023-09-16  0:31 ` [PATCH 25/26] KVM: PPC: Rearrange code in kvm_ppc.h to isolate "public" information Sean Christopherson
2023-09-16  0:31 ` [PATCH 26/26] KVM: Hide KVM internal data structures and values from kernel at-large Sean Christopherson
2023-12-14  6:20   ` Anup Patel
2024-06-20 10:10 ` Shameerali Kolothum Thodi [this message]
2024-06-24 15:32   ` [PATCH 00/26] KVM: vfio: Hide KVM internals from others Sean Christopherson
2024-06-24 19:21     ` Shameerali Kolothum Thodi

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=504fa0a7264d4762afda2f13c3525ce5@huawei.com \
    --to=shameerali.kolothum.thodi@huawei$(echo .)com \
    --cc=acme@kernel$(echo .)org \
    --cc=aghulati@google$(echo .)com \
    --cc=agordeev@linux$(echo .)ibm.com \
    --cc=akrowiak@linux$(echo .)ibm.com \
    --cc=alex.williamson@redhat$(echo .)com \
    --cc=andrewth@google$(echo .)com \
    --cc=anup@brainfault$(echo .)org \
    --cc=aou@eecs$(echo .)berkeley.edu \
    --cc=borntraeger@linux$(echo .)ibm.com \
    --cc=bp@alien8$(echo .)de \
    --cc=catalin.marinas@arm$(echo .)com \
    --cc=chenhuacai@kernel$(echo .)org \
    --cc=dave.hansen@linux$(echo .)intel.com \
    --cc=frankja@linux$(echo .)ibm.com \
    --cc=freude@linux$(echo .)ibm.com \
    --cc=gor@linux$(echo .)ibm.com \
    --cc=hca@linux$(echo .)ibm.com \
    --cc=imbrenda@linux$(echo .)ibm.com \
    --cc=jjherne@linux$(echo .)ibm.com \
    --cc=kvm-riscv@lists$(echo .)infradead.org \
    --cc=kvm@vger$(echo .)kernel.org \
    --cc=kvmarm@lists$(echo .)linux.dev \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    --cc=linux-kernel@vger$(echo .)kernel.org \
    --cc=linux-mips@vger$(echo .)kernel.org \
    --cc=linux-perf-users@vger$(echo .)kernel.org \
    --cc=linux-riscv@lists$(echo .)infradead.org \
    --cc=linux-s390@vger$(echo .)kernel.org \
    --cc=linuxppc-dev@lists$(echo .)ozlabs.org \
    --cc=luto@kernel$(echo .)org \
    --cc=maz@kernel$(echo .)org \
    --cc=mingo@redhat$(echo .)com \
    --cc=mpe@ellerman$(echo .)id.au \
    --cc=oliver.upton@linux$(echo .)dev \
    --cc=palmer@dabbelt$(echo .)com \
    --cc=pasic@linux$(echo .)ibm.com \
    --cc=paul.walmsley@sifive$(echo .)com \
    --cc=pbonzini@redhat$(echo .)com \
    --cc=peterz@infradead$(echo .)org \
    --cc=seanjc@google$(echo .)com \
    --cc=tglx@linutronix$(echo .)de \
    --cc=venkateshs@chromium$(echo .)org \
    --cc=will@kernel$(echo .)org \
    --cc=x86@kernel$(echo .)org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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