qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] c3543f: esp-pci: fixup deadlock with linux


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] c3543f: esp-pci: fixup deadlock with linux
Date: Thu, 13 Nov 2014 09:00:08 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: c3543fb5fe4520f03dd4fef04fab7745eeca1c96
      
https://github.com/qemu/qemu/commit/c3543fb5fe4520f03dd4fef04fab7745eeca1c96
  Author: Hannes Reinecke <address@hidden>
  Date:   2014-11-07 (Fri, 07 Nov 2014)

  Changed paths:
    M hw/scsi/esp-pci.c

  Log Message:
  -----------
  esp-pci: fixup deadlock with linux

A linux guest will be issuing messages:

[   32.124042] DC390: Deadlock in DataIn_0: DMA aborted unfinished: 000000 
bytes remain!!
[   32.126348] DC390: DataIn_0: DMA State: 0

and the HBA will fail to work properly.
Reason is the emulation is not setting the 'DMA transfer done'
status correctly.

Signed-off-by: Hannes Reinecke <address@hidden>
Cc: address@hidden
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 55783a5521a3b1f93ee6a072e414a27c6cfa15f0
      
https://github.com/qemu/qemu/commit/55783a5521a3b1f93ee6a072e414a27c6cfa15f0
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-11-07 (Fri, 07 Nov 2014)

  Changed paths:
    M hw/scsi/virtio-scsi.c

  Log Message:
  -----------
  virtio-scsi: work around bug in old BIOSes

Old BIOSes left some padding by mistake after the req_size/resp_size.
New QEMU does not like it, thinking it is a bidirectional command.

As a workaround, we can check if the ANY_LAYOUT bit is set; if not, we
always consider the first buffer as the virtio-scsi request/response,
because, back when QEMU did not support ANY_LAYOUT, it expected the
payload to start at the second element of the iovec.

This can show up during migration.

Cc: address@hidden
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 25aaa2c568a11bd79b7b83c857278232f6fa7be6
      
https://github.com/qemu/qemu/commit/25aaa2c568a11bd79b7b83c857278232f6fa7be6
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-11-10 (Mon, 10 Nov 2014)

  Changed paths:
    M hw/scsi/esp-pci.c

  Log Message:
  -----------
  esp: fix coding standards

Reported-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: ed4b43265d4d0c7ecfbbcb4001f61700756f22b9
      
https://github.com/qemu/qemu/commit/ed4b43265d4d0c7ecfbbcb4001f61700756f22b9
  Author: Ming Lei <address@hidden>
  Date:   2014-11-11 (Tue, 11 Nov 2014)

  Changed paths:
    M hw/scsi/virtio-scsi-dataplane.c

  Log Message:
  -----------
  virtio-scsi: dataplane: fix allocation for 'cmd_vrings'

The size of each element should be sizeof(VirtIOSCSIVring *).

Signed-off-by: Ming Lei <address@hidden>
Reviewed-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: c9cf45c1a475e594c560862d9df35b16e3a42702
      
https://github.com/qemu/qemu/commit/c9cf45c1a475e594c560862d9df35b16e3a42702
  Author: Hannes Reinecke <address@hidden>
  Date:   2014-11-12 (Wed, 12 Nov 2014)

  Changed paths:
    M hw/scsi/esp.c
    M include/hw/scsi/esp.h

  Log Message:
  -----------
  esp: Do not overwrite ESP_TCHI after reset

After a reset ESP_TCHI should contain the unique ID
of the chip. This value will be overwritten with the
current tranfer count if the transfer count has
previously been set.
So we should always return the chip id if ESP_TCHI
has never been written to.

Signed-off-by: Hannes Reinecke <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 6012ca8159a7f78e6fc5122a8e9f22d82e9723e9
      
https://github.com/qemu/qemu/commit/6012ca8159a7f78e6fc5122a8e9f22d82e9723e9
  Author: Ming Lei <address@hidden>
  Date:   2014-11-12 (Wed, 12 Nov 2014)

  Changed paths:
    M hw/scsi/virtio-scsi-dataplane.c

  Log Message:
  -----------
  virtio-scsi: dataplane: suppress guest notification

This patch uses vring_should_notify() to suppress
guest notification, and looks notification frequency
can be decreased from ~33K/sec to ~2K/sec in my test
environment.

Suggested-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Ming Lei <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: f69c11158509e91c29f01e48ace8af227827411a
      
https://github.com/qemu/qemu/commit/f69c11158509e91c29f01e48ace8af227827411a
  Author: Fam Zheng <address@hidden>
  Date:   2014-11-12 (Wed, 12 Nov 2014)

  Changed paths:
    M include/hw/virtio/virtio-scsi.h

  Log Message:
  -----------
  virtio-scsi: Fix comment for VirtIOSCSIReq

The cdb is not zeroed by virtio_scsi_init_req, so fix the misleading
comment.

Suggested-by: Markus Armbruster <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: ae67dc72e4f19238941894227d96b6201d71a70a
      
https://github.com/qemu/qemu/commit/ae67dc72e4f19238941894227d96b6201d71a70a
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-11-12 (Wed, 12 Nov 2014)

  Changed paths:
    M target-i386/seg_helper.c

  Log Message:
  -----------
  target-i386: eliminate dead code and hoist common code out of "if"

ist != 0 is checked in the first "if", so it cannot be true in
the "else if" part.  While at it, simplify the code and move
the ESP alignment out of the conditionals.

Reported by Coverity.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: c2c00148ec54f77c9432fec16585834e1d677fda
      
https://github.com/qemu/qemu/commit/c2c00148ec54f77c9432fec16585834e1d677fda
  Author: Pavel Dovgalyuk <address@hidden>
  Date:   2014-11-13 (Thu, 13 Nov 2014)

  Changed paths:
    M hw/i386/kvm/apic.c
    M hw/intc/apic_common.c

  Log Message:
  -----------
  apic_common: migrate missing fields

This patch adds missed sipi_vector and wait_for_sipi fields to a new
subsection of the vmstate of the apic_common module. Saving and loading
of these fields makes migration of the apic state deterministic.

Signed-off-by: Pavel Dovgalyuk <address@hidden>
[Initialize the field in pre_load and kvm_apic_realize. - Paolo]
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: e6a33e45c270ea024929f4afb49283d610577af3
      
https://github.com/qemu/qemu/commit/e6a33e45c270ea024929f4afb49283d610577af3
  Author: Paolo Bonzini <address@hidden>
  Date:   2014-11-13 (Thu, 13 Nov 2014)

  Changed paths:
    M target-i386/cpu.h

  Log Message:
  -----------
  target-i386: fix Coverity complaints about overflows

sipi_vector is an int; it is shifted by 12 and passed as a 64-bit value,
which makes Coverity think that we wanted (uint64_t)sipi_vector << 12.

But actually it must be between 0 and 255.  Make this explicit.

Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 1154d84dcc5f46e83db94281d071775819dd8884
      
https://github.com/qemu/qemu/commit/1154d84dcc5f46e83db94281d071775819dd8884
  Author: Eduardo Habkost <address@hidden>
  Date:   2014-11-13 (Thu, 13 Nov 2014)

  Changed paths:
    M hw/i386/kvm/clock.c

  Log Message:
  -----------
  kvmclock: Add comment explaining why we need cpu_clean_all_dirty()

Try to explain why commit 317b0a6d8ba44e9bf8f9c3dbd776c4536843d82c
needed a cpu_clean_all_dirty() call just after calling
cpu_synchronize_all_states().

Signed-off-by: Eduardo Habkost <address@hidden>
Cc: Andrey Korolyov <address@hidden>
Cc: Marcin Gibuła <address@hidden>
Cc: Marcelo Tosatti <address@hidden>
Cc: Paolo Bonzini <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: f4ec5cd29d1f0d3a265039767399d2cf3e75950b
      
https://github.com/qemu/qemu/commit/f4ec5cd29d1f0d3a265039767399d2cf3e75950b
  Author: SeokYeon Hwang <address@hidden>
  Date:   2014-11-13 (Thu, 13 Nov 2014)

  Changed paths:
    M hw/i386/smbios.c

  Log Message:
  -----------
  smbios: change 'ram_addr_t' variables to 'uint64_t'

ram_addr_t should not be used except if referring to a RAMBlobk.
Using 'uint64_t' avoids a -Wconstant-conversion warning, which
clang >= 3.4 produces in "smbios_get_tables()".

Signed-off-by: SeokYeon Hwang <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: 3ef0eab178e5120a0e1c079d163d5c71689d9b71
      
https://github.com/qemu/qemu/commit/3ef0eab178e5120a0e1c079d163d5c71689d9b71
  Author: Pavel Dovgalyuk <address@hidden>
  Date:   2014-11-13 (Thu, 13 Nov 2014)

  Changed paths:
    M hw/acpi/core.c

  Log Message:
  -----------
  acpi: accurate overflow check

Compare clock in ns, because acpi_pm_tmr_update uses rounded
to ns value instead of ticks.

Signed-off-by: Pavel Dovgalyuk <address@hidden>
[This lets Windows boot in icount mode. - Paolo]
Signed-off-by: Paolo Bonzini <address@hidden>


  Commit: c52e67924fbdadfa00668248f5c075542943c54c
      
https://github.com/qemu/qemu/commit/c52e67924fbdadfa00668248f5c075542943c54c
  Author: Peter Maydell <address@hidden>
  Date:   2014-11-13 (Thu, 13 Nov 2014)

  Changed paths:
    M hw/acpi/core.c
    M hw/i386/kvm/apic.c
    M hw/i386/kvm/clock.c
    M hw/i386/smbios.c
    M hw/intc/apic_common.c
    M hw/scsi/esp-pci.c
    M hw/scsi/esp.c
    M hw/scsi/virtio-scsi-dataplane.c
    M hw/scsi/virtio-scsi.c
    M include/hw/scsi/esp.h
    M include/hw/virtio/virtio-scsi.h
    M target-i386/cpu.h
    M target-i386/seg_helper.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging

x86 and SCSI fixes.  I left out the APIC device model
patches, pending confirmation from the submitter that they really
fix QNX.

# gpg: Signature made Thu 13 Nov 2014 15:13:38 GMT using RSA key ID 78C7AE83
# gpg: Good signature from "Paolo Bonzini <address@hidden>"
# gpg:                 aka "Paolo Bonzini <address@hidden>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
#      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83

* remotes/bonzini/tags/for-upstream:
  acpi: accurate overflow check
  smbios: change 'ram_addr_t' variables to 'uint64_t'
  kvmclock: Add comment explaining why we need cpu_clean_all_dirty()
  target-i386: fix Coverity complaints about overflows
  apic_common: migrate missing fields
  target-i386: eliminate dead code and hoist common code out of "if"
  virtio-scsi: Fix comment for VirtIOSCSIReq
  virtio-scsi: dataplane: suppress guest notification
  esp: Do not overwrite ESP_TCHI after reset
  virtio-scsi: dataplane: fix allocation for 'cmd_vrings'
  esp: fix coding standards
  virtio-scsi: work around bug in old BIOSes
  esp-pci: fixup deadlock with linux

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


Compare: https://github.com/qemu/qemu/compare/b56cb288954d...c52e67924fbd

reply via email to

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