qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/15] qdev: make reset semantics more clear and consistent, reset qbuses under virtio devices
@ 2012-12-17 16:24 Paolo Bonzini
  2012-12-17 16:24 ` [Qemu-devel] [PATCH 01/15] qdev: do not reset a device until the parent has been initialized Paolo Bonzini
                   ` (17 more replies)
  0 siblings, 18 replies; 62+ messages in thread
From: Paolo Bonzini @ 2012-12-17 16:24 UTC (permalink / raw)
  To: qemu-devel; +Cc: aliguori, mst

After discussion with mst on the topic of resetting virtio devices,
here is a series that hopefully clarifies the semantics of bus and
device resets.

After this series, there are two kinds of resets:

1) device-level reset is the kind of reset that you get with a register
write on the device.  It will clear interrupts and DMAs among other things,
but not any bus-level state, for example it will not clear PCI BARs and
other configuration space data.  It is done with qdev_reset_all.

2) bus-level reset is the kind of reset that you get with a register
write on the device that exports the bus (including triggering a device-level
reset on the device that exports the bus).  It will do a device-level
reset on the child, but also clear bus-level state such as PCI BARs and
other configuration space data.  It can be triggered for all devices
on a bus with qbus_reset_all.  There is still no API for a bus-level
reset of a single device (like PCI FLR), this can be added later.

Patches 1-5 are miscellaneous fixes to the reset paths.

Patches 6-8 introduce qbus_reset_all and uses it.

Patches 9-12 switch qdev_reset_all and qbus_reset_all from pre-order
to post-order, and document the resulting semantics.

Finally, patches 13-15 adjust the virtio implementations to use qdev
device-level reset more extensively.

Paolo Bonzini (15):
  qdev: do not reset a device until the parent has been initialized
  intel-hda: do not reset codecs from intel_hda_reset
  pci: clean up resetting of IRQs
  virtio-pci: reset device before PCI layer
  virtio-s390: add a reset function to virtio-s390 devices
  qdev: add qbus_reset_all
  pci: do not export pci_bus_reset
  lsi: use qbus_reset_all to reset SCSI bus
  qdev: allow both pre- and post-order vists in qdev walking functions
  qdev: switch reset to post-order
  qdev: remove device_reset
  qdev: document reset semantics
  virtio-pci: reset all qbuses too when writing to the status field
  virtio-s390: reset all qbuses too when writing to the status field
  virtio-serial: do not perform bus reset by hand

 hw/intel-hda.c         |  1 -
 hw/lsi53c895a.c        |  7 +----
 hw/pci.c               | 16 ++++------
 hw/pci.h               |  1 -
 hw/pci_bridge.c        |  2 +-
 hw/qdev-core.h         | 83 ++++++++++++++++++++++++++++++++++++++++++--------
 hw/qdev.c              | 70 +++++++++++++++++++++++++++---------------
 hw/s390-virtio-bus.c   | 16 +++++++++-
 hw/virtio-pci.c        | 27 +++++++---------
 hw/virtio-serial-bus.c | 19 +++---------
 10 files changed, 156 insertions(+), 86 deletions(-)

-- 
1.8.0.2

^ permalink raw reply	[flat|nested] 62+ messages in thread
* Re: [Qemu-devel] [PATCH 00/15] qdev: make reset semantics more clear and consistent, reset qbuses under virtio devices
@ 2013-01-03  2:18 Anthony Liguori
  2013-01-02 18:23 ` Anthony Liguori
  0 siblings, 1 reply; 62+ messages in thread
From: Anthony Liguori @ 2013-01-03  2:18 UTC (permalink / raw)
  To: Paolo Bonzini, qemu-devel; +Cc: aliguori, mst

Hi,

This is an automated message generated from the QEMU Patches.
Thank you for submitting this patch.  This patch no longer applies to qemu.git.

This may have occurred due to:
 
  1) Changes in mainline requiring your patch to be rebased and re-tested.

  2) Sending the mail using a tool other than git-send-email.  Please use
     git-send-email to send patches to QEMU.

  3) Basing this patch off of a branch that isn't tracking the QEMU
     master branch.  If that was done purposefully, please include the name
     of the tree in the subject line in the future to prevent this message.

     For instance: "[PATCH block-next 1/10] qcow3: add fancy new feature"

  4) You no longer wish for this patch to be applied to QEMU.  No additional
     action is required on your part.

Nacked-by: QEMU Patches <aliguori@us.ibm.com>

Below is the output from git-am:

    Applying: qdev: do not reset a device until the parent has been initialized
    Applying: intel-hda: do not reset codecs from intel_hda_reset
    Applying: pci: clean up resetting of IRQs
    Using index info to reconstruct a base tree...
    A	hw/pci.c
    Falling back to patching base and 3-way merge...
    Auto-merging hw/pci/pci.c
    Applying: virtio-pci: reset device before PCI layer
    Using index info to reconstruct a base tree...
    M	hw/virtio-pci.c
    Falling back to patching base and 3-way merge...
    Auto-merging hw/virtio-pci.c
    CONFLICT (content): Merge conflict in hw/virtio-pci.c
    Failed to merge in the changes.
    Patch failed at 0004 virtio-pci: reset device before PCI layer
    The copy of the patch that failed is found in:
       /home/aliguori/patches/qemu.git/.git/rebase-apply/patch
    When you have resolved this problem run "git am --resolved".
    If you would prefer to skip this patch, instead run "git am --skip".
    To restore the original branch and stop patching run "git am --abort".

^ permalink raw reply	[flat|nested] 62+ messages in thread

end of thread, other threads:[~2013-01-10 14:57 UTC | newest]

Thread overview: 62+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-17 16:24 [Qemu-devel] [PATCH 00/15] qdev: make reset semantics more clear and consistent, reset qbuses under virtio devices Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 01/15] qdev: do not reset a device until the parent has been initialized Paolo Bonzini
2012-12-17 16:52   ` Michael S. Tsirkin
2012-12-17 16:53     ` Michael S. Tsirkin
2012-12-17 17:06       ` Paolo Bonzini
2012-12-17 21:57   ` Andreas Färber
2012-12-17 16:24 ` [Qemu-devel] [PATCH 02/15] intel-hda: do not reset codecs from intel_hda_reset Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 03/15] pci: clean up resetting of IRQs Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 04/15] virtio-pci: reset device before PCI layer Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 05/15] virtio-s390: add a reset function to virtio-s390 devices Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 06/15] qdev: add qbus_reset_all Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 07/15] pci: do not export pci_bus_reset Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 08/15] lsi: use qbus_reset_all to reset SCSI bus Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 09/15] qdev: allow both pre- and post-order vists in qdev walking functions Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 10/15] qdev: switch reset to post-order Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 11/15] qdev: remove device_reset Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 12/15] qdev: document reset semantics Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 13/15] virtio-pci: reset all qbuses too when writing to the status field Paolo Bonzini
2012-12-17 16:48   ` Michael S. Tsirkin
2012-12-17 16:54     ` Paolo Bonzini
2012-12-17 17:08       ` Michael S. Tsirkin
2012-12-17 17:09         ` Paolo Bonzini
2012-12-17 16:24 ` [Qemu-devel] [PATCH 14/15] virtio-s390: " Paolo Bonzini
2012-12-17 16:29   ` Alexander Graf
2012-12-17 16:24 ` [Qemu-devel] [PATCH 15/15] virtio-serial: do not perform bus reset by hand Paolo Bonzini
2012-12-17 21:43 ` [Qemu-devel] [PATCH 00/15] qdev: make reset semantics more clear and consistent, reset qbuses under virtio devices Michael S. Tsirkin
2012-12-18  7:27   ` Paolo Bonzini
2012-12-18  8:35     ` Paolo Bonzini
2012-12-18  9:49       ` Michael S. Tsirkin
2012-12-18 11:40         ` Paolo Bonzini
2013-01-07 17:46           ` Michael S. Tsirkin
2013-01-07 19:10 ` Anthony Liguori
2013-01-07 19:57   ` Peter Maydell
2013-01-07 20:20     ` Anthony Liguori
2013-01-07 20:28       ` Peter Maydell
2013-01-07 20:51         ` Anthony Liguori
2013-01-09  9:33   ` Paolo Bonzini
2013-01-09 10:22     ` Michael S. Tsirkin
2013-01-09 10:53       ` Paolo Bonzini
2013-01-09 11:09         ` Michael S. Tsirkin
2013-01-09 11:12           ` Paolo Bonzini
2013-01-09 12:10             ` Michael S. Tsirkin
2013-01-09 17:46               ` Paolo Bonzini
2013-01-09 20:40                 ` Anthony Liguori
2013-01-09 21:22                   ` Paolo Bonzini
2013-01-09 21:40                     ` Michael S. Tsirkin
2013-01-10  8:31                       ` Paolo Bonzini
2013-01-10 11:32                         ` Michael S. Tsirkin
2013-01-10 11:46     ` Peter Maydell
2013-01-10 11:47       ` Paolo Bonzini
2013-01-10 11:59         ` Peter Maydell
2013-01-10 12:12           ` Paolo Bonzini
2013-01-10 12:31             ` Peter Maydell
2013-01-10 12:45               ` Paolo Bonzini
2013-01-10 13:01                 ` Peter Maydell
2013-01-10 13:32                   ` Paolo Bonzini
2013-01-10 14:14               ` Anthony Liguori
2013-01-10 14:38                 ` Paolo Bonzini
2013-01-10 15:01                 ` Michael S. Tsirkin
2013-01-08 13:58 ` Michael S. Tsirkin
  -- strict thread matches above, loose matches on Subject: below --
2013-01-03  2:18 Anthony Liguori
2013-01-02 18:23 ` Anthony Liguori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).