From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39306) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YRBn0-0003BK-Ue for qemu-devel@nongnu.org; Thu, 26 Feb 2015 22:40:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YRBmv-00041P-4r for qemu-devel@nongnu.org; Thu, 26 Feb 2015 22:40:34 -0500 Received: from mx1.redhat.com ([209.132.183.28]:40637) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YRBmu-00041C-Re for qemu-devel@nongnu.org; Thu, 26 Feb 2015 22:40:29 -0500 Date: Fri, 27 Feb 2015 03:46:25 +0008 From: Jason Wang Message-Id: <1425008305.3834.5@smtp.corp.redhat.com> In-Reply-To: <20150226140212.6c788d52.cornelia.huck@de.ibm.com> References: <1424934286-7099-1-git-send-email-jasowang@redhat.com> <1424934286-7099-5-git-send-email-jasowang@redhat.com> <20150226140212.6c788d52.cornelia.huck@de.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Subject: Re: [Qemu-devel] [PATCH V2 04/11] virtio-ccw: introduce ccw specific queue limit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Cornelia Huck Cc: Alexander Graf , Richard Henderson , qemu-devel@nongnu.org, Christian Borntraeger , mst@redhat.com On Thu, Feb 26, 2015 at 9:02 PM, Cornelia Huck wrote: > On Thu, 26 Feb 2015 15:04:39 +0800 > Jason Wang wrote: > >> Instead of depending on marco, using a bus specific limit. >> >> Cc: Alexander Graf >> Cc: Cornelia Huck >> Cc: Christian Borntraeger >> Cc: Richard Henderson >> Signed-off-by: Jason Wang >> --- >> hw/s390x/s390-virtio-ccw.c | 7 +++++-- >> hw/s390x/virtio-ccw.c | 13 +++++++------ >> include/hw/virtio/virtio.h | 1 + >> 3 files changed, 13 insertions(+), 8 deletions(-) >> >> diff --git a/hw/s390x/s390-virtio-ccw.c b/hw/s390x/s390-virtio-ccw.c >> index 71bafe0..6aeb815 100644 >> --- a/hw/s390x/s390-virtio-ccw.c >> +++ b/hw/s390x/s390-virtio-ccw.c >> @@ -43,6 +43,7 @@ void io_subsystem_reset(void) >> >> static int virtio_ccw_hcall_notify(const uint64_t *args) >> { >> + VirtIODevice *vdev; >> uint64_t subch_id = args[0]; >> uint64_t queue = args[1]; >> SubchDev *sch; >> @@ -55,10 +56,12 @@ static int virtio_ccw_hcall_notify(const >> uint64_t *args) >> if (!sch || !css_subch_visible(sch)) { >> return -EINVAL; >> } >> - if (queue >= VIRTIO_PCI_QUEUE_MAX) { >> + >> + vdev = virtio_ccw_get_vdev(sch); >> + if (queue >= virtio_get_queue_max(vdev)) { > > But we already know we have a virtio_ccw device, right? So why not > just > check against VIRTIO_CCW_QUEUE_MAX? The problem is whether or not you want to increase the max queue for ccw. If yes, for migration compatibility, you could not just use a marco here since legacy machine type will also get increased. Something dynamically like this is need so the machine initialization code can change this limit. > > >> return -EINVAL; >> } >> - virtio_queue_notify(virtio_ccw_get_vdev(sch), queue); >> + virtio_queue_notify(vdev, queue); >> return 0; >> >> } > > (...) > >> diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h >> index 9fe0d92..04ad532 100644 >> --- a/include/hw/virtio/virtio.h >> +++ b/include/hw/virtio/virtio.h >> @@ -93,6 +93,7 @@ typedef struct VirtQueueElement >> } VirtQueueElement; >> >> #define VIRTIO_PCI_QUEUE_MAX 64 >> +#define VIRTIO_CCW_QUEUE_MAX 64 > > Does generic code need to know about the ccw limit? Seems not, will move it to ccw file. > > >> >> #define VIRTIO_NO_VECTOR 0xffff >> >