All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: David Hildenbrand <dahi@linux.vnet.ibm.com>
Cc: thuth@linux.vnet.ibm.com, rusty@au1.ibm.com,
	linux-api@vger.kernel.org, linux-kernel@vger.kernel.org,
	virtualization@lists.linux-foundation.org, pbonzini@redhat.com,
	David Miller <davem@davemloft.net>
Subject: Re: [PATCH v7 16/46] virtio_blk: v1.0 support
Date: Mon, 1 Dec 2014 11:26:58 +0200	[thread overview]
Message-ID: <20141201092658.GC15607@redhat.com> (raw)
In-Reply-To: <20141201091641.3085e682@thinkpad-w530>

On Mon, Dec 01, 2014 at 09:16:41AM +0100, David Hildenbrand wrote:
> > Based on patch by Cornelia Huck.
> > 
> > Note: for consistency, and to avoid sparse errors,
> >       convert all fields, even those no longer in use
> >       for virtio v1.0.
> > 
> > Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ...
> > 
> > -static unsigned int features[] = {
> > +static unsigned int features_legacy[] = {
> >  	VIRTIO_BLK_F_SEG_MAX, VIRTIO_BLK_F_SIZE_MAX, VIRTIO_BLK_F_GEOMETRY,
> >  	VIRTIO_BLK_F_RO, VIRTIO_BLK_F_BLK_SIZE, VIRTIO_BLK_F_SCSI,
> >  	VIRTIO_BLK_F_WCE, VIRTIO_BLK_F_TOPOLOGY, VIRTIO_BLK_F_CONFIG_WCE,
> >  	VIRTIO_BLK_F_MQ,
> > +}
> > +;
> > +static unsigned int features[] = {
> > +	VIRTIO_BLK_F_SEG_MAX, VIRTIO_BLK_F_SIZE_MAX, VIRTIO_BLK_F_GEOMETRY,
> > +	VIRTIO_BLK_F_RO, VIRTIO_BLK_F_BLK_SIZE,
> > +	VIRTIO_BLK_F_TOPOLOGY,
> > +	VIRTIO_BLK_F_MQ,
> > +	VIRTIO_F_VERSION_1,
> 
> We can fit this into less lines, like done for features_legacy.
> 
> I was asking myself if we could do the conversion of the statical values
> somehow upfront, to reduce the patch size and avoid cpu_to_virtio.* at those
> places.
> 
> Otherwise looks good to me.
> 

I don't see how we can reduce the patch size.
For BE architectures it's dynamic, so at best the values
will become macros/incline functions taking a flag.

For some places on data path, it might be worth it
to cache the correct value e.g. as part of device
structure. This replaces a branch with a memory load,
so the gain would have to be measured, best done
separately?

-- 
MST

WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: David Hildenbrand <dahi@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org, David Miller <davem@davemloft.net>,
	cornelia.huck@de.ibm.com, rusty@au1.ibm.com, nab@linux-iscsi.org,
	pbonzini@redhat.com, thuth@linux.vnet.ibm.com,
	Rusty Russell <rusty@rustcorp.com.au>,
	virtualization@lists.linux-foundation.org,
	linux-api@vger.kernel.org
Subject: Re: [PATCH v7 16/46] virtio_blk: v1.0 support
Date: Mon, 1 Dec 2014 11:26:58 +0200	[thread overview]
Message-ID: <20141201092658.GC15607@redhat.com> (raw)
In-Reply-To: <20141201091641.3085e682@thinkpad-w530>

On Mon, Dec 01, 2014 at 09:16:41AM +0100, David Hildenbrand wrote:
> > Based on patch by Cornelia Huck.
> > 
> > Note: for consistency, and to avoid sparse errors,
> >       convert all fields, even those no longer in use
> >       for virtio v1.0.
> > 
> > Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
> > Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ...
> > 
> > -static unsigned int features[] = {
> > +static unsigned int features_legacy[] = {
> >  	VIRTIO_BLK_F_SEG_MAX, VIRTIO_BLK_F_SIZE_MAX, VIRTIO_BLK_F_GEOMETRY,
> >  	VIRTIO_BLK_F_RO, VIRTIO_BLK_F_BLK_SIZE, VIRTIO_BLK_F_SCSI,
> >  	VIRTIO_BLK_F_WCE, VIRTIO_BLK_F_TOPOLOGY, VIRTIO_BLK_F_CONFIG_WCE,
> >  	VIRTIO_BLK_F_MQ,
> > +}
> > +;
> > +static unsigned int features[] = {
> > +	VIRTIO_BLK_F_SEG_MAX, VIRTIO_BLK_F_SIZE_MAX, VIRTIO_BLK_F_GEOMETRY,
> > +	VIRTIO_BLK_F_RO, VIRTIO_BLK_F_BLK_SIZE,
> > +	VIRTIO_BLK_F_TOPOLOGY,
> > +	VIRTIO_BLK_F_MQ,
> > +	VIRTIO_F_VERSION_1,
> 
> We can fit this into less lines, like done for features_legacy.
> 
> I was asking myself if we could do the conversion of the statical values
> somehow upfront, to reduce the patch size and avoid cpu_to_virtio.* at those
> places.
> 
> Otherwise looks good to me.
> 

I don't see how we can reduce the patch size.
For BE architectures it's dynamic, so at best the values
will become macros/incline functions taking a flag.

For some places on data path, it might be worth it
to cache the correct value e.g. as part of device
structure. This replaces a branch with a memory load,
so the gain would have to be measured, best done
separately?

-- 
MST

  reply	other threads:[~2014-12-01  9:26 UTC|newest]

Thread overview: 187+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-30 15:09 [PATCH v7 00/46] linux: towards virtio-1 guest support Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 01/46] virtio: add low-level APIs for feature bits Michael S. Tsirkin
2014-11-30 15:09   ` Michael S. Tsirkin
2014-12-01  9:08   ` Cornelia Huck
2014-12-01  9:08     ` Cornelia Huck
2014-11-30 15:09 ` [PATCH v7 02/46] virtio: use u32, not bitmap for features Michael S. Tsirkin
2014-11-30 15:09   ` Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 03/46] mic_virtio: robust feature array size calculation Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 04/46] virtio: add support for 64 bit features Michael S. Tsirkin
2014-11-30 15:09   ` Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 05/46] virtio: assert 32 bit features in transports Michael S. Tsirkin
2014-11-30 15:09 ` Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 06/46] virtio_ccw: add support for 64 bit features Michael S. Tsirkin
2014-12-01  7:52   ` David Hildenbrand
2014-11-30 15:09 ` [PATCH v7 07/46] virtio: add virtio 1.0 feature bit Michael S. Tsirkin
2014-11-30 15:09   ` Michael S. Tsirkin
2014-11-30 15:09 ` [PATCH v7 08/46] virtio: memory access APIs Michael S. Tsirkin
2014-11-30 15:09   ` Michael S. Tsirkin
2014-12-01  9:56   ` Cornelia Huck
2014-12-01  9:56     ` Cornelia Huck
2014-11-30 15:09 ` [PATCH v7 09/46] virtio_ring: switch to new " Michael S. Tsirkin
2014-11-30 15:09   ` Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 10/46] virtio_config: endian conversion for v1.0 Michael S. Tsirkin
2014-11-30 15:10 ` Michael S. Tsirkin
2014-12-01  7:57   ` David Hildenbrand
2014-12-01  7:57     ` David Hildenbrand
2014-11-30 15:10 ` [PATCH v7 11/46] virtio: allow transports to get avail/used addresses Michael S. Tsirkin
2014-11-30 15:10 ` Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 12/46] virtio: set FEATURES_OK Michael S. Tsirkin
2014-11-30 15:10   ` Michael S. Tsirkin
     [not found]   ` <1417359787-10138-13-git-send-email-mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-01 10:11     ` Cornelia Huck
2014-12-01 10:11       ` Cornelia Huck
2014-12-01 10:11   ` Cornelia Huck
2014-11-30 15:10 ` [PATCH v7 13/46] virtio: simplify feature bit handling Michael S. Tsirkin
2014-12-01  8:06   ` David Hildenbrand
2014-12-01  8:06     ` David Hildenbrand
2014-12-01 10:12   ` Cornelia Huck
2014-12-01 10:12     ` Cornelia Huck
2014-11-30 15:10 ` Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 14/46] virtio: add legacy feature table support Michael S. Tsirkin
2014-12-01 11:23   ` Cornelia Huck
2014-12-01 11:23     ` Cornelia Huck
2014-11-30 15:10 ` Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 15/46] virtio_net: v1.0 endianness Michael S. Tsirkin
2014-11-30 15:10 ` Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 16/46] virtio_blk: v1.0 support Michael S. Tsirkin
2014-11-30 15:10   ` Michael S. Tsirkin
2014-12-01  8:16   ` David Hildenbrand
2014-12-01  8:16     ` David Hildenbrand
2014-12-01  9:26     ` Michael S. Tsirkin [this message]
2014-12-01  9:26       ` Michael S. Tsirkin
2014-12-01 11:33       ` Cornelia Huck
2014-12-01 11:33         ` Cornelia Huck
2014-12-01 11:46         ` Michael S. Tsirkin
2014-12-01 11:46           ` Michael S. Tsirkin
2014-12-01 12:02           ` Cornelia Huck
2014-12-01 12:02             ` Cornelia Huck
2014-12-01 12:19             ` Michael S. Tsirkin
2014-12-01 12:19               ` Michael S. Tsirkin
2014-12-01 12:34             ` Michael S. Tsirkin
2014-12-01 12:34               ` Michael S. Tsirkin
2014-12-01 12:40               ` Cornelia Huck
     [not found]               ` <20141201123455.GA17958-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-01 12:40                 ` Cornelia Huck
2014-12-01 12:40                   ` Cornelia Huck
2014-12-01 12:51                   ` Michael S. Tsirkin
2014-12-01 12:51                     ` Michael S. Tsirkin
2014-12-01 13:00                     ` Cornelia Huck
2014-12-01 13:00                       ` Cornelia Huck
2014-12-01 13:47                       ` Michael S. Tsirkin
2014-12-01 13:47                         ` Michael S. Tsirkin
     [not found]                         ` <20141201134719.GA18305-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-01 14:19                           ` Cornelia Huck
2014-12-01 14:19                             ` Cornelia Huck
2014-12-01 14:19                         ` Cornelia Huck
2014-12-01  9:28     ` Michael S. Tsirkin
2014-12-01  9:28       ` Michael S. Tsirkin
     [not found]       ` <20141201092850.GD15607-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-12-01 10:01         ` David Hildenbrand
2014-12-01 10:01           ` David Hildenbrand
2014-12-01 11:28           ` Cornelia Huck
2014-12-01 11:28             ` Cornelia Huck
2014-12-01 10:01       ` David Hildenbrand
2014-11-30 15:10 ` [PATCH v7 17/46] KVM: s390: Set virtio-ccw transport revision Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 18/46] KVM: s390: virtio-ccw revision 1 SET_VQ Michael S. Tsirkin
2014-12-01  8:20   ` David Hildenbrand
2014-11-30 15:10 ` [PATCH v7 19/46] KVM: s390 allow virtio_ccw status writes to fail Michael S. Tsirkin
2014-11-30 15:10 ` [PATCH v7 20/46] KVM: s390: enable virtio-ccw revision 1 Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 21/46] virtio_blk: make serial attribute static Michael S. Tsirkin
2014-11-30 15:11   ` Michael S. Tsirkin
2014-12-01 11:34   ` Cornelia Huck
2014-12-01 11:34     ` Cornelia Huck
2014-11-30 15:11 ` [PATCH v7 22/46] virtio_blk: fix race at module removal Michael S. Tsirkin
2014-11-30 15:11 ` Michael S. Tsirkin
2014-12-01 11:36   ` Cornelia Huck
2014-12-01 11:36     ` Cornelia Huck
2014-11-30 15:11 ` [PATCH v7 23/46] virtio_net: pass vi around Michael S. Tsirkin
2014-11-30 15:11 ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 24/46] virtio_net: get rid of virtio_net_hdr/skb_vnet_hdr Michael S. Tsirkin
2014-11-30 15:11 ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 25/46] virtio_net: stricter short buffer length checks Michael S. Tsirkin
2014-11-30 15:11 ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 26/46] virtio_net: bigger header when VERSION_1 is set Michael S. Tsirkin
2014-11-30 15:11 ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 27/46] virtio_net: enable v1.0 support Michael S. Tsirkin
2014-11-30 15:11 ` Michael S. Tsirkin
2014-12-01 11:40   ` Cornelia Huck
2014-12-01 11:40     ` Cornelia Huck
2014-12-01 11:47     ` Michael S. Tsirkin
2014-12-01 11:47       ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 28/46] vhost: make features 64 bit Michael S. Tsirkin
2014-11-30 15:11 ` Michael S. Tsirkin
2014-11-30 15:44   ` Sergei Shtylyov
2014-11-30 15:44     ` Sergei Shtylyov
2014-12-01  4:12     ` Ben Hutchings
2014-12-01  4:12       ` Ben Hutchings
2014-12-01  9:19       ` Michael S. Tsirkin
2014-12-01  9:19         ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 29/46] vhost: add memory access wrappers Michael S. Tsirkin
2014-11-30 15:11   ` Michael S. Tsirkin
2014-12-01 12:13   ` Cornelia Huck
2014-12-01 12:13     ` Cornelia Huck
2014-11-30 15:11 ` [PATCH v7 30/46] vhost/net: force len for TX to host endian Michael S. Tsirkin
2014-12-01 12:20   ` Cornelia Huck
2014-12-01 12:20     ` Cornelia Huck
2014-12-01 12:33     ` Michael S. Tsirkin
2014-12-01 12:33       ` Michael S. Tsirkin
2014-11-30 15:11 ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 31/46] vhost: virtio 1.0 endian-ness support Michael S. Tsirkin
2014-12-01 12:33   ` Cornelia Huck
2014-12-01 12:33     ` Cornelia Huck
2014-12-01 12:37     ` Michael S. Tsirkin
2014-12-01 12:37       ` Michael S. Tsirkin
2014-12-01 12:42       ` Cornelia Huck
2014-12-01 12:42         ` Cornelia Huck
2014-12-01 12:49         ` Michael S. Tsirkin
2014-12-01 12:49           ` Michael S. Tsirkin
2014-12-01 15:45     ` Michael S. Tsirkin
2014-12-01 15:45       ` Michael S. Tsirkin
2014-11-30 15:11 ` Michael S. Tsirkin
2014-11-30 15:11 ` [PATCH v7 32/46] vhost/net: virtio 1.0 byte swap Michael S. Tsirkin
2014-11-30 15:11   ` Michael S. Tsirkin
2014-12-01 12:35   ` Cornelia Huck
2014-12-01 12:35     ` Cornelia Huck
2014-11-30 15:11 ` [PATCH v7 33/46] vhost/net: larger header for virtio 1.0 Michael S. Tsirkin
2014-11-30 15:11 ` Michael S. Tsirkin
2014-12-01 12:35   ` Cornelia Huck
2014-12-01 12:35     ` Cornelia Huck
2014-11-30 15:12 ` [PATCH v7 34/46] virtio_net: disable mac write " Michael S. Tsirkin
2014-12-01 11:41   ` Cornelia Huck
2014-12-01 11:41     ` Cornelia Huck
2014-11-30 15:12 ` Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 35/46] vhost/net: enable " Michael S. Tsirkin
2014-11-30 15:12   ` Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 36/46] vhost/net: suppress compiler warning Michael S. Tsirkin
2014-12-01 12:37   ` Cornelia Huck
2014-12-01 12:37     ` Cornelia Huck
2014-12-01 13:48     ` Michael S. Tsirkin
2014-12-01 13:48       ` Michael S. Tsirkin
2014-12-01 14:21       ` Cornelia Huck
2014-12-01 14:21         ` Cornelia Huck
2014-12-01 15:12         ` Michael S. Tsirkin
2014-12-01 15:12           ` Michael S. Tsirkin
2014-12-01 15:18           ` Cornelia Huck
2014-12-01 15:18             ` Cornelia Huck
2014-11-30 15:12 ` Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 37/46] tun: move internal flag defines out of uapi Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 38/46] tun: drop most type defines Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 39/46] tun: add VNET_LE flag Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 40/46] tun: TUN_VNET_LE support, fix sparse warnings for virtio headers Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 41/46] macvtap: TUN_VNET_LE support Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 42/46] virtio_scsi: v1.0 support Michael S. Tsirkin
2014-12-01 12:50   ` Cornelia Huck
2014-12-01 12:50     ` Cornelia Huck
2014-12-01 12:53     ` Michael S. Tsirkin
2014-12-01 12:53       ` Michael S. Tsirkin
2014-12-01 12:54       ` Michael S. Tsirkin
2014-12-01 12:54         ` Michael S. Tsirkin
2014-12-01 12:55       ` Cornelia Huck
2014-12-01 12:55         ` Cornelia Huck
2014-11-30 15:12 ` Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 43/46] virtio_scsi: move to uapi Michael S. Tsirkin
2014-11-30 15:12 ` [PATCH v7 44/46] virtio_scsi: export to userspace Michael S. Tsirkin
     [not found]   ` <1417359787-10138-45-git-send-email-mst-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2014-11-30 21:43     ` Prabhakar Lad
2014-11-30 21:43       ` Prabhakar Lad
2014-11-30 21:43   ` Prabhakar Lad
2014-11-30 15:12 ` Michael S. Tsirkin
2014-11-30 15:13 ` [PATCH v7 45/46] vhost/scsi: partial virtio 1.0 support Michael S. Tsirkin
2014-11-30 15:13 ` Michael S. Tsirkin
2014-11-30 15:13 ` [PATCH v7 46/46] af_packet: virtio 1.0 stubs Michael S. Tsirkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141201092658.GC15607@redhat.com \
    --to=mst@redhat.com \
    --cc=dahi@linux.vnet.ibm.com \
    --cc=davem@davemloft.net \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=rusty@au1.ibm.com \
    --cc=thuth@linux.vnet.ibm.com \
    --cc=virtualization@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.