mbox series

[v2,00/23] target/i386/sev: Housekeeping (OVMF + SEV-disabled binaries)

Message ID 20210616204328.2611406-1-philmd@redhat.com (mailing list archive)
Headers show
Series target/i386/sev: Housekeeping (OVMF + SEV-disabled binaries) | expand

Message

Philippe Mathieu-Daudé June 16, 2021, 8:43 p.m. UTC
Hi,

While testing James & Dov patch:
https://www.mail-archive.com/qemu-devel@nongnu.org/msg810571.html
I wasted some time trying to figure out how OVMF was supposed to
behave until realizing the binary I was using was built without SEV
support... Then wrote this series to help other developers to not
hit the same problem.

Some SEV patches I was following have been queued on Eduardo's
'x86-next' tree, so I used his tree as base, and included David and
Connor patches to reduce merge conflicts.

Patches 1-16 are SEV related,
patches 17-23 are OVMF related.

Special comment for Laszlo: Please don't review this version,
wait for the respin (hoping the SEV cleanup patch get accepted,
the respin will be focused on OVMF).

Based-on: https://gitlab.com/ehabkost/qemu/-/commits/x86-next/
Supersedes: <20210610064556.1421620-1-philmd@redhat.com>

Connor Kuehl (1):
  MAINTAINERS: Add Connor Kuehl as reviewer for AMD SEV

Dr. David Alan Gilbert (1):
  target/i386/sev: sev_get_attestation_report use g_autofree

Philippe Mathieu-Daudé (21):
  qapi/misc-target: Wrap long 'SEV Attestation Report' long lines
  qapi/misc-target: Group SEV QAPI definitions
  target/i386/monitor: Return QMP error when SEV is disabled in build
  target/i386/cpu: Add missing 'qapi/error.h' header
  target/i386/sev_i386.h: Remove unused headers
  target/i386/sev: Remove sev_get_me_mask()
  target/i386/sev: Mark unreachable code with g_assert_not_reached()
  target/i386/sev: Restrict SEV to system emulation
  target/i386/sev: Move qmp_query_sev_attestation_report() to sev.c
  target/i386/sev: Move qmp_sev_inject_launch_secret() to sev.c
  target/i386/sev: Move qmp_query_sev_capabilities() to sev.c
  target/i386/sev: Move qmp_query_sev_launch_measure() to sev.c
  target/i386/sev: Move qmp_query_sev() & hmp_info_sev() to sev.c
  monitor: Restrict 'info sev' to x86 targets
  hw/i386/acpi-common: Remove unused includes
  hw/i386: Rename acpi-build.c -> acpi-pc.c
  hw/i386: Move pc_madt_cpu_entry() to acpi-pc.c
  hw/acpi: Do not restrict ACPI core routines to x86 architecture
  hw/i386: Introduce X86_FW_OVMF Kconfig symbol
  hw/acpi/Kconfig: Add missing Kconfig dependencies (build error)
  hw/i386/Kconfig: Add missing Kconfig dependency (runtime error)

 qapi/misc-target.json               |  78 ++++++++--------
 include/hw/i386/pc.h                |   1 +
 include/monitor/hmp-target.h        |   1 +
 include/monitor/hmp.h               |   1 -
 target/i386/sev_i386.h              |  11 ---
 hw/i386/acpi-common.c               |  45 ----------
 hw/i386/{acpi-build.c => acpi-pc.c} |  39 ++++++++
 hw/i386/pc_sysfw.c                  | 107 ----------------------
 hw/i386/pc_sysfw_ovmf-stubs.c       |  26 ++++++
 hw/i386/pc_sysfw_ovmf.c             | 135 ++++++++++++++++++++++++++++
 target/i386/cpu.c                   |   1 +
 target/i386/monitor.c               |  91 -------------------
 target/i386/sev-stub.c              |  49 +---------
 target/i386/sev-sysemu-stub.c       |  69 ++++++++++++++
 target/i386/sev.c                   | 130 +++++++++++++++++++++------
 MAINTAINERS                         |   8 ++
 hw/acpi/Kconfig                     |   4 +
 hw/acpi/meson.build                 |   3 +-
 hw/i386/Kconfig                     |   5 ++
 hw/i386/meson.build                 |   4 +-
 target/i386/meson.build             |   4 +-
 21 files changed, 443 insertions(+), 369 deletions(-)
 rename hw/i386/{acpi-build.c => acpi-pc.c} (98%)
 create mode 100644 hw/i386/pc_sysfw_ovmf-stubs.c
 create mode 100644 hw/i386/pc_sysfw_ovmf.c
 create mode 100644 target/i386/sev-sysemu-stub.c

Comments

Michael S. Tsirkin June 17, 2021, 8:42 p.m. UTC | #1
On Wed, Jun 16, 2021 at 10:43:05PM +0200, Philippe Mathieu-Daudé wrote:
> Hi,
> 
> While testing James & Dov patch:
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg810571.html
> I wasted some time trying to figure out how OVMF was supposed to
> behave until realizing the binary I was using was built without SEV
> support... Then wrote this series to help other developers to not
> hit the same problem.
> 
> Some SEV patches I was following have been queued on Eduardo's
> 'x86-next' tree, so I used his tree as base, and included David and
> Connor patches to reduce merge conflicts.
> 
> Patches 1-16 are SEV related,
> patches 17-23 are OVMF related.
> 
> Special comment for Laszlo: Please don't review this version,
> wait for the respin (hoping the SEV cleanup patch get accepted,
> the respin will be focused on OVMF).
> 
> Based-on: https://gitlab.com/ehabkost/qemu/-/commits/x86-next/
> Supersedes: <20210610064556.1421620-1-philmd@redhat.com>


acpi things

Acked-by: Michael S. Tsirkin <mst@redhat.com>

do you want to split acpi things out so I can merge?

> Connor Kuehl (1):
>   MAINTAINERS: Add Connor Kuehl as reviewer for AMD SEV
> 
> Dr. David Alan Gilbert (1):
>   target/i386/sev: sev_get_attestation_report use g_autofree
> 
> Philippe Mathieu-Daudé (21):
>   qapi/misc-target: Wrap long 'SEV Attestation Report' long lines
>   qapi/misc-target: Group SEV QAPI definitions
>   target/i386/monitor: Return QMP error when SEV is disabled in build
>   target/i386/cpu: Add missing 'qapi/error.h' header
>   target/i386/sev_i386.h: Remove unused headers
>   target/i386/sev: Remove sev_get_me_mask()
>   target/i386/sev: Mark unreachable code with g_assert_not_reached()
>   target/i386/sev: Restrict SEV to system emulation
>   target/i386/sev: Move qmp_query_sev_attestation_report() to sev.c
>   target/i386/sev: Move qmp_sev_inject_launch_secret() to sev.c
>   target/i386/sev: Move qmp_query_sev_capabilities() to sev.c
>   target/i386/sev: Move qmp_query_sev_launch_measure() to sev.c
>   target/i386/sev: Move qmp_query_sev() & hmp_info_sev() to sev.c
>   monitor: Restrict 'info sev' to x86 targets
>   hw/i386/acpi-common: Remove unused includes
>   hw/i386: Rename acpi-build.c -> acpi-pc.c
>   hw/i386: Move pc_madt_cpu_entry() to acpi-pc.c
>   hw/acpi: Do not restrict ACPI core routines to x86 architecture
>   hw/i386: Introduce X86_FW_OVMF Kconfig symbol
>   hw/acpi/Kconfig: Add missing Kconfig dependencies (build error)
>   hw/i386/Kconfig: Add missing Kconfig dependency (runtime error)
> 
>  qapi/misc-target.json               |  78 ++++++++--------
>  include/hw/i386/pc.h                |   1 +
>  include/monitor/hmp-target.h        |   1 +
>  include/monitor/hmp.h               |   1 -
>  target/i386/sev_i386.h              |  11 ---
>  hw/i386/acpi-common.c               |  45 ----------
>  hw/i386/{acpi-build.c => acpi-pc.c} |  39 ++++++++
>  hw/i386/pc_sysfw.c                  | 107 ----------------------
>  hw/i386/pc_sysfw_ovmf-stubs.c       |  26 ++++++
>  hw/i386/pc_sysfw_ovmf.c             | 135 ++++++++++++++++++++++++++++
>  target/i386/cpu.c                   |   1 +
>  target/i386/monitor.c               |  91 -------------------
>  target/i386/sev-stub.c              |  49 +---------
>  target/i386/sev-sysemu-stub.c       |  69 ++++++++++++++
>  target/i386/sev.c                   | 130 +++++++++++++++++++++------
>  MAINTAINERS                         |   8 ++
>  hw/acpi/Kconfig                     |   4 +
>  hw/acpi/meson.build                 |   3 +-
>  hw/i386/Kconfig                     |   5 ++
>  hw/i386/meson.build                 |   4 +-
>  target/i386/meson.build             |   4 +-
>  21 files changed, 443 insertions(+), 369 deletions(-)
>  rename hw/i386/{acpi-build.c => acpi-pc.c} (98%)
>  create mode 100644 hw/i386/pc_sysfw_ovmf-stubs.c
>  create mode 100644 hw/i386/pc_sysfw_ovmf.c
>  create mode 100644 target/i386/sev-sysemu-stub.c
> 
> -- 
> 2.31.1
>
Igor Mammedov June 18, 2021, 11:46 a.m. UTC | #2
On Thu, 17 Jun 2021 16:42:24 -0400
"Michael S. Tsirkin" <mst@redhat.com> wrote:

> On Wed, Jun 16, 2021 at 10:43:05PM +0200, Philippe Mathieu-Daudé wrote:
> > Hi,
> > 
> > While testing James & Dov patch:
> > https://www.mail-archive.com/qemu-devel@nongnu.org/msg810571.html
> > I wasted some time trying to figure out how OVMF was supposed to
> > behave until realizing the binary I was using was built without SEV
> > support... Then wrote this series to help other developers to not
> > hit the same problem.
> > 
> > Some SEV patches I was following have been queued on Eduardo's
> > 'x86-next' tree, so I used his tree as base, and included David and
> > Connor patches to reduce merge conflicts.
> > 
> > Patches 1-16 are SEV related,
> > patches 17-23 are OVMF related.
> > 
> > Special comment for Laszlo: Please don't review this version,
> > wait for the respin (hoping the SEV cleanup patch get accepted,
> > the respin will be focused on OVMF).
> > 
> > Based-on: https://gitlab.com/ehabkost/qemu/-/commits/x86-next/
> > Supersedes: <20210610064556.1421620-1-philmd@redhat.com>  
> 
> 
> acpi things
> 
> Acked-by: Michael S. Tsirkin <mst@redhat.com>
> 
> do you want to split acpi things out so I can merge?
I agree they should have been split out.
(I see in cover letter SEV don't look into series anymore, so
this APCI patches which are totally irrelevant to SEV weren't
even unnoticed).

Perhaps I should take these into my ACPI refactoring series
(with your acks), which would need to be rebased on top of these.
Though I'd drop 19/23 which doesn't look correct to me.

> 
> > Connor Kuehl (1):
> >   MAINTAINERS: Add Connor Kuehl as reviewer for AMD SEV
> > 
> > Dr. David Alan Gilbert (1):
> >   target/i386/sev: sev_get_attestation_report use g_autofree
> > 
> > Philippe Mathieu-Daudé (21):
> >   qapi/misc-target: Wrap long 'SEV Attestation Report' long lines
> >   qapi/misc-target: Group SEV QAPI definitions
> >   target/i386/monitor: Return QMP error when SEV is disabled in build
> >   target/i386/cpu: Add missing 'qapi/error.h' header
> >   target/i386/sev_i386.h: Remove unused headers
> >   target/i386/sev: Remove sev_get_me_mask()
> >   target/i386/sev: Mark unreachable code with g_assert_not_reached()
> >   target/i386/sev: Restrict SEV to system emulation
> >   target/i386/sev: Move qmp_query_sev_attestation_report() to sev.c
> >   target/i386/sev: Move qmp_sev_inject_launch_secret() to sev.c
> >   target/i386/sev: Move qmp_query_sev_capabilities() to sev.c
> >   target/i386/sev: Move qmp_query_sev_launch_measure() to sev.c
> >   target/i386/sev: Move qmp_query_sev() & hmp_info_sev() to sev.c
> >   monitor: Restrict 'info sev' to x86 targets
> >   hw/i386/acpi-common: Remove unused includes
> >   hw/i386: Rename acpi-build.c -> acpi-pc.c
> >   hw/i386: Move pc_madt_cpu_entry() to acpi-pc.c
> >   hw/acpi: Do not restrict ACPI core routines to x86 architecture
> >   hw/i386: Introduce X86_FW_OVMF Kconfig symbol
> >   hw/acpi/Kconfig: Add missing Kconfig dependencies (build error)
> >   hw/i386/Kconfig: Add missing Kconfig dependency (runtime error)
> > 
> >  qapi/misc-target.json               |  78 ++++++++--------
> >  include/hw/i386/pc.h                |   1 +
> >  include/monitor/hmp-target.h        |   1 +
> >  include/monitor/hmp.h               |   1 -
> >  target/i386/sev_i386.h              |  11 ---
> >  hw/i386/acpi-common.c               |  45 ----------
> >  hw/i386/{acpi-build.c => acpi-pc.c} |  39 ++++++++
> >  hw/i386/pc_sysfw.c                  | 107 ----------------------
> >  hw/i386/pc_sysfw_ovmf-stubs.c       |  26 ++++++
> >  hw/i386/pc_sysfw_ovmf.c             | 135 ++++++++++++++++++++++++++++
> >  target/i386/cpu.c                   |   1 +
> >  target/i386/monitor.c               |  91 -------------------
> >  target/i386/sev-stub.c              |  49 +---------
> >  target/i386/sev-sysemu-stub.c       |  69 ++++++++++++++
> >  target/i386/sev.c                   | 130 +++++++++++++++++++++------
> >  MAINTAINERS                         |   8 ++
> >  hw/acpi/Kconfig                     |   4 +
> >  hw/acpi/meson.build                 |   3 +-
> >  hw/i386/Kconfig                     |   5 ++
> >  hw/i386/meson.build                 |   4 +-
> >  target/i386/meson.build             |   4 +-
> >  21 files changed, 443 insertions(+), 369 deletions(-)
> >  rename hw/i386/{acpi-build.c => acpi-pc.c} (98%)
> >  create mode 100644 hw/i386/pc_sysfw_ovmf-stubs.c
> >  create mode 100644 hw/i386/pc_sysfw_ovmf.c
> >  create mode 100644 target/i386/sev-sysemu-stub.c
> > 
> > -- 
> > 2.31.1
> >   
>
Michael S. Tsirkin June 18, 2021, 12:53 p.m. UTC | #3
On Fri, Jun 18, 2021 at 01:46:23PM +0200, Igor Mammedov wrote:
> On Thu, 17 Jun 2021 16:42:24 -0400
> "Michael S. Tsirkin" <mst@redhat.com> wrote:
> 
> > On Wed, Jun 16, 2021 at 10:43:05PM +0200, Philippe Mathieu-Daudé wrote:
> > > Hi,
> > > 
> > > While testing James & Dov patch:
> > > https://www.mail-archive.com/qemu-devel@nongnu.org/msg810571.html
> > > I wasted some time trying to figure out how OVMF was supposed to
> > > behave until realizing the binary I was using was built without SEV
> > > support... Then wrote this series to help other developers to not
> > > hit the same problem.
> > > 
> > > Some SEV patches I was following have been queued on Eduardo's
> > > 'x86-next' tree, so I used his tree as base, and included David and
> > > Connor patches to reduce merge conflicts.
> > > 
> > > Patches 1-16 are SEV related,
> > > patches 17-23 are OVMF related.
> > > 
> > > Special comment for Laszlo: Please don't review this version,
> > > wait for the respin (hoping the SEV cleanup patch get accepted,
> > > the respin will be focused on OVMF).
> > > 
> > > Based-on: https://gitlab.com/ehabkost/qemu/-/commits/x86-next/
> > > Supersedes: <20210610064556.1421620-1-philmd@redhat.com>  
> > 
> > 
> > acpi things
> > 
> > Acked-by: Michael S. Tsirkin <mst@redhat.com>
> > 
> > do you want to split acpi things out so I can merge?
> I agree they should have been split out.
> (I see in cover letter SEV don't look into series anymore, so
> this APCI patches which are totally irrelevant to SEV weren't
> even unnoticed).
> 
> Perhaps I should take these into my ACPI refactoring series
> (with your acks), which would need to be rebased on top of these.

OK.

> Though I'd drop 19/23 which doesn't look correct to me.

Yes let's drop that one.

> > 
> > > Connor Kuehl (1):
> > >   MAINTAINERS: Add Connor Kuehl as reviewer for AMD SEV
> > > 
> > > Dr. David Alan Gilbert (1):
> > >   target/i386/sev: sev_get_attestation_report use g_autofree
> > > 
> > > Philippe Mathieu-Daudé (21):
> > >   qapi/misc-target: Wrap long 'SEV Attestation Report' long lines
> > >   qapi/misc-target: Group SEV QAPI definitions
> > >   target/i386/monitor: Return QMP error when SEV is disabled in build
> > >   target/i386/cpu: Add missing 'qapi/error.h' header
> > >   target/i386/sev_i386.h: Remove unused headers
> > >   target/i386/sev: Remove sev_get_me_mask()
> > >   target/i386/sev: Mark unreachable code with g_assert_not_reached()
> > >   target/i386/sev: Restrict SEV to system emulation
> > >   target/i386/sev: Move qmp_query_sev_attestation_report() to sev.c
> > >   target/i386/sev: Move qmp_sev_inject_launch_secret() to sev.c
> > >   target/i386/sev: Move qmp_query_sev_capabilities() to sev.c
> > >   target/i386/sev: Move qmp_query_sev_launch_measure() to sev.c
> > >   target/i386/sev: Move qmp_query_sev() & hmp_info_sev() to sev.c
> > >   monitor: Restrict 'info sev' to x86 targets
> > >   hw/i386/acpi-common: Remove unused includes
> > >   hw/i386: Rename acpi-build.c -> acpi-pc.c
> > >   hw/i386: Move pc_madt_cpu_entry() to acpi-pc.c
> > >   hw/acpi: Do not restrict ACPI core routines to x86 architecture
> > >   hw/i386: Introduce X86_FW_OVMF Kconfig symbol
> > >   hw/acpi/Kconfig: Add missing Kconfig dependencies (build error)
> > >   hw/i386/Kconfig: Add missing Kconfig dependency (runtime error)
> > > 
> > >  qapi/misc-target.json               |  78 ++++++++--------
> > >  include/hw/i386/pc.h                |   1 +
> > >  include/monitor/hmp-target.h        |   1 +
> > >  include/monitor/hmp.h               |   1 -
> > >  target/i386/sev_i386.h              |  11 ---
> > >  hw/i386/acpi-common.c               |  45 ----------
> > >  hw/i386/{acpi-build.c => acpi-pc.c} |  39 ++++++++
> > >  hw/i386/pc_sysfw.c                  | 107 ----------------------
> > >  hw/i386/pc_sysfw_ovmf-stubs.c       |  26 ++++++
> > >  hw/i386/pc_sysfw_ovmf.c             | 135 ++++++++++++++++++++++++++++
> > >  target/i386/cpu.c                   |   1 +
> > >  target/i386/monitor.c               |  91 -------------------
> > >  target/i386/sev-stub.c              |  49 +---------
> > >  target/i386/sev-sysemu-stub.c       |  69 ++++++++++++++
> > >  target/i386/sev.c                   | 130 +++++++++++++++++++++------
> > >  MAINTAINERS                         |   8 ++
> > >  hw/acpi/Kconfig                     |   4 +
> > >  hw/acpi/meson.build                 |   3 +-
> > >  hw/i386/Kconfig                     |   5 ++
> > >  hw/i386/meson.build                 |   4 +-
> > >  target/i386/meson.build             |   4 +-
> > >  21 files changed, 443 insertions(+), 369 deletions(-)
> > >  rename hw/i386/{acpi-build.c => acpi-pc.c} (98%)
> > >  create mode 100644 hw/i386/pc_sysfw_ovmf-stubs.c
> > >  create mode 100644 hw/i386/pc_sysfw_ovmf.c
> > >  create mode 100644 target/i386/sev-sysemu-stub.c
> > > 
> > > -- 
> > > 2.31.1
> > >   
> >
Laszlo Ersek June 23, 2021, 9:37 p.m. UTC | #4
On 06/16/21 22:43, Philippe Mathieu-Daudé wrote:
> Special comment for Laszlo: Please don't review this version,
> wait for the respin (hoping the SEV cleanup patch get accepted,
> the respin will be focused on OVMF).

Appreciate the note.

Laszlo