qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 6af947: ipmi: Fix watchdog NMI handling


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 6af947: ipmi: Fix watchdog NMI handling
Date: Mon, 23 Sep 2019 03:41:11 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 6af94767daf6364dcc74d70f494fe0dda795824f
      
https://github.com/qemu/qemu/commit/6af94767daf6364dcc74d70f494fe0dda795824f
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/ipmi/ipmi.c
    M hw/ipmi/ipmi_bmc_sim.c

  Log Message:
  -----------
  ipmi: Fix watchdog NMI handling

The wrong logic was used for detection (so it wouldn't work at all)
and the wrong interface was used to inject the NMI if the detection
logic was correct.

Signed-off-by: Corey Minyard <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>


  Commit: fb45770bf55ef1d50369c433b19d908260d5a986
      
https://github.com/qemu/qemu/commit/fb45770bf55ef1d50369c433b19d908260d5a986
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/ipmi/ipmi_bmc_sim.c

  Log Message:
  -----------
  ipmi: Fix the get watchdog command

It wasn't returning the set timeout like it should have been.

Signed-off-by: Corey Minyard <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>


  Commit: 8bc8af69123ee765fe4f9b835a99f6ef5d693973
      
https://github.com/qemu/qemu/commit/8bc8af69123ee765fe4f9b835a99f6ef5d693973
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/ipmi/ipmi_bmc_sim.c

  Log Message:
  -----------
  ipmi: Generate an interrupt on watchdog pretimeout expiry

Add the watchdog pretimeout to the bits that cause an interrupt on attn.
Otherwise the user won't know.

Signed-off-by: Corey Minyard <address@hidden>


  Commit: 77cd44b9ec57f69d8e99cdc8f3ea7af2ff96fc55
      
https://github.com/qemu/qemu/commit/77cd44b9ec57f69d8e99cdc8f3ea7af2ff96fc55
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M tests/Makefile.include
    M tests/ipmi-bt-test.c

  Log Message:
  -----------
  tests:ipmi: Fix IPMI BT tests

The IPMI BT tests had a race condition, if it receive an IPMI command
to enable interrupt, it would write the message to enable interrupts
after it wrote the command response.  So the test code could
receive the command response and issue the next command before the
device handled the interrupt enable command, and thus no interrupt.

So send the message to enable interrupt before the command response.

Also add some sleeps to give qemu time to handle responses, there was
no delay before, and it could result in an invalid timeout.

And re-enable the tests, as hopefully they are fixed now.

Note that I was unable to reproduce this even with the instructions
Peter gave me, but hopefully this fixes the issue.

Cc: Peter Maydell <address@hidden>
Signed-off-by: Corey Minyard <address@hidden>


  Commit: a65f4d4028de99ce172ffa3c18095b4f1bf7ee45
      
https://github.com/qemu/qemu/commit/a65f4d4028de99ce172ffa3c18095b4f1bf7ee45
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M include/hw/qdev-properties.h

  Log Message:
  -----------
  qdev: Add a no default uuid property

This is for IPMI, which will behave differently if the UUID is
not set.

Signed-off-by: Corey Minyard <address@hidden>
Cc: Fam Zheng <address@hidden>
Cc: Michael S. Tsirkin <address@hidden>
Cc: Marc-André Lureau <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>


  Commit: 7b0cd78bf72368b71e6ffa7a8b8f5e57a2e65b5d
      
https://github.com/qemu/qemu/commit/7b0cd78bf72368b71e6ffa7a8b8f5e57a2e65b5d
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/ipmi/ipmi_bmc_sim.c
    M qemu-options.hx

  Log Message:
  -----------
  ipmi: Add a UUID device property

Using the UUID that qemu generates probably isn't the best thing
to do, allow it to be passed in via properties, and use QemuUUID
for the type.

If the UUID is not set, return an unsupported command error.  This
way we are not providing an all-zero (or randomly generated) GUID
to the IPMI user.  This lets the host fall back to the other
method of using the get device id command to determind the BMC
being accessed.

Signed-off-by: Corey Minyard <address@hidden>
Cc: Cédric Le Goater <address@hidden>
Cc: David Gibson <address@hidden>
Cc: Michael S. Tsirkin <address@hidden>
Cc: Paolo Bonzini <address@hidden>


  Commit: 0f310cd6e1218728ddba54afdfbddc66e2db0012
      
https://github.com/qemu/qemu/commit/0f310cd6e1218728ddba54afdfbddc66e2db0012
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/ipmi/Makefile.objs
    A hw/ipmi/ipmi_kcs.c
    M hw/ipmi/isa_ipmi_kcs.c
    A include/hw/ipmi/ipmi_kcs.h

  Log Message:
  -----------
  ipmi: Split out KCS-specific code from ISA KCS code

Get ready for PCI and other KCS interfaces.

No functional changes, just split the code into the generic KCS code
and the ISA-specific code.

Signed-off-by: Corey Minyard <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 1739d54c8bea120897e6170a3807ab8633c6d460
      
https://github.com/qemu/qemu/commit/1739d54c8bea120897e6170a3807ab8633c6d460
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/ipmi/Makefile.objs
    A hw/ipmi/ipmi_bt.c
    M hw/ipmi/isa_ipmi_bt.c
    A include/hw/ipmi/ipmi_bt.h

  Log Message:
  -----------
  ipmi: Split out BT-specific code from ISA BT code

Get ready for PCI and other BT interfaces.

No functional changes, just split the code into generic BT code
and ISA-specific BT code.

Signed-off-by: Corey Minyard <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


  Commit: 79d29a9d065d25f7f9da0dfca8ac9b6f1989978c
      
https://github.com/qemu/qemu/commit/79d29a9d065d25f7f9da0dfca8ac9b6f1989978c
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/ipmi/ipmi_bt.c
    M hw/ipmi/ipmi_kcs.c
    M hw/ipmi/isa_ipmi_bt.c
    M hw/ipmi/isa_ipmi_kcs.c
    M include/hw/ipmi/ipmi.h
    M include/hw/ipmi/ipmi_bt.h
    M include/hw/ipmi/ipmi_kcs.h

  Log Message:
  -----------
  ipmi: Allow a size value to be passed for I/O space

PCI device I/O must be >= 8 bytes in length or they don't work.
Allow the size to be passed in, the default size of 2 or 3
won't work.

Signed-off-by: Corey Minyard <address@hidden>


  Commit: bfff1a6d42537acbb419388c542e3a95d66a15a4
      
https://github.com/qemu/qemu/commit/bfff1a6d42537acbb419388c542e3a95d66a15a4
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/smbios/smbios_type_38.c

  Log Message:
  -----------
  smbios:ipmi: Ignore IPMI devices with no fwinfo function

Not all devices have fwinfo (like the coming PCI one), so ignore
them if the their fwinfo function is NULL.

Cc: Michael S. Tsirkin <address@hidden>
Cc: Igor Mammedov <address@hidden>
Signed-off-by: Corey Minyard <address@hidden>


  Commit: 12f983c6aa165bc85ac061856cb3970d80ee25b4
      
https://github.com/qemu/qemu/commit/12f983c6aa165bc85ac061856cb3970d80ee25b4
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M default-configs/i386-softmmu.mak
    M hw/i386/Kconfig
    M hw/ipmi/Kconfig
    M hw/ipmi/Makefile.objs
    A hw/ipmi/pci_ipmi_bt.c
    A hw/ipmi/pci_ipmi_kcs.c
    M include/hw/pci/pci.h

  Log Message:
  -----------
  ipmi: Add PCI IPMI interfaces

Pretty straightforward, just hook the current KCS and BT code into
the PCI system with the proper configuration.

Cc: Michael S. Tsirkin <address@hidden>
Cc: M: Marcel Apfelbaum <address@hidden>
Signed-off-by: Corey Minyard <address@hidden>


  Commit: 38033052f64026e53f2718b05cad45df5b59f2f4
      
https://github.com/qemu/qemu/commit/38033052f64026e53f2718b05cad45df5b59f2f4
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M default-configs/i386-softmmu.mak
    M hw/i386/Kconfig
    M hw/ipmi/Kconfig
    M hw/ipmi/Makefile.objs
    A hw/ipmi/smbus_ipmi.c

  Log Message:
  -----------
  ipmi: Add an SMBus IPMI interface

Signed-off-by: Corey Minyard <address@hidden>


  Commit: ef48a8ce411a93bd610776ee83164efc973f8094
      
https://github.com/qemu/qemu/commit/ef48a8ce411a93bd610776ee83164efc973f8094
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/acpi/aml-build.c
    M include/hw/acpi/aml-build.h

  Log Message:
  -----------
  acpi: Add i2c serial bus CRS handling

This will be required for getting IPMI SSIF (SMBus interface) into
the ACPI tables.

Cc: Michael S. Tsirkin <address@hidden>
Cc: Igor Mammedov <address@hidden>
Signed-off-by: Corey Minyard <address@hidden>


  Commit: 576d05b67fa0566cfb92da93c810a55a035548d0
      
https://github.com/qemu/qemu/commit/576d05b67fa0566cfb92da93c810a55a035548d0
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/acpi/ipmi-stub.c
    M hw/acpi/ipmi.c
    M hw/i386/acpi-build.c
    M include/hw/acpi/ipmi.h

  Log Message:
  -----------
  ipmi: Fix SSIF ACPI handling to use the right CRS

Pass in the CRS so that it can be set to the SMBus for IPMI later.

Cc: Michael S. Tsirkin <address@hidden>
Cc: Igor Mammedov <address@hidden>
Signed-off-by: Corey Minyard <address@hidden>


  Commit: ebe15582cafeb944a1c6e99aa526e81a1551c567
      
https://github.com/qemu/qemu/commit/ebe15582cafeb944a1c6e99aa526e81a1551c567
  Author: Corey Minyard <address@hidden>
  Date:   2019-09-20 (Fri, 20 Sep 2019)

  Changed paths:
    M hw/i386/acpi-build.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M include/hw/i386/pc.h
    M tests/data/acpi/q35/DSDT
    M tests/data/acpi/q35/DSDT.bridge
    M tests/data/acpi/q35/DSDT.cphp
    M tests/data/acpi/q35/DSDT.dimmpxm
    M tests/data/acpi/q35/DSDT.ipmibt
    M tests/data/acpi/q35/DSDT.memhp
    M tests/data/acpi/q35/DSDT.mmio64
    M tests/data/acpi/q35/DSDT.numamem

  Log Message:
  -----------
  pc: Add an SMB0 ACPI device to q35

This is so I2C devices can be found in the ACPI namespace.  Currently
that's only IPMI, but devices can be easily added now.

Adding the devices required some PCI information, and the bus itself
to be added to the PCMachineState structure.

Note that this only works on Q35, the ACPI for PIIX4 is not capable
of handling an SMBus device.

Cc: Michael S. Tsirkin <address@hidden>
Cc: Igor Mammedov <address@hidden>
Signed-off-by: Corey Minyard <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>


  Commit: e446ed5a29d1a39b257bd78fc193ab8a69ec81c2
      
https://github.com/qemu/qemu/commit/e446ed5a29d1a39b257bd78fc193ab8a69ec81c2
  Author: Peter Maydell <address@hidden>
  Date:   2019-09-23 (Mon, 23 Sep 2019)

  Changed paths:
    M default-configs/i386-softmmu.mak
    M hw/acpi/aml-build.c
    M hw/acpi/ipmi-stub.c
    M hw/acpi/ipmi.c
    M hw/i386/Kconfig
    M hw/i386/acpi-build.c
    M hw/i386/pc_piix.c
    M hw/i386/pc_q35.c
    M hw/ipmi/Kconfig
    M hw/ipmi/Makefile.objs
    M hw/ipmi/ipmi.c
    M hw/ipmi/ipmi_bmc_sim.c
    A hw/ipmi/ipmi_bt.c
    A hw/ipmi/ipmi_kcs.c
    M hw/ipmi/isa_ipmi_bt.c
    M hw/ipmi/isa_ipmi_kcs.c
    A hw/ipmi/pci_ipmi_bt.c
    A hw/ipmi/pci_ipmi_kcs.c
    A hw/ipmi/smbus_ipmi.c
    M hw/smbios/smbios_type_38.c
    M include/hw/acpi/aml-build.h
    M include/hw/acpi/ipmi.h
    M include/hw/i386/pc.h
    M include/hw/ipmi/ipmi.h
    A include/hw/ipmi/ipmi_bt.h
    A include/hw/ipmi/ipmi_kcs.h
    M include/hw/pci/pci.h
    M include/hw/qdev-properties.h
    M qemu-options.hx
    M tests/Makefile.include
    M tests/data/acpi/q35/DSDT
    M tests/data/acpi/q35/DSDT.bridge
    M tests/data/acpi/q35/DSDT.cphp
    M tests/data/acpi/q35/DSDT.dimmpxm
    M tests/data/acpi/q35/DSDT.ipmibt
    M tests/data/acpi/q35/DSDT.memhp
    M tests/data/acpi/q35/DSDT.mmio64
    M tests/data/acpi/q35/DSDT.numamem
    M tests/ipmi-bt-test.c

  Log Message:
  -----------
  Merge remote-tracking branch 
'remotes/cminyard/tags/ipmi-for-release-2019-09-20' into staging

ipmi: Some bug fixes and new interfaces

Some bug fixes for the watchdog and hopeful the BT tests.

Change the IPMI UUID handling to give the user the ability to set it or
not have it.

Add a PCI interface.

Add an SMBus interfaces.

-corey

# gpg: Signature made Fri 20 Sep 2019 20:11:21 BST
# gpg:                using RSA key FD0D5CE67CE0F59A6688268661F38C90919BFF81
# gpg: Good signature from "Corey Minyard <address@hidden>" [unknown]
# gpg:                 aka "Corey Minyard <address@hidden>" [unknown]
# gpg:                 aka "Corey Minyard <address@hidden>" [unknown]
# gpg:                 aka "Corey Minyard <address@hidden>" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: FD0D 5CE6 7CE0 F59A 6688  2686 61F3 8C90 919B FF81

* remotes/cminyard/tags/ipmi-for-release-2019-09-20:
  pc: Add an SMB0 ACPI device to q35
  ipmi: Fix SSIF ACPI handling to use the right CRS
  acpi: Add i2c serial bus CRS handling
  ipmi: Add an SMBus IPMI interface
  ipmi: Add PCI IPMI interfaces
  smbios:ipmi: Ignore IPMI devices with no fwinfo function
  ipmi: Allow a size value to be passed for I/O space
  ipmi: Split out BT-specific code from ISA BT code
  ipmi: Split out KCS-specific code from ISA KCS code
  ipmi: Add a UUID device property
  qdev: Add a no default uuid property
  tests:ipmi: Fix IPMI BT tests
  ipmi: Generate an interrupt on watchdog pretimeout expiry
  ipmi: Fix the get watchdog command
  ipmi: Fix watchdog NMI handling

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/4300b7c2cd9f...e446ed5a29d1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]