qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 4a94b3: pci: fix pci_requester_id()


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 4a94b3: pci: fix pci_requester_id()
Date: Fri, 17 Jun 2016 05:00:04 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 4a94b3aa6d97dfa67a20c7a0315c9773352f0e8e
      
https://github.com/qemu/qemu/commit/4a94b3aa6d97dfa67a20c7a0315c9773352f0e8e
  Author: Peter Xu <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M hw/i386/kvm/pci-assign.c
    M hw/pci/pci.c
    M include/hw/pci/pci.h

  Log Message:
  -----------
  pci: fix pci_requester_id()

This fix SID verification failure when IOMMU IR is enabled with PCI
bridges. Existing pci_requester_id() is more like getting BDF info
only. Renaming it to pci_get_bdf(). Meanwhile, we provide the correct
implementation to get requester ID. VT-d spec 5.1.1 is a good reference
to go, though it talks only about interrupt delivery, the rule works
exactly the same for non-interrupt cases.

Currently, there are three use cases for pci_requester_id():

- PCIX status bits: here we need BDF only, not requester ID. Replacing
  with pci_get_bdf().
- PCIe Error injection and MSI delivery: for both these cases, we are
  looking for requester IDs. Here we should use the new impl.

To avoid a PCI walk every time we send MSI message, one requester_id
cache field is added to PCIDevice to cache the result when initialize
PCI device.

Signed-off-by: Peter Xu <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Tested-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: a6553598be42e3be899acdb153fd615cd6c3eab8
      
https://github.com/qemu/qemu/commit/a6553598be42e3be899acdb153fd615cd6c3eab8
  Author: Tetsuya Mukawa <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M net/vhost-user.c

  Log Message:
  -----------
  vhost-user: add ability to know vhost-user backend disconnection

Current QEMU cannot detect vhost-user backend disconnection. The
patch adds ability to know it.
To know disconnection, add watcher to detect G_IO_HUP event. When
G_IO_HUP event is detected, the disconnected socket will be read
to cause a CHR_EVENT_CLOSED.

Signed-off-by: Tetsuya Mukawa <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Tested-by: Yuanhan Liu <address@hidden>
Reviewed-by: Yuanhan Liu <address@hidden>
Reviewed-by: Victor Kaplansky <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: aef8486ede8ba493c3e5a031a7bce1850d1ebbe4
      
https://github.com/qemu/qemu/commit/aef8486ede8ba493c3e5a031a7bce1850d1ebbe4
  Author: Marc-André Lureau <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M tests/vhost-user-bridge.c

  Log Message:
  -----------
  tests/vhost-user-bridge: add client mode

If -c is specified, vubr will try to connect to the socket instead of
listening for connections.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Yuanhan Liu <address@hidden>
Reviewed-by: Yuanhan Liu <address@hidden>
Reviewed-by: Victor Kaplansky <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 523b018dde3b7650fe5401d0499b30cf2f117515
      
https://github.com/qemu/qemu/commit/523b018dde3b7650fe5401d0499b30cf2f117515
  Author: Marc-André Lureau <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M tests/vhost-user-bridge.c

  Log Message:
  -----------
  tests/vhost-user-bridge: workaround stale vring base

This patch is a similar solution to what Yuanhan Liu/Huawei Xie have
suggested for DPDK. When vubr quits (killed or crashed), a restart of
vubr would get stale vring base from QEMU. That would break the kernel
virtio net completely, making it non-work any more, unless a driver
reset is done.

So, instead of getting the stale vring base from QEMU, Huawei suggested
we could get a proper one from used->idx. This works because the queues
packets are processed in order.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Yuanhan Liu <address@hidden>
Reviewed-by: Yuanhan Liu <address@hidden>
Reviewed-by: Victor Kaplansky <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 7d9d17f71e580218629a91f72eeef4db1c96b0ae
      
https://github.com/qemu/qemu/commit/7d9d17f71e580218629a91f72eeef4db1c96b0ae
  Author: Tetsuya Mukawa <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M include/sysemu/char.h
    M qemu-char.c

  Log Message:
  -----------
  qemu-char: add qemu_chr_disconnect to close a fd accepted by listen fd

The patch introduces qemu_chr_disconnect(). The function is used for
closing a fd accepted by listen fd. Though we already have qemu_chr_delete(),
but it closes not only accepted fd but also listen fd. This new function
is used when we still want to keep listen fd.

Signed-off-by: Tetsuya Mukawa <address@hidden>
Reviewed-by: Marc-André Lureau <address@hidden>
Tested-by: Yuanhan Liu <address@hidden>
Reviewed-by: Yuanhan Liu <address@hidden>
Reviewed-by: Victor Kaplansky <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 0d572afd5266d1d67d132d06ea45d7246bcd6105
      
https://github.com/qemu/qemu/commit/0d572afd5266d1d67d132d06ea45d7246bcd6105
  Author: Marc-André Lureau <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M net/vhost-user.c

  Log Message:
  -----------
  vhost-user: disconnect on start failure

If the backend failed to start (for example feature negociation failed),
do not exit, but disconnect the char device instead. Slightly more
robust for reconnect case.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Yuanhan Liu <address@hidden>
Reviewed-by: Yuanhan Liu <address@hidden>
Reviewed-by: Victor Kaplansky <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 72b65f922b7b925ed67847017dcd0539e49d925f
      
https://github.com/qemu/qemu/commit/72b65f922b7b925ed67847017dcd0539e49d925f
  Author: Marc-André Lureau <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M hw/net/vhost_net.c

  Log Message:
  -----------
  vhost-net: do not crash if backend is not present

Do not crash when backend is not present while enabling the ring. A
following patch will save the enabled state so it can be restored once
the backend is started.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Yuanhan Liu <address@hidden>
Reviewed-by: Yuanhan Liu <address@hidden>
Reviewed-by: Victor Kaplansky <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: a463215b087c41d7ca94e51aa347cde523831873
      
https://github.com/qemu/qemu/commit/a463215b087c41d7ca94e51aa347cde523831873
  Author: Marc-André Lureau <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M hw/net/vhost_net.c
    M include/net/vhost-user.h
    M include/net/vhost_net.h
    M net/vhost-user.c

  Log Message:
  -----------
  vhost-net: save & restore vhost-user acked features

The initial vhost-user connection sets the features to be negotiated
with the driver. Renegotiation isn't possible without device reset.

To handle reconnection of vhost-user backend, ensure the same set of
features are provided, and reuse already acked features.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Yuanhan Liu <address@hidden>
Reviewed-by: Yuanhan Liu <address@hidden>
Reviewed-by: Victor Kaplansky <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: bfc6cf31ce12649b32dae0430fcbdb456fe6faf8
      
https://github.com/qemu/qemu/commit/bfc6cf31ce12649b32dae0430fcbdb456fe6faf8
  Author: Marc-André Lureau <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M hw/net/vhost_net.c
    M include/net/net.h

  Log Message:
  -----------
  vhost-net: save & restore vring enable state

A driver may change the vring enable state at run time but vhost-user
backend may not be present (a contrived example is when the backend is
disconnected and the device is reconfigured after driver rebinding)

Restore the vring state when the vhost-user backend is started, so it
can process the ring.

Signed-off-by: Marc-André Lureau <address@hidden>
Tested-by: Yuanhan Liu <address@hidden>
Reviewed-by: Yuanhan Liu <address@hidden>
Reviewed-by: Victor Kaplansky <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 0ee2e9daf8fd81d59f0ce67e251dfa9599252b7e
      
https://github.com/qemu/qemu/commit/0ee2e9daf8fd81d59f0ce67e251dfa9599252b7e
  Author: Marc-André Lureau <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M tests/Makefile.include

  Log Message:
  -----------
  tests: append i386 tests

Do not overwrite x86-64 tests, re-enable vhost-user-test.

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Reviewed-by: Victor Kaplansky <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 4616e3592ba62dd44d62babd84b23f84f6b33ddb
      
https://github.com/qemu/qemu/commit/4616e3592ba62dd44d62babd84b23f84f6b33ddb
  Author: Marc-André Lureau <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M tests/vhost-user-test.c

  Log Message:
  -----------
  test: start vhost-user reconnect test

This is a simple reconnect test, that simply checks if vhost-user
reconnection is possible and restore the state. A more complete test
would actually manipulate and check the ring contents (such extended
testing would benefit from the libvhost-user proposed in QEMU list to
avoid duplication of ring manipulations)

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Victor Kaplansky <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 97fe42f19b989ecfd0c6a23b9c09dbc7159c7602
      
https://github.com/qemu/qemu/commit/97fe42f19b989ecfd0c6a23b9c09dbc7159c7602
  Author: Cao jin <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M hw/pci/pci.c

  Log Message:
  -----------
  pci core: assert ENOSPC when add capability

ENOSPC is programming error, assert it for debugging.

cc: Michael S. Tsirkin <address@hidden>
cc: Marcel Apfelbaum <address@hidden>
cc: Markus Armbruster <address@hidden>

Reviewed-by: Markus Armbruster <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Cao jin <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 52ea63dea465575ccd71d52c3461b1b7d9f50ce0
      
https://github.com/qemu/qemu/commit/52ea63dea465575ccd71d52c3461b1b7d9f50ce0
  Author: Cao jin <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M hw/net/vmxnet3.c
    M hw/pci-bridge/ioh3420.c
    M hw/pci-bridge/pci_bridge_dev.c
    M hw/pci-bridge/xio3130_downstream.c
    M hw/pci-bridge/xio3130_upstream.c
    M hw/pci/msi.c

  Log Message:
  -----------
  fix some coding style problems

It has:
1. More newlines make the code block well separated.
2. Add more comments for msi_init.
3. Fix a indentation in vmxnet3.c.
4. ioh3420 & xio3130_downstream: put PCI Express capability init function
   together, make it more readable.

cc: Michael S. Tsirkin <address@hidden>
cc: Markus Armbruster <address@hidden>
cc: Marcel Apfelbaum <address@hidden>
cc: Dmitry Fleytman <address@hidden>
cc: Jason Wang <address@hidden>

Reviewed-by: Markus Armbruster <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Signed-off-by: Cao jin <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 2cbb1a6826ee651ad2bef52cbcef1427b911def2
      
https://github.com/qemu/qemu/commit/2cbb1a6826ee651ad2bef52cbcef1427b911def2
  Author: Cao jin <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M hw/pci/msi.c

  Log Message:
  -----------
  msi_init: change return value to 0 on success

No caller use its return value as msi capability offset, also in order
to make its return behaviour consistent with msix_init().

cc: Michael S. Tsirkin <address@hidden>
cc: Paolo Bonzini <address@hidden>
cc: Hannes Reinecke <address@hidden>
cc: Markus Armbruster <address@hidden>
cc: Marcel Apfelbaum <address@hidden>

Acked-by: Hannes Reinecke <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Cao jin <address@hidden>
Reviewed-by: Markus Armbruster <address@hidden>
Reviewed-by: Marcel Apfelbaum <address@hidden>
Reviewed-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 874a2358307ce9d0466b0f559d33d422f9d4976d
      
https://github.com/qemu/qemu/commit/874a2358307ce9d0466b0f559d33d422f9d4976d
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: add Marcel to PCI

Marcel is reviewing PCI patches anyway, things will
be easier if people remember to Cc him.

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


  Commit: 7263a903c361edd174946a4708374f5aa6c6b834
      
https://github.com/qemu/qemu/commit/7263a903c361edd174946a4708374f5aa6c6b834
  Author: Peter Maydell <address@hidden>
  Date:   2016-06-17 (Fri, 17 Jun 2016)

  Changed paths:
    M MAINTAINERS
    M hw/i386/kvm/pci-assign.c
    M hw/net/vhost_net.c
    M hw/net/vmxnet3.c
    M hw/pci-bridge/ioh3420.c
    M hw/pci-bridge/pci_bridge_dev.c
    M hw/pci-bridge/xio3130_downstream.c
    M hw/pci-bridge/xio3130_upstream.c
    M hw/pci/msi.c
    M hw/pci/pci.c
    M include/hw/pci/pci.h
    M include/net/net.h
    M include/net/vhost-user.h
    M include/net/vhost_net.h
    M include/sysemu/char.h
    M net/vhost-user.c
    M qemu-char.c
    M tests/Makefile.include
    M tests/vhost-user-bridge.c
    M tests/vhost-user-test.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging

pc, pci, virtio: new features, cleanups, fixes

Beginning of reconnect support for vhost-user.
Misc cleanups and fixes.

Signed-off-by: Michael S. Tsirkin <address@hidden>

# gpg: Signature made Fri 17 Jun 2016 01:28:39 BST
# gpg:                using RSA key 0x281F0DB8D28D5469
# gpg: Good signature from "Michael S. Tsirkin <address@hidden>"
# gpg:                 aka "Michael S. Tsirkin <address@hidden>"
# Primary key fingerprint: 0270 606B 6F3C DF3D 0B17  0970 C350 3912 AFBE 8E67
#      Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA  8A0D 281F 0DB8 D28D 5469

* remotes/mst/tags/for_upstream:
  MAINTAINERS: add Marcel to PCI
  msi_init: change return value to 0 on success
  fix some coding style problems
  pci core: assert ENOSPC when add capability
  test: start vhost-user reconnect test
  tests: append i386 tests
  vhost-net: save & restore vring enable state
  vhost-net: save & restore vhost-user acked features
  vhost-net: do not crash if backend is not present
  vhost-user: disconnect on start failure
  qemu-char: add qemu_chr_disconnect to close a fd accepted by listen fd
  tests/vhost-user-bridge: workaround stale vring base
  tests/vhost-user-bridge: add client mode
  vhost-user: add ability to know vhost-user backend disconnection
  pci: fix pci_requester_id()

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

Conflicts:
        tests/Makefile.include


Compare: https://github.com/qemu/qemu/compare/585fcd4b1107...7263a903c361

reply via email to

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