[PULL v4 00/43] (Mostly) x86 changes for 2021-09-06

Paolo Bonzini posted 43 patches 4 years, 5 months ago
Test checkpatch failed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210908100426.264356-1-pbonzini@redhat.com
Maintainers: Marcelo Tosatti <mtosatti@redhat.com>, Jason Wang <jasowang@redhat.com>, Stefan Hajnoczi <stefanha@redhat.com>, Eric Blake <eblake@redhat.com>, Ani Sinha <ani@anisinha.ca>, Hanna Reitz <hreitz@redhat.com>, Markus Armbruster <armbru@redhat.com>, Alex Williamson <alex.williamson@redhat.com>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Igor Mammedov <imammedo@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>, Eduardo Habkost <ehabkost@redhat.com>, Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>, Andrew Melnychenko <andrew@daynix.com>, Kevin Wolf <kwolf@redhat.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, Yuri Benditovich <yuri.benditovich@daynix.com>, David Hildenbrand <david@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Peter Xu <peterx@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
backends/hostmem-epc.c                   | 118 ++++++++++++++
backends/meson.build                     |   1 +
configs/devices/i386-softmmu/default.mak |   1 +
docs/about/index.rst                     |   3 +-
docs/devel/index.rst                     |   3 +-
docs/index.rst                           |   1 +
docs/interop/index.rst                   |   3 +-
docs/specs/index.rst                     |   3 +-
docs/system/cpu-models-x86.rst.inc       |   4 +-
docs/system/i386/cpu.rst                 |   1 +
docs/system/i386/sgx.rst                 | 165 +++++++++++++++++++
docs/system/index.rst                    |   3 +-
docs/system/qemu-block-drivers.rst       |   4 +
docs/system/qemu-cpu-models.rst          |  10 +-
docs/system/qemu-manpage.rst             |  10 +-
docs/system/target-i386.rst              |   9 +-
docs/tools/index.rst                     |   3 +-
docs/tools/qemu-img.rst                  |   1 +
docs/tools/qemu-nbd.rst                  |   1 +
docs/tools/qemu-pr-helper.rst            |   1 +
docs/tools/qemu-storage-daemon.rst       |   1 +
docs/tools/qemu-trace-stap.rst           |   1 +
docs/user/index.rst                      |   3 +-
ebpf/meson.build                         |   2 +-
hw/i386/Kconfig                          |   5 +
hw/i386/acpi-build.c                     |  22 +++
hw/i386/fw_cfg.c                         |  10 +-
hw/i386/meson.build                      |   2 +
hw/i386/pc.c                             |  15 +-
hw/i386/pc_piix.c                        |   4 +
hw/i386/pc_q35.c                         |   3 +
hw/i386/sgx-epc.c                        | 265 +++++++++++++++++++++++++++++++
hw/i386/sgx-stub.c                       |  13 ++
hw/i386/sgx.c                            |  84 ++++++++++
hw/i386/x86.c                            |  29 ++++
hw/nvram/fw_cfg.c                        |   1 +
hw/vfio/common.c                         |   1 +
include/exec/memory.h                    |  15 +-
include/hw/i386/pc.h                     |   8 +
include/hw/i386/sgx-epc.h                |  67 ++++++++
include/hw/i386/x86.h                    |   1 +
meson.build                              |   2 +-
monitor/hmp-cmds.c                       |  10 ++
qapi/machine.json                        |  52 +++++-
qapi/qom.json                            |  19 +++
qemu-options.hx                          |  10 +-
softmmu/memory.c                         |   5 +
softmmu/physmem.c                        |   3 +-
target/i386/cpu.c                        | 199 +++++++++++++++++++++--
target/i386/cpu.h                        |  39 +++++
target/i386/kvm/kvm.c                    |  75 +++++++++
target/i386/kvm/kvm_i386.h               |   2 +
target/i386/machine.c                    |  42 ++++-
target/i386/svm.h                        |   8 +
target/i386/tcg/seg_helper.c             |   2 +-
target/i386/tcg/sysemu/excp_helper.c     |   2 +-
target/i386/tcg/sysemu/misc_helper.c     |  11 +-
target/i386/tcg/sysemu/svm_helper.c      | 121 +++++++++-----
58 files changed, 1418 insertions(+), 81 deletions(-)
create mode 100644 backends/hostmem-epc.c
create mode 100644 docs/system/i386/cpu.rst
create mode 100644 docs/system/i386/sgx.rst
create mode 100644 hw/i386/sgx-epc.c
create mode 100644 hw/i386/sgx-stub.c
create mode 100644 hw/i386/sgx.c
create mode 100644 include/hw/i386/sgx-epc.h
[PULL v4 00/43] (Mostly) x86 changes for 2021-09-06
Posted by Paolo Bonzini 4 years, 5 months ago
The following changes since commit f9128631fbeb40a55f7bc145397981c963d40909:

  Merge remote-tracking branch 'remotes/stefanha-gitlab/tags/block-pull-request' into staging (2021-09-07 13:24:43 +0100)

are available in the Git repository at:

  https://gitlab.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to 3b942628231462c56c883a6273cf137d2a382f8f:

  ebpf: only include in system emulators (2021-09-08 08:07:04 +0200)

----------------------------------------------------------------
* SGX support (Sean, Yang)
* vGIF and vVMLOAD/VMSAVE support (Lara)
* Fix LA57 support in TCG (Daniel)
* Avoid pointless warnings for static user-only compilation (Thomas)
* Fix --disable-system compilation if libbpf is found
* target-i386.rst restructuring

----------------------------------------------------------------
v3->v4: added docs changes and build system bugfixes

Daniel P. Berrangé (1):
      target/i386: add missing bits to CR4_RESERVED_MASK

Lara Lazier (7):
      target/i386: VMRUN and VMLOAD canonicalizations
      target/i386: Added VGIF feature
      target/i386: Moved int_ctl into CPUX86State structure
      target/i386: Added VGIF V_IRQ masking capability
      target/i386: Added ignore TPR check in ctl_has_irq
      target/i386: Added changed priority check for VIRQ
      target/i386: Added vVMLOAD and vVMSAVE feature

Paolo Bonzini (6):
      fw_cfg: add etc/msr_feature_control
      docs: standardize book titles to === with overline
      docs: standardize directory index to --- with overline
      docs/system: standardize man page sections to --- with overline
      docs/system: move x86 CPU configuration to a separate document
      ebpf: only include in system emulators

Sean Christopherson (21):
      memory: Add RAM_PROTECTED flag to skip IOMMU mappings
      hostmem: Add hostmem-epc as a backend for SGX EPC
      i386: Add 'sgx-epc' device to expose EPC sections to guest
      vl: Add sgx compound properties to expose SGX EPC sections to guest
      i386: Add primary SGX CPUID and MSR defines
      i386: Add SGX CPUID leaf FEAT_SGX_12_0_EAX
      i386: Add SGX CPUID leaf FEAT_SGX_12_0_EBX
      i386: Add SGX CPUID leaf FEAT_SGX_12_1_EAX
      i386: Add get/set/migrate support for SGX_LEPUBKEYHASH MSRs
      i386: Add feature control MSR dependency when SGX is enabled
      i386: Update SGX CPUID info according to hardware/KVM/user input
      i386: kvm: Add support for exposing PROVISIONKEY to guest
      i386: Propagate SGX CPUID sub-leafs to KVM
      Adjust min CPUID level to 0x12 when SGX is enabled
      hw/i386/fw_cfg: Set SGX bits in feature control fw_cfg accordingly
      hw/i386/pc: Account for SGX EPC sections when calculating device memory
      i386/pc: Add e820 entry for SGX EPC section(s)
      i386: acpi: Add SGX EPC entry to ACPI tables
      q35: Add support for SGX EPC
      i440fx: Add support for SGX EPC
      docs/system: Add SGX documentation to the system manual

Thomas Huth (1):
      meson.build: Do not look for VNC-related libraries if have_system is not set

Yang Zhong (7):
      qom: Add memory-backend-epc ObjectOptions support
      hostmem-epc: Add the reset interface for EPC backend reset
      sgx-epc: Add the reset interface for sgx-epc virt device
      sgx-epc: Avoid bios reset during sgx epc initialization
      hostmem-epc: Make prealloc consistent with qemu cmdline during reset
      Kconfig: Add CONFIG_SGX support
      sgx-epc: Add the fill_device_info() callback support

 backends/hostmem-epc.c                   | 118 ++++++++++++++
 backends/meson.build                     |   1 +
 configs/devices/i386-softmmu/default.mak |   1 +
 docs/about/index.rst                     |   3 +-
 docs/devel/index.rst                     |   3 +-
 docs/index.rst                           |   1 +
 docs/interop/index.rst                   |   3 +-
 docs/specs/index.rst                     |   3 +-
 docs/system/cpu-models-x86.rst.inc       |   4 +-
 docs/system/i386/cpu.rst                 |   1 +
 docs/system/i386/sgx.rst                 | 165 +++++++++++++++++++
 docs/system/index.rst                    |   3 +-
 docs/system/qemu-block-drivers.rst       |   4 +
 docs/system/qemu-cpu-models.rst          |  10 +-
 docs/system/qemu-manpage.rst             |  10 +-
 docs/system/target-i386.rst              |   9 +-
 docs/tools/index.rst                     |   3 +-
 docs/tools/qemu-img.rst                  |   1 +
 docs/tools/qemu-nbd.rst                  |   1 +
 docs/tools/qemu-pr-helper.rst            |   1 +
 docs/tools/qemu-storage-daemon.rst       |   1 +
 docs/tools/qemu-trace-stap.rst           |   1 +
 docs/user/index.rst                      |   3 +-
 ebpf/meson.build                         |   2 +-
 hw/i386/Kconfig                          |   5 +
 hw/i386/acpi-build.c                     |  22 +++
 hw/i386/fw_cfg.c                         |  10 +-
 hw/i386/meson.build                      |   2 +
 hw/i386/pc.c                             |  15 +-
 hw/i386/pc_piix.c                        |   4 +
 hw/i386/pc_q35.c                         |   3 +
 hw/i386/sgx-epc.c                        | 265 +++++++++++++++++++++++++++++++
 hw/i386/sgx-stub.c                       |  13 ++
 hw/i386/sgx.c                            |  84 ++++++++++
 hw/i386/x86.c                            |  29 ++++
 hw/nvram/fw_cfg.c                        |   1 +
 hw/vfio/common.c                         |   1 +
 include/exec/memory.h                    |  15 +-
 include/hw/i386/pc.h                     |   8 +
 include/hw/i386/sgx-epc.h                |  67 ++++++++
 include/hw/i386/x86.h                    |   1 +
 meson.build                              |   2 +-
 monitor/hmp-cmds.c                       |  10 ++
 qapi/machine.json                        |  52 +++++-
 qapi/qom.json                            |  19 +++
 qemu-options.hx                          |  10 +-
 softmmu/memory.c                         |   5 +
 softmmu/physmem.c                        |   3 +-
 target/i386/cpu.c                        | 199 +++++++++++++++++++++--
 target/i386/cpu.h                        |  39 +++++
 target/i386/kvm/kvm.c                    |  75 +++++++++
 target/i386/kvm/kvm_i386.h               |   2 +
 target/i386/machine.c                    |  42 ++++-
 target/i386/svm.h                        |   8 +
 target/i386/tcg/seg_helper.c             |   2 +-
 target/i386/tcg/sysemu/excp_helper.c     |   2 +-
 target/i386/tcg/sysemu/misc_helper.c     |  11 +-
 target/i386/tcg/sysemu/svm_helper.c      | 121 +++++++++-----
 58 files changed, 1418 insertions(+), 81 deletions(-)
 create mode 100644 backends/hostmem-epc.c
 create mode 100644 docs/system/i386/cpu.rst
 create mode 100644 docs/system/i386/sgx.rst
 create mode 100644 hw/i386/sgx-epc.c
 create mode 100644 hw/i386/sgx-stub.c
 create mode 100644 hw/i386/sgx.c
 create mode 100644 include/hw/i386/sgx-epc.h
-- 
2.31.1


Re: [PULL v4 00/43] (Mostly) x86 changes for 2021-09-06
Posted by Peter Maydell 4 years, 5 months ago
On Wed, 8 Sept 2021 at 11:07, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit f9128631fbeb40a55f7bc145397981c963d40909:
>
>   Merge remote-tracking branch 'remotes/stefanha-gitlab/tags/block-pull-request' into staging (2021-09-07 13:24:43 +0100)
>
> are available in the Git repository at:
>
>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to 3b942628231462c56c883a6273cf137d2a382f8f:
>
>   ebpf: only include in system emulators (2021-09-08 08:07:04 +0200)
>
> ----------------------------------------------------------------
> * SGX support (Sean, Yang)
> * vGIF and vVMLOAD/VMSAVE support (Lara)
> * Fix LA57 support in TCG (Daniel)
> * Avoid pointless warnings for static user-only compilation (Thomas)
> * Fix --disable-system compilation if libbpf is found
> * target-i386.rst restructuring
>

Philippe seems to have some review remarks on the SGX patches,
and also I found that on my local machine this was pretty
consistently hanging in the migration test. David G says there's
a maybe fix for that in another pullreq, so I'll see if that helps...

-- PMM

Re: [PULL v4 00/43] (Mostly) x86 changes for 2021-09-06
Posted by Philippe Mathieu-Daudé 4 years, 5 months ago
On 9/9/21 3:25 PM, Peter Maydell wrote:
> On Wed, 8 Sept 2021 at 11:07, Paolo Bonzini <pbonzini@redhat.com> wrote:
>>
>> The following changes since commit f9128631fbeb40a55f7bc145397981c963d40909:
>>
>>   Merge remote-tracking branch 'remotes/stefanha-gitlab/tags/block-pull-request' into staging (2021-09-07 13:24:43 +0100)
>>
>> are available in the Git repository at:
>>
>>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>>
>> for you to fetch changes up to 3b942628231462c56c883a6273cf137d2a382f8f:
>>
>>   ebpf: only include in system emulators (2021-09-08 08:07:04 +0200)
>>
>> ----------------------------------------------------------------
>> * SGX support (Sean, Yang)
>> * vGIF and vVMLOAD/VMSAVE support (Lara)
>> * Fix LA57 support in TCG (Daniel)
>> * Avoid pointless warnings for static user-only compilation (Thomas)
>> * Fix --disable-system compilation if libbpf is found
>> * target-i386.rst restructuring
>>
> 
> Philippe seems to have some review remarks on the SGX patches,

I wanted to comment on the latest "Kconfig: Add CONFIG_SGX support"
patch and didn't really realize the latest was the pull request.
I meant to NAck the patch, but since it is pulled, the issue I reported
can be fixed on top (we are not close to releasing), I don't want to
give Paolo more work... Sorry for the noise.

> and also I found that on my local machine this was pretty
> consistently hanging in the migration test. David G says there's
> a maybe fix for that in another pullreq, so I'll see if that helps...
> 
> -- PMM
> 


Re: [PULL v4 00/43] (Mostly) x86 changes for 2021-09-06
Posted by Peter Maydell 4 years, 5 months ago
On Wed, 8 Sept 2021 at 11:07, Paolo Bonzini <pbonzini@redhat.com> wrote:
>
> The following changes since commit f9128631fbeb40a55f7bc145397981c963d40909:
>
>   Merge remote-tracking branch 'remotes/stefanha-gitlab/tags/block-pull-request' into staging (2021-09-07 13:24:43 +0100)
>
> are available in the Git repository at:
>
>   https://gitlab.com/bonzini/qemu.git tags/for-upstream
>
> for you to fetch changes up to 3b942628231462c56c883a6273cf137d2a382f8f:
>
>   ebpf: only include in system emulators (2021-09-08 08:07:04 +0200)
>
> ----------------------------------------------------------------
> * SGX support (Sean, Yang)
> * vGIF and vVMLOAD/VMSAVE support (Lara)
> * Fix LA57 support in TCG (Daniel)
> * Avoid pointless warnings for static user-only compilation (Thomas)
> * Fix --disable-system compilation if libbpf is found
> * target-i386.rst restructuring
>
> ----------------------------------------------------------------

I gave this a retry and it now fails to compile (all hosts):

../../hw/i386/sgx-stub.c: In function ‘pc_machine_init_sgx_epc’:
../../hw/i386/sgx-stub.c:7:12: error: ‘sgx_epc’ undeclared (first use
in this function)
    7 |     memset(sgx_epc, 0, sizeof(SGXEPCState));
      |            ^~~~~~~
../../hw/i386/sgx-stub.c:7:12: note: each undeclared identifier is
reported only once for each function it appears in


-- PMM

Re: [PULL v4 00/43] (Mostly) x86 changes for 2021-09-06
Posted by Paolo Bonzini 4 years, 5 months ago
Yes this is not anymore the tag I had posted... I was working on the review
comments.

Paolo

Il sab 11 set 2021, 15:00 Peter Maydell <peter.maydell@linaro.org> ha
scritto:

> On Wed, 8 Sept 2021 at 11:07, Paolo Bonzini <pbonzini@redhat.com> wrote:
> >
> > The following changes since commit
> f9128631fbeb40a55f7bc145397981c963d40909:
> >
> >   Merge remote-tracking branch
> 'remotes/stefanha-gitlab/tags/block-pull-request' into staging (2021-09-07
> 13:24:43 +0100)
> >
> > are available in the Git repository at:
> >
> >   https://gitlab.com/bonzini/qemu.git tags/for-upstream
> >
> > for you to fetch changes up to 3b942628231462c56c883a6273cf137d2a382f8f:
> >
> >   ebpf: only include in system emulators (2021-09-08 08:07:04 +0200)
> >
> > ----------------------------------------------------------------
> > * SGX support (Sean, Yang)
> > * vGIF and vVMLOAD/VMSAVE support (Lara)
> > * Fix LA57 support in TCG (Daniel)
> > * Avoid pointless warnings for static user-only compilation (Thomas)
> > * Fix --disable-system compilation if libbpf is found
> > * target-i386.rst restructuring
> >
> > ----------------------------------------------------------------
>
> I gave this a retry and it now fails to compile (all hosts):
>
> ../../hw/i386/sgx-stub.c: In function ‘pc_machine_init_sgx_epc’:
> ../../hw/i386/sgx-stub.c:7:12: error: ‘sgx_epc’ undeclared (first use
> in this function)
>     7 |     memset(sgx_epc, 0, sizeof(SGXEPCState));
>       |            ^~~~~~~
> ../../hw/i386/sgx-stub.c:7:12: note: each undeclared identifier is
> reported only once for each function it appears in
>
>
> -- PMM
>
>