All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Brijesh Singh <brijesh.ksingh@gmail.com>
Cc: Borislav Petkov <bp@suse.de>,
	Brijesh Singh <brijesh.singh@amd.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@xilinx.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
	Marcel Apfelbaum <marcel@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Peter Crosthwaite <crosthwaite.peter@gmail.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	qemu-devel@nongnu.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Alexander Graf <agraf@suse.de>,
	Stefan Hajnoczi <stefanha@gmail.com>,
	Cornelia Huck <cornelia.huck@de.ibm.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Thomas Lendacky <Thomas.Lendacky@amd.com>,
	Alistair Francis <alistair.francis@xilinx.com>,
	Bruce
Subject: Re: [Qemu-devel] [PATCH v8 05/28] target/i386: add memory encryption feature cpuid support
Date: Tue, 13 Feb 2018 15:45:08 +0000	[thread overview]
Message-ID: <20180213154508.GK2378@work-vm> (raw)
In-Reply-To: <CA+HCGMYvh081neh=aF45qG0WF2vpJwkZ4unnLPLwhEkDNPWZsQ@mail.gmail.com>

* Brijesh Singh (brijesh.ksingh@gmail.com) wrote:
> On Mon, Feb 12, 2018 at 3:19 PM, Borislav Petkov <bp@suse.de> wrote:
> 
> > On Mon, Feb 12, 2018 at 03:07:26PM -0600, Brijesh Singh wrote:
> > > In current implementation, when -cpu ...,+sev is passed without
> > > appropriate SEV configuration then we populate the Fn8000_001F CPUID but
> > > VMCB will not have SEV bit set hence a guest will be launched as
> > > non-SEV.
> >
> > I think we should fail the guest init if sev is not really supported by
> > the host. Otherwise people might get mislead.
> >
> >
> 
> Sure I will do that. We can simplify this patch if we don't fill the CPUID
> for non SEV guest. I am thinking of doing something like this:
> 
> "If SEV configration is provided in QEMU command line then
> automatically increase xlevel to 0x8000_001F and populate the EAX and EBX
> registers"
> 
> 
> 
> > > > Changing existing CPU models is possible only on very specific
> > > > circumstances (where VMs that are currently runnable would always
> > > > stay runnable), and would require compat_props entries to keep
> > > > compatibility on existing machine-types.
> > >
> > > Ah I didn't consider that case. What is recommendation, should we create
> > > a new CPU Model (EPYC-SEV) ?
> >
> > Can we please stop creating a new CPU model with every new CPUID feature
> > support added? This is just ridiculous.
> >
> > If this is about live migration, then by all means, fail the migration
> > if the feature bits are not compatible. But replicating CPU models and
> > then adding one new differing feature doesn't make any sense.
> >
> >
> Yes, I think we should be able to avoid creating new CPU model to handle
> this case.
> I am leaning towards dropping this patch and implement logic to populate the
> CPUID 0x8000_001F only when SEV is enabled. This should not require any
> changes
> in existing CPU model feature flag and live migration of existing guest
> should work fine.

Take care that a non-SEV guest works migrating from a SEV-enabled host
back to a non-SEV-enabled host.  Similarly a guest that understands SEV
but you aren't going to enable it for this VM.

Dave

> 
> 
> > --
> > Regards/Gruss,
> >     Boris.
> >
> > SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB
> > 21284 (AG Nürnberg)
> > --
> >
> >
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

WARNING: multiple messages have this Message-ID (diff)
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Brijesh Singh <brijesh.ksingh@gmail.com>
Cc: Borislav Petkov <bp@suse.de>,
	Brijesh Singh <brijesh.singh@amd.com>,
	Eduardo Habkost <ehabkost@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@xilinx.com>,
	Peter Maydell <peter.maydell@linaro.org>,
	kvm@vger.kernel.org, "Michael S. Tsirkin" <mst@redhat.com>,
	Marcel Apfelbaum <marcel@redhat.com>,
	Markus Armbruster <armbru@redhat.com>,
	Peter Crosthwaite <crosthwaite.peter@gmail.com>,
	Richard Henderson <richard.henderson@linaro.org>,
	qemu-devel@nongnu.org,
	Christian Borntraeger <borntraeger@de.ibm.com>,
	Alexander Graf <agraf@suse.de>,
	Stefan Hajnoczi <stefanha@gmail.com>,
	Cornelia Huck <cornelia.huck@de.ibm.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Thomas Lendacky <Thomas.Lendacky@amd.com>,
	Alistair Francis <alistair.francis@xilinx.com>,
	Bruce Rogers <brogers@suse.com>,
	Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH v8 05/28] target/i386: add memory encryption feature cpuid support
Date: Tue, 13 Feb 2018 15:45:08 +0000	[thread overview]
Message-ID: <20180213154508.GK2378@work-vm> (raw)
In-Reply-To: <CA+HCGMYvh081neh=aF45qG0WF2vpJwkZ4unnLPLwhEkDNPWZsQ@mail.gmail.com>

* Brijesh Singh (brijesh.ksingh@gmail.com) wrote:
> On Mon, Feb 12, 2018 at 3:19 PM, Borislav Petkov <bp@suse.de> wrote:
> 
> > On Mon, Feb 12, 2018 at 03:07:26PM -0600, Brijesh Singh wrote:
> > > In current implementation, when -cpu ...,+sev is passed without
> > > appropriate SEV configuration then we populate the Fn8000_001F CPUID but
> > > VMCB will not have SEV bit set hence a guest will be launched as
> > > non-SEV.
> >
> > I think we should fail the guest init if sev is not really supported by
> > the host. Otherwise people might get mislead.
> >
> >
> 
> Sure I will do that. We can simplify this patch if we don't fill the CPUID
> for non SEV guest. I am thinking of doing something like this:
> 
> "If SEV configration is provided in QEMU command line then
> automatically increase xlevel to 0x8000_001F and populate the EAX and EBX
> registers"
> 
> 
> 
> > > > Changing existing CPU models is possible only on very specific
> > > > circumstances (where VMs that are currently runnable would always
> > > > stay runnable), and would require compat_props entries to keep
> > > > compatibility on existing machine-types.
> > >
> > > Ah I didn't consider that case. What is recommendation, should we create
> > > a new CPU Model (EPYC-SEV) ?
> >
> > Can we please stop creating a new CPU model with every new CPUID feature
> > support added? This is just ridiculous.
> >
> > If this is about live migration, then by all means, fail the migration
> > if the feature bits are not compatible. But replicating CPU models and
> > then adding one new differing feature doesn't make any sense.
> >
> >
> Yes, I think we should be able to avoid creating new CPU model to handle
> this case.
> I am leaning towards dropping this patch and implement logic to populate the
> CPUID 0x8000_001F only when SEV is enabled. This should not require any
> changes
> in existing CPU model feature flag and live migration of existing guest
> should work fine.

Take care that a non-SEV guest works migrating from a SEV-enabled host
back to a non-SEV-enabled host.  Similarly a guest that understands SEV
but you aren't going to enable it for this VM.

Dave

> 
> 
> > --
> > Regards/Gruss,
> >     Boris.
> >
> > SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB
> > 21284 (AG Nürnberg)
> > --
> >
> >
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK

  parent reply	other threads:[~2018-02-13 15:45 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-12 15:36 [PATCH v8 00/28] x86: Secure Encrypted Virtualization (AMD) Brijesh Singh
2018-02-12 15:36 ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:36 ` [PATCH v8 01/28] memattrs: add debug attribute Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:36 ` [PATCH v8 02/28] exec: add ram_debug_ops support Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:36 ` [PATCH v8 03/28] exec: add debug version of physical memory read and write API Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:36 ` [PATCH v8 04/28] monitor/i386: use debug APIs when accessing guest memory Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:36 ` [PATCH v8 05/28] target/i386: add memory encryption feature cpuid support Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 18:38   ` Eduardo Habkost
2018-02-12 18:38     ` [Qemu-devel] " Eduardo Habkost
2018-02-12 21:07     ` Brijesh Singh
2018-02-12 21:07       ` [Qemu-devel] " Brijesh Singh
2018-02-12 21:19       ` Borislav Petkov
2018-02-12 21:19         ` [Qemu-devel] " Borislav Petkov
2018-02-13 15:39         ` Brijesh Singh
2018-02-13 15:39           ` [Qemu-devel] " Brijesh Singh
2018-02-13 15:41           ` Borislav Petkov
2018-02-13 15:41             ` Borislav Petkov
2018-02-13 15:45           ` Dr. David Alan Gilbert [this message]
2018-02-13 15:45             ` Dr. David Alan Gilbert
2018-02-12 15:36 ` [PATCH v8 06/28] machine: add -memory-encryption property Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:36 ` [PATCH v8 07/28] kvm: update kvm.h to include memory encryption ioctls Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:36 ` [PATCH v8 08/28] docs: add AMD Secure Encrypted Virtualization (SEV) Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:36 ` [PATCH v8 09/28] target/i386: add Secure Encrypted Virtulization (SEV) object Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:36 ` [PATCH v8 10/28] sev/i386: add command to initialize the memory encryption context Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 18:57   ` Eduardo Habkost
2018-02-12 18:57     ` [Qemu-devel] " Eduardo Habkost
2018-02-12 15:36 ` [PATCH v8 11/28] sev/i386: register the guest memory range which may contain encrypted data Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:36 ` [PATCH v8 12/28] kvm: introduce memory encryption APIs Brijesh Singh
2018-02-12 15:36   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 13/28] qmp: add query-sev command Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 17:27   ` Eric Blake
2018-02-12 17:27     ` [Qemu-devel] " Eric Blake
2018-02-12 18:47     ` Brijesh Singh
2018-02-12 18:47       ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 14/28] hmp: add 'info sev' command Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 15/28] sev/i386: add command to create launch memory encryption context Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 16/28] sev/i386: add command to encrypt guest memory region Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 17/28] target/i386: encrypt bios rom Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 18/28] sev/i386: add support to LAUNCH_MEASURE command Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 19/28] sev/i386: finalize the SEV guest launch flow Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 20/28] hw/i386: set ram_debug_ops when memory encryption is enabled Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 21/28] sev/i386: add debug encrypt and decrypt commands Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 22/28] target/i386: clear C-bit when walking SEV guest page table Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 23/28] include: add psp-sev.h header file Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 24/28] sev/i386: add support to query PLATFORM_STATUS command Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 25/28] sev/i386: add support to KVM_SEV_GUEST_STATUS Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 26/28] qmp: add query-sev-launch-measure command Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-12 15:37 ` [PATCH v8 27/28] tests/qmp-test: blacklist " Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh
2018-02-13 16:44   ` Dr. David Alan Gilbert
2018-02-13 16:44     ` [Qemu-devel] " Dr. David Alan Gilbert
2018-02-12 15:37 ` [PATCH v8 28/28] sev/i386: add migration blocker Brijesh Singh
2018-02-12 15:37   ` [Qemu-devel] " Brijesh Singh

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=20180213154508.GK2378@work-vm \
    --to=dgilbert@redhat.com \
    --cc=Thomas.Lendacky@amd.com \
    --cc=agraf@suse.de \
    --cc=alistair.francis@xilinx.com \
    --cc=armbru@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=bp@suse.de \
    --cc=brijesh.ksingh@gmail.com \
    --cc=brijesh.singh@amd.com \
    --cc=cornelia.huck@de.ibm.com \
    --cc=crosthwaite.peter@gmail.com \
    --cc=edgar.iglesias@xilinx.com \
    --cc=ehabkost@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=marcel@redhat.com \
    --cc=mst@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=stefanha@gmail.com \
    /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.