All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: lersek@redhat.com, qemu-devel@nongnu.org, kraxel@redhat.com
Subject: Re: [Qemu-devel] [PATCH 00/31] target-i386: SMM improvements and partial support under KVM
Date: Sun, 31 May 2015 20:10:27 +0200	[thread overview]
Message-ID: <20150531181027.GB5268@redhat.com> (raw)
In-Reply-To: <1431352157-40283-1-git-send-email-pbonzini@redhat.com>

On Mon, May 11, 2015 at 03:48:46PM +0200, Paolo Bonzini wrote:
> These patches implement almost everything that is needed for SMM
> support in OVMF and KVM.  The only missing bit is support for
> SMRAM regions in KVM, but it need not block review of these ones,
> and possibly inclusion of the first 26.

Overall this looks good to me.
Sent some comments, and IIUC there will v2 down the road?


> There are many small parts in this patches, but I am posting them
> together because each small part alone adds very little.
> 
> Patch 1 comes from mst's pull request.
> 
> Patches 2-6 are target-i386 patches.  They add support for memory
> attributes in target-i386, enabling the "secure" attribute whenever
> the CPU is in system management mode.  They also fix two SMM bugs
> found while working on KVM support.
> 
> Patches 7-9 add support for secure access to parallel flash.  If
> enabled, parallel flash behaves as ROM unless the "secure" memory
> transaction attribute is set.
> 
> Patches 10-12 are general infrastructure patches that didn't fit
> elsewhere.  Note that patch 10 introduces new command-line syntax.
> 
> Patches 13-16 rewrite the SMRAM handling in TCG mode, so that the
> SMRAM setup is done just once using the memory API, and then
> enabled/disabled by the CPU without intervention from the chipset.
> The resulting chipset code is simpler and...
> 
> ... patches 17-23 then rely on this to implement support for
> more q35 SMI features, in particular high SMRAM, TSEG and SMI_LOCK.
> This part was done almost entirely by Gerd.
> 
> Patches 24-26 are for q35 feature parity with PIIX4.  They are from Laszlo
> and they are included just because they conflict with the next few.
> 
> Patches 27 and 28 implement KVM support for SMM.  Note that this support
> is not yet upstream (will be in Linux 4.2); these patches will be
> rebased after the updated KVM headers are taken from kvm.git.
> 
> Patches 29-31 add a "-machine smm=on|off|auto" option (QOM property)
> that can be used to hide SMM or make it available on any accelerator.
> The compat gunk makes it available by default on TCG but not on KVM.
> 
> That's it.  Go ahead and review.
> 
> Paolo
> 
> 
> Gerd Hoffmann (6):
>   q35: fix ESMRAMC default
>   q35: add config space wmask for SMRAM and ESMRAMC
>   q35: implement SMRAM.D_LCK
>   q35: add test for SMRAM.D_LCK
>   q35: implement TSEG
>   ich9: implement SMI_LOCK
> 
> Jason Wang (1):
>   pc: add 2.4 machine types
> 
> Laszlo Ersek (3):
>   hw/acpi: acpi_pm1_cnt_init(): take "disable_s3" and "disable_s4"
>   hw/acpi: move "etc/system-states" fw_cfg file from PIIX4 to core
>   hw/acpi: piix4_pm_init(): take fw_cfg object no more
> 
> Paolo Bonzini (21):
>   target-i386: introduce cpu_get_mem_attrs
>   target-i386: Use correct memory attributes for memory accesses
>   target-i386: Use correct memory attributes for ioport accesses
>   target-i386: mask NMIs on entry to SMM
>   target-i386: set G=1 in SMM big real mode selectors
>   pflash_cfi01: change big-endian property to BIT type
>   pflash_cfi01: change to new-style MMIO accessors
>   pflash_cfi01: add secure property
>   vl: allow full-blown QemuOpts syntax for -global
>   qom: add object_property_add_const_link
>   vl: run "late" notifiers immediately
>   target-i386: create a separate AddressSpace for each CPU
>   hw/i386: add a separate region that tracks the SMRAME bit
>   target-i386: use memory API to implement SMRAM
>   hw/i386: remove smram_update
>   q35: implement high SMRAM
>   target-i386: add support for SMBASE MSR and SMIs
>   vga: disable chain4_alias if KVM supports SMRAM
>   pc_piix: rename kvm_enabled to smm_enabled
>   ich9: add smm_enabled field and arguments
>   pc: add SMM property
> 
>  bsd-user/main.c             |   4 -
>  hw/acpi/core.c              |  15 +-
>  hw/acpi/ich9.c              |  12 +-
>  hw/acpi/piix4.c             |  21 +--
>  hw/block/pflash_cfi01.c     | 204 +++++++++++----------------
>  hw/display/vga.c            |   8 +-
>  hw/display/vga_int.h        |   1 +
>  hw/i386/pc.c                |  72 +++++++---
>  hw/i386/pc_piix.c           |  53 +++++--
>  hw/i386/pc_q35.c            |  33 ++++-
>  hw/isa/lpc_ich9.c           |  23 ++-
>  hw/isa/vt82c686.c           |   2 +-
>  hw/mips/mips_malta.c        |   2 +-
>  hw/pci-host/pam.c           |  20 ---
>  hw/pci-host/piix.c          |  39 +++---
>  hw/pci-host/q35.c           | 137 ++++++++++++++++--
>  include/exec/memattrs.h     |   4 +-
>  include/hw/acpi/acpi.h      |   3 +-
>  include/hw/acpi/ich9.h      |   4 +-
>  include/hw/i386/ich9.h      |   8 +-
>  include/hw/i386/pc.h        |   7 +-
>  include/hw/pci-host/pam.h   |   4 -
>  include/hw/pci-host/q35.h   |  36 +++--
>  include/qom/object.h        |  18 +++
>  include/sysemu/kvm.h        |   1 +
>  kvm-all.c                   |   5 +
>  kvm-stub.c                  |   5 +
>  linux-headers/asm-x86/kvm.h |  11 +-
>  linux-headers/linux/kvm.h   |   5 +-
>  linux-user/main.c           |   4 -
>  qdev-monitor.c              |  18 ++-
>  qemu-options.hx             |   7 +-
>  qom/object.c                |  16 +++
>  target-i386/Makefile.objs   |   2 -
>  target-i386/cpu-qom.h       |   3 +
>  target-i386/cpu.c           |  43 ++++++
>  target-i386/cpu.h           |  41 ++++--
>  target-i386/helper.c        | 135 +++++++++++++++---
>  target-i386/helper.h        |  12 +-
>  target-i386/ioport-user.c   |  60 --------
>  target-i386/kvm.c           |  75 ++++++++--
>  target-i386/machine.c       |   3 +
>  target-i386/misc_helper.c   |  59 ++++++--
>  target-i386/seg_helper.c    |  12 +-
>  target-i386/smm_helper.c    | 331 +++++++++++++++++++++++---------------------
>  target-i386/svm_helper.c    | 230 +++++++++++++++---------------
>  target-i386/translate.c     |  12 +-
>  tests/Makefile              |   2 +
>  tests/smram-test.c          |  80 +++++++++++
>  vl.c                        |   6 +
>  50 files changed, 1220 insertions(+), 688 deletions(-)
>  delete mode 100644 target-i386/ioport-user.c
>  create mode 100644 tests/smram-test.c
> 
> -- 
> 1.8.3.1

  parent reply	other threads:[~2015-05-31 18:10 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-11 13:48 [Qemu-devel] [PATCH 00/31] target-i386: SMM improvements and partial support under KVM Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 01/31] pc: add 2.4 machine types Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 02/31] target-i386: introduce cpu_get_mem_attrs Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 03/31] target-i386: Use correct memory attributes for memory accesses Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 04/31] target-i386: Use correct memory attributes for ioport accesses Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 05/31] target-i386: mask NMIs on entry to SMM Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 06/31] target-i386: set G=1 in SMM big real mode selectors Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 07/31] pflash_cfi01: change big-endian property to BIT type Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 08/31] pflash_cfi01: change to new-style MMIO accessors Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 09/31] pflash_cfi01: add secure property Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 10/31] vl: allow full-blown QemuOpts syntax for -global Paolo Bonzini
2015-05-19 11:49   ` Paolo Bonzini
2015-05-19 14:34     ` Markus Armbruster
2015-05-19 16:30   ` Markus Armbruster
2015-05-19 16:40     ` Paolo Bonzini
2015-06-08 18:04       ` Markus Armbruster
2015-05-11 13:48 ` [Qemu-devel] [PATCH 11/31] qom: add object_property_add_const_link Paolo Bonzini
2015-05-11 14:40   ` Laszlo Ersek
2015-05-19 11:50   ` Paolo Bonzini
2015-05-19 19:14   ` Eduardo Habkost
2015-05-20 14:36     ` Andreas Färber
2015-05-11 13:48 ` [Qemu-devel] [PATCH 12/31] vl: run "late" notifiers immediately Paolo Bonzini
2015-05-11 13:48 ` [Qemu-devel] [PATCH 13/31] target-i386: create a separate AddressSpace for each CPU Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 14/31] hw/i386: add a separate region that tracks the SMRAME bit Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 15/31] target-i386: use memory API to implement SMRAM Paolo Bonzini
2015-05-31 18:09   ` Michael S. Tsirkin
2015-06-01  7:30     ` Paolo Bonzini
2015-06-01  8:10       ` Michael S. Tsirkin
2015-06-01  8:58         ` Paolo Bonzini
2015-06-01 10:38           ` Michael S. Tsirkin
2015-05-11 13:49 ` [Qemu-devel] [PATCH 16/31] hw/i386: remove smram_update Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 17/31] q35: implement high SMRAM Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 18/31] q35: fix ESMRAMC default Paolo Bonzini
2015-05-12  6:52   ` Gerd Hoffmann
2015-05-11 13:49 ` [Qemu-devel] [PATCH 19/31] q35: add config space wmask for SMRAM and ESMRAMC Paolo Bonzini
2015-05-12  6:55   ` Gerd Hoffmann
2015-05-11 13:49 ` [Qemu-devel] [PATCH 21/31] q35: add test for SMRAM.D_LCK Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 22/31] q35: implement TSEG Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 23/31] ich9: implement SMI_LOCK Paolo Bonzini
2015-05-11 15:17   ` Laszlo Ersek
2015-05-11 15:21     ` Paolo Bonzini
2015-05-11 15:36       ` Laszlo Ersek
2015-05-11 15:45         ` Paolo Bonzini
2015-05-12  7:07   ` Gerd Hoffmann
2015-05-11 13:49 ` [Qemu-devel] [PATCH 24/31] hw/acpi: acpi_pm1_cnt_init(): take "disable_s3" and "disable_s4" Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 25/31] hw/acpi: move "etc/system-states" fw_cfg file from PIIX4 to core Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 26/31] hw/acpi: piix4_pm_init(): take fw_cfg object no more Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 27/31] target-i386: add support for SMBASE MSR and SMIs Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 28/31] vga: disable chain4_alias if KVM supports SMRAM Paolo Bonzini
2015-05-19 11:51   ` Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 29/31] pc_piix: rename kvm_enabled to smm_enabled Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 30/31] ich9: add smm_enabled field and arguments Paolo Bonzini
2015-05-11 13:49 ` [Qemu-devel] [PATCH 31/31] pc: add SMM property Paolo Bonzini
     [not found] ` <1431352157-40283-21-git-send-email-pbonzini@redhat.com>
2015-05-12  6:59   ` [Qemu-devel] [PATCH 20/31] q35: implement SMRAM.D_LCK Gerd Hoffmann
2015-05-31 18:10 ` Michael S. Tsirkin [this message]
2015-06-01  7:32   ` [Qemu-devel] [PATCH 00/31] target-i386: SMM improvements and partial support under KVM Paolo Bonzini
2015-06-01  7:51     ` Michael S. Tsirkin
2015-06-01  8:56       ` Paolo Bonzini

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=20150531181027.GB5268@redhat.com \
    --to=mst@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=lersek@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.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.