qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] cb927b: s390-virtio: Accommodate guests using


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] cb927b: s390-virtio: Accommodate guests using virtqueues t...
Date: Mon, 11 May 2015 02:00:10 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: cb927b8aee7c3993a43cb829f7341071f873857b
      
https://github.com/qemu/qemu/commit/cb927b8aee7c3993a43cb829f7341071f873857b
  Author: Christian Borntraeger <address@hidden>
  Date:   2015-05-08 (Fri, 08 May 2015)

  Changed paths:
    M hw/s390x/s390-virtio.c

  Log Message:
  -----------
  s390-virtio: Accommodate guests using virtqueues too early

Feature updates are not a synchronuous operation for the legacy
s390-virtio transport. This transport syncs the guest feature bits
(those from finalize) on the set_status hypercall. Before that qemu
thinks that features are zero, which means QEMU will misbehave, e.g.
it will not write the event index, even if the guest asks for it.

Let's detect the case where a kick happens before the driver is ready
and force sync the features.
With this workaround, it is now safe to switch to the common feature
bit handling code as used by all other transports.

Signed-off-by: Christian Borntraeger <address@hidden>
Reviewed-by: Cornelia Huck <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: f50616a81b7f88a9adac16f3ea0236311a748eca
      
https://github.com/qemu/qemu/commit/f50616a81b7f88a9adac16f3ea0236311a748eca
  Author: Cornelia Huck <address@hidden>
  Date:   2015-05-08 (Fri, 08 May 2015)

  Changed paths:
    M hw/s390x/s390-virtio-bus.c

  Log Message:
  -----------
  s390-virtio: use common features

We used to avoid enabling event_idx for virtio-blk devices via
s390-virtio, but we now have a workaround in place for guests trying
to use the device before setting DRIVER_OK. Therefore, let's add
DEFINE_VIRTIO_COMMON_FEATURES to the base device so all devices get
those common features - and make s390-virtio use the same mechanism
as the other transports do.

Acked-by: Christian Borntraeger <address@hidden>
Reviewed-by: Shannon Zhao <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 77ae0b2a6e731ab7b97e9fae401c579397edb31c
      
https://github.com/qemu/qemu/commit/77ae0b2a6e731ab7b97e9fae401c579397edb31c
  Author: Christian Borntraeger <address@hidden>
  Date:   2015-05-08 (Fri, 08 May 2015)

  Changed paths:
    M hw/s390x/s390-virtio-bus.c

  Log Message:
  -----------
  s390-virtio: clear {used,avail}_event_idx on reset as well

The old s390-virtio transport clears the vring used/avail indices in
the shared area on reset. When we enabled event_idx for virtio-blk, we
noticed that this is not enough: We also need to clear the published
used/avail event indices, or reboot will fail.

Signed-off-by: Christian Borntraeger <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 1fa755234e24697cc76f326782edbb09bd0a3a53
      
https://github.com/qemu/qemu/commit/1fa755234e24697cc76f326782edbb09bd0a3a53
  Author: Cornelia Huck <address@hidden>
  Date:   2015-05-08 (Fri, 08 May 2015)

  Changed paths:
    M hw/s390x/virtio-ccw.c

  Log Message:
  -----------
  virtio-ccw: change realization sequence

virtio-ccw has an odd sequence of realizing devices: first the
device-specific relization (net, block, ...), then the generic
realization. It feels less odd to have the generic realization
callback trigger the device-specific realization instead (and this
also matches what virtio-pci does).

One thing to note: We need to defer initializing the cu model in the
sense id data until after the device-specific realization has been
performed, as we need to refer to the virtio device's device_id.

Signed-off-by: Cornelia Huck <address@hidden>
Message-Id: <address@hidden>


  Commit: fb846a094fdee7bb6a88b48aeed0d97a8080a20d
      
https://github.com/qemu/qemu/commit/fb846a094fdee7bb6a88b48aeed0d97a8080a20d
  Author: Cornelia Huck <address@hidden>
  Date:   2015-05-08 (Fri, 08 May 2015)

  Changed paths:
    M hw/s390x/virtio-ccw.c

  Log Message:
  -----------
  virtio-ccw: implement ->device_plugged

Let's move operations that are only valid after the backend has been
realized to a ->device_plugged callback, just as virtio-pci does.
Also reorder setting up the host feature bits to the sequence used
by virtio-pci.

While we're at it, also add a ->device_unplugged callback to stop
ioeventfd, just to be on the safe side.

Reviewed-by: Shannon Zhao <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>
Message-Id: <address@hidden>


  Commit: 1191c94963f36b3f9631fcd1ec2e9296631b407e
      
https://github.com/qemu/qemu/commit/1191c94963f36b3f9631fcd1ec2e9296631b407e
  Author: Jens Freimann <address@hidden>
  Date:   2015-05-08 (Fri, 08 May 2015)

  Changed paths:
    M target-s390x/kvm.c

  Log Message:
  -----------
  s390x/kvm: use ioctl KVM_S390_IRQ for vcpu interrupts

KVM_S390_INT uses only two parameter fields. This is not
enough to pass all required information for certain interrupts.

A new ioctl KVM_S390_IRQ is available which allows us to
inject all local interrupts as defined in the Principles of
Operation. It takes a struct kvm_s390_irq as a parameter
which can store interrupt payload data for all interrupts.

Let's use the new ioctl for injecting vcpu interrupts.

Tested-by: Thomas Huth <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 46c804def4bda2491c546e8e33b86fe4981e4b68
      
https://github.com/qemu/qemu/commit/46c804def4bda2491c546e8e33b86fe4981e4b68
  Author: David Hildenbrand <address@hidden>
  Date:   2015-05-08 (Fri, 08 May 2015)

  Changed paths:
    M target-s390x/machine.c

  Log Message:
  -----------
  s390x: move fpu regs into a subsection of the vmstate

Let's move the floating point registers into a seperate subsection and
bump up the version id. This cleans up the current vmstate and will
allow for a future extension with vector registers in a compatible way.

This patch is based on a patch from Eric Farman.

Reviewed-by: Eric Farman <address@hidden>
Signed-off-by: David Hildenbrand <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: 3cda44f7bae5c9feddc11630ba6eecb2e3bed425
      
https://github.com/qemu/qemu/commit/3cda44f7bae5c9feddc11630ba6eecb2e3bed425
  Author: Jens Freimann <address@hidden>
  Date:   2015-05-08 (Fri, 08 May 2015)

  Changed paths:
    M target-s390x/cpu-qom.h
    M target-s390x/cpu.c
    M target-s390x/cpu.h
    M target-s390x/kvm.c
    M target-s390x/machine.c

  Log Message:
  -----------
  s390x/kvm: migrate vcpu interrupt state

This patch adds support to migrate vcpu interrupts.
We use ioctl KVM_S390_GET_IRQ_STATE and _SET_IRQ_STATE
to get/set the complete interrupt state for a vcpu.

Reviewed-by: David Hildenbrand <address@hidden>
Signed-off-by: Jens Freimann <address@hidden>
Signed-off-by: Cornelia Huck <address@hidden>


  Commit: fc85cf4a8199a657fdfd5fb902f1835973406454
      
https://github.com/qemu/qemu/commit/fc85cf4a8199a657fdfd5fb902f1835973406454
  Author: Peter Maydell <address@hidden>
  Date:   2015-05-10 (Sun, 10 May 2015)

  Changed paths:
    M hw/s390x/s390-virtio-bus.c
    M hw/s390x/s390-virtio.c
    M hw/s390x/virtio-ccw.c
    M target-s390x/cpu-qom.h
    M target-s390x/cpu.c
    M target-s390x/cpu.h
    M target-s390x/kvm.c
    M target-s390x/machine.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20150508' into staging

Assorted s390x patches:
- updates for virtio-ccw and s390-virtio, making them more similar
  to virtio-pci
- improvements regarding per-vcpu interrupts and migration

# gpg: Signature made Fri May  8 09:45:09 2015 BST using RSA key ID C6F02FAF
# gpg: Good signature from "Cornelia Huck <address@hidden>"
# gpg:                 aka "Cornelia Huck <address@hidden>"

* remotes/cohuck/tags/s390x-20150508:
  s390x/kvm: migrate vcpu interrupt state
  s390x: move fpu regs into a subsection of the vmstate
  s390x/kvm: use ioctl KVM_S390_IRQ for vcpu interrupts
  virtio-ccw: implement ->device_plugged
  virtio-ccw: change realization sequence
  s390-virtio: clear {used,avail}_event_idx on reset as well
  s390-virtio: use common features
  s390-virtio: Accommodate guests using virtqueues too early

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


Compare: https://github.com/qemu/qemu/compare/f8340b360b9b...fc85cf4a8199

reply via email to

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