qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2/4] s390-virtio-bus: move common virtio propert


From: Cornelia Huck
Subject: Re: [Qemu-devel] [PATCH 2/4] s390-virtio-bus: move common virtio properties to virtio s390 device class
Date: Tue, 17 Jun 2014 10:46:15 +0200

On Tue, 17 Jun 2014 15:44:28 +0800
Ming Lei <address@hidden> wrote:

> On Tue, Jun 17, 2014 at 3:07 PM, Cornelia Huck <address@hidden> wrote:
> > On Tue, 17 Jun 2014 10:44:11 +0800
> > Ming Lei <address@hidden> wrote:
> >
> >> On Tue, Jun 17, 2014 at 12:04 AM, Cornelia Huck
> >> <address@hidden> wrote:
> >> > On Mon, 16 Jun 2014 23:40:50 +0800
> >> > Ming Lei <address@hidden> wrote:
> >> >
> >> >> The two common virtio features can be defined per bus, so move all
> >> >> into virtio-s390 class device to make code more clean.
> >> >>
> >> >> Suggested-by: Paolo Bonzini <address@hidden>
> >> >> Signed-off-by: Ming Lei <address@hidden>
> >> >> ---
> >> >>  hw/s390x/s390-virtio-bus.c |   15 ++++++---------
> >> >>  1 file changed, 6 insertions(+), 9 deletions(-)
> >> >
> >> > This one breaks for me:
> >> >
> >> > qemu-system-s390x: -device 
> >> > virtio-blk-s390,scsi=off,config-wce=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1:
> >> >  Property '.scsi' not found
> >> >
> >> >>
> >> >> diff --git a/hw/s390x/s390-virtio-bus.c b/hw/s390x/s390-virtio-bus.c
> >> >> index 9c71afa..ab9758e 100644
> >> >> --- a/hw/s390x/s390-virtio-bus.c
> >> >> +++ b/hw/s390x/s390-virtio-bus.c
> >> >> @@ -526,18 +526,11 @@ static const TypeInfo s390_virtio_net = {
> >> >>      .class_init    = s390_virtio_net_class_init,
> >> >>  };
> >> >>
> >> >> -static Property s390_virtio_blk_properties[] = {
> >> >> -    DEFINE_VIRTIO_BLK_PROPERTIES(VirtIOBlkS390, blk),
> >> >> -    DEFINE_PROP_END_OF_LIST(),
> >> >> -};
> >> >> -
> >> >>  static void s390_virtio_blk_class_init(ObjectClass *klass, void *data)
> >> >>  {
> >> >> -    DeviceClass *dc = DEVICE_CLASS(klass);
> >> >>      VirtIOS390DeviceClass *k = VIRTIO_S390_DEVICE_CLASS(klass);
> >> >>
> >> >>      k->init = s390_virtio_blk_init;
> >> >> -    dc->props = s390_virtio_blk_properties;
> >> >
> >> > ...which is probably because you removed the block properties here.
> >>
> >> You are right, DEFINE_VIRTIO_BLK_PROPERTIES() should have been
> >> kept.
> >>
> >> Could you test attached patch?
> >>
> > Hm, with the attached patch qemu starts, but the guest will not come up
> > (same commandline + kernel comes up fine on master). Let me dig around
> > a bit.
> 
> Looks like s390 virtio-blk never enables the two common features, is
> there any reason the two features can't be supported by s390?

Indirect descriptors are fine. event_idx will not work IIUC because we
always need to do a sync before we see changes, and this needs an
interrupt to trigger.

The correct way, of course, is to unset VIRTIO_RING_F_EVENT_IDX in the
guest driver, and I verified that this works - this does not help with
old guests, however.

Note that this applies only to the old s390-virtio transport -
virtio-ccw is fine.




reply via email to

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