linux: towards virtio-1 guest support
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v8 Latest50 patches 15 repliesIn review
- v746 patches 57 repliesSuperseded
- v60 of 45 patches 0 repliesSuperseded
Earlier versions · 6
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v5 | 45 patches | 4 replies | Superseded | |
| v4 posting 2/2 | 42 patches | 44 replies | Superseded | |
| v3 posting 2/2 | 41 patches | 14 replies | Superseded | |
| v4 RFC posting 1/2 | 17 patches | 4 replies | Superseded | |
| v3 RFC posting 1/2 | 16 patches | 11 replies | Superseded | |
| v2 RFC | 16 patches | 2 replies | Superseded |
Changes in v8 from the cover letter · 16 lines
all drivers have been converted now.
new patches:
virtio_console: virtio 1.0 support
virtio_balloon: add legacy_only flag
virtio: make VIRTIO_F_VERSION_1 a transport bit
virtio: drop VIRTIO_F_VERSION_1 from drivers
vhost: make features 64 bit
fix bug noted by Sergei Shtylyov, bugfix suggested by Ben Hutchings
virtio_net: disable mac write for virtio 1.0
moved earlier in the series
vhost/net: force len for TX to host endian
commit log reworded
vhost: virtio 1.0 endian-ness support
simplify error printing code sligthly
vhost/net: suppress compiler warning
smashed into code introducing the warning, added a comment
Patches in v8 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/50 | virtio: add low-level APIs for feature bitsinclude/ | +50 | 0 replies | |
| 1/50 | virtio: add low-level APIs for feature bitsinclude/ | +50 | 0 replies | |
| 2/50 | virtio: use u32, not bitmap for featuresdrivers/ drivers/ drivers/ +13 more | +42 | 0 replies | |
| 3/50 | mic_virtio: robust feature array size calculationdrivers/ | +1 | 1 reply | |
| 4/50 | virtio: add support for 64 bit features.drivers/ drivers/ drivers/ +8 more | +23 | 0 replies | |
| 5/50 | virtio: assert 32 bit features in transportsdrivers/ drivers/ drivers/ +4 more | +21 | 0 replies | |
| 5/50 | virtio: assert 32 bit features in transportsdrivers/ drivers/ drivers/ +4 more | +21 | 0 replies | |
| 6/50 | virtio_ccw: add support for 64 bit features.drivers/ | +23 | 1 reply | |
| 7/50 | virtio: add virtio 1.0 feature bitinclude/ | +3 | 0 replies | |
| 8/50 | virtio: memory access APIsinclude/ include/ include/ +2 more | +161 | 1 reply | |
| 9/50 | virtio_ring: switch to new memory access APIsdrivers/ | +45 | 0 replies | |
| 10/50 | virtio_config: endian conversion for v1.0include/ | +6 | 0 replies | |
| 11/50 | virtio: allow transports to get avail/used addressesdrivers/ include/ | +19 | 0 replies | |
| 11/50 | virtio: allow transports to get avail/used addressesdrivers/ include/ | +19 | 0 replies | |
| 12/50 | virtio: set FEATURES_OKdrivers/ include/ | +24 | 0 replies | |
| 13/50 | virtio: simplify feature bit handlingdrivers/ | +6 | 0 replies | |
| 14/50 | virtio: add legacy feature table supportdrivers/ include/ | +28 | 0 replies | |
| 14/50 | virtio: add legacy feature table supportdrivers/ include/ | +28 | 0 replies | |
| 15/50 | virtio_net: v1.0 endiannessdrivers/ include/ | +28 | 0 replies | |
| 16/50 | virtio_blk: v1.0 supportdrivers/ include/ | +49 | 0 replies | |
| 16/50 | virtio_blk: v1.0 supportdrivers/ include/ | +49 | 0 replies | |
| 17/50 | KVM: s390: Set virtio-ccw transport revisiondrivers/ | +63 | 2 replies | |
| 18/50 | KVM: s390: virtio-ccw revision 1 SET_VQdrivers/ | +42 | 0 replies | |
| 19/50 | KVM: s390 allow virtio_ccw status writes to faildrivers/ | +6 | 0 replies | |
| 20/50 | KVM: s390: enable virtio-ccw revision 1drivers/ | +1 | 0 replies | |
| 21/50 | virtio_blk: make serial attribute staticdrivers/ | +2 | 0 replies | |
| 22/50 | virtio_blk: fix race at module removaldrivers/ | +1 | 0 replies | |
| 23/50 | virtio_net: pass vi arounddrivers/ | +20 | 0 replies | |
| 24/50 | virtio_net: get rid of virtio_net_hdr/skb_vnet_hdrdrivers/ | +41 | 0 replies | |
| 25/50 | virtio_net: stricter short buffer length checksdrivers/ | +1 | 0 replies | |
| 25/50 | virtio_net: stricter short buffer length checksdrivers/ | +1 | 0 replies | |
| 26/50 | virtio_net: bigger header when VERSION_1 is setdrivers/ | +2 | 0 replies | |
| 27/50 | virtio_net: disable mac write for virtio 1.0drivers/ | +2 | 0 replies | |
| 28/50 | virtio_net: enable v1.0 supportdrivers/ | +1 | 0 replies | |
| 29/50 | vhost: make features 64 bitdrivers/ | +3 | 0 replies | |
| 29/50 | vhost: make features 64 bitdrivers/ | +3 | 0 replies | |
| 30/50 | vhost: add memory access wrappersdrivers/ | +31 | 0 replies | |
| 31/50 | vhost/net: force len for TX to host endiandrivers/ | +5 | 0 replies | |
| 32/50 | vhost: switch to __get/__put_user exclusivelydrivers/ | +10 | 0 replies | |
| 32/50 | vhost: switch to __get/__put_user exclusivelydrivers/ | +10 | 0 replies | |
| 33/50 | vhost: virtio 1.0 endian-ness supportdrivers/ | +49 | 0 replies | |
| 34/50 | vhost/net: virtio 1.0 byte swapdrivers/ | +10 | 5 replies | |
| 35/50 | vhost/net: larger header for virtio 1.0drivers/ | +2 | 0 replies | |
| 36/50 | vhost/net: enable virtio 1.0drivers/ | +2 | 0 replies | |
| 37/50 | tun: move internal flag defines out of uapidrivers/ include/ | +24 | 0 replies | |
| 38/50 | tun: drop most type definesdrivers/ | +28 | 0 replies | |
| 39/50 | tun: add VNET_LE flaginclude/ | +1 | 0 replies | |
| 40/50 | tun: TUN_VNET_LE support, fix sparse warnings for virtio headersdrivers/ | +29 | 0 replies | |
| 41/50 | macvtap: TUN_VNET_LE supportdrivers/ | +43 | 0 replies | |
| 42/50 | virtio_scsi: v1.0 supportdrivers/ include/ | +49 | 0 replies | |
| 43/50 | virtio_scsi: move to uapiinclude/ | +0 | 0 replies | |
| 44/50 | virtio_scsi: export to userspaceinclude/ include/ | +38 | 0 replies | |
| 45/50 | vhost/scsi: partial virtio 1.0 supportdrivers/ | +12 | 0 replies | |
| 45/50 | vhost/scsi: partial virtio 1.0 supportdrivers/ | +12 | 0 replies | |
| 46/50 | af_packet: virtio 1.0 stubsnet/ | +22 | 0 replies | |
| 47/50 | virtio_console: virtio 1.0 supportdrivers/ include/ | +21 | 0 replies | |
| 48/50 | virtio_balloon: add legacy_only flagdrivers/ include/ | +3 | 0 replies | |
| 49/50 | virtio: make VIRTIO_F_VERSION_1 a transport bitdrivers/ drivers/ include/ | +9 | 0 replies | |
| 50/50 | virtio: drop VIRTIO_F_VERSION_1 from driversdrivers/ drivers/ drivers/ +1 more | +0 | 0 replies | |
| 50/50 | virtio: drop VIRTIO_F_VERSION_1 from driversdrivers/ drivers/ drivers/ +1 more | +0 | 0 replies |
Reviews trailers per patch
43 of 60 patches have a Reviewed-by or Acked-by.
| Patch | Cornelia Huck | David Hildenbrand | Jason Wang | Paolo Bonzini | Thomas Huth | Lad, Prabhakar |
|---|---|---|---|---|---|---|
| 1/50 | R-b R-b | |||||
| 1/50 | R-b R-b | |||||
| 2/50 | R-b | |||||
| 3/50 | R-b | |||||
| 4/50 | R-b | R-b | ||||
| 5/50 | R-b R-b | R-b R-b | ||||
| 5/50 | R-b R-b | R-b R-b | ||||
| 6/50 | R-b | R-b | ||||
| 7/50 | R-b | |||||
| 8/50 | R-b | A-b | ||||
| 9/50 | R-b | |||||
| 10/50 | R-b | |||||
| 11/50 | R-b R-b | |||||
| 11/50 | R-b R-b | |||||
| 12/50 | R-b | |||||
| 13/50 | R-b | R-b | ||||
| 14/50 | R-b R-b | |||||
| 14/50 | R-b R-b | |||||
| 15/50 | ||||||
| 16/50 | ||||||
| 16/50 | ||||||
| 17/50 | R-b | |||||
| 18/50 | R-b | |||||
| 19/50 | R-b | |||||
| 20/50 | R-b | |||||
| 21/50 | R-b | |||||
| 22/50 | R-b | |||||
| 23/50 | R-b | |||||
| 24/50 | R-b | R-b | ||||
| 25/50 | R-b R-b | R-b R-b | ||||
| 25/50 | R-b R-b | R-b R-b | ||||
| 26/50 | R-b | R-b | ||||
| 27/50 | R-b | |||||
| 28/50 | ||||||
| 29/50 | R-b R-b | |||||
| 29/50 | R-b R-b | |||||
| 30/50 | R-b | R-b | ||||
| 31/50 | R-b | |||||
| 32/50 | ||||||
| 32/50 | ||||||
| 33/50 | ||||||
| 34/50 | R-b R-b R-b | |||||
| 35/50 | R-b | R-b | ||||
| 36/50 | ||||||
| 37/50 | ||||||
| 38/50 | ||||||
| 39/50 | ||||||
| 40/50 | R-b | |||||
| 41/50 | R-b | |||||
| 42/50 | A-b | |||||
| 43/50 | A-b | |||||
| 44/50 | A-b | |||||
| 45/50 | A-b A-b | |||||
| 45/50 | A-b A-b | |||||
| 46/50 | ||||||
| 47/50 | ||||||
| 48/50 | ||||||
| 49/50 | ||||||
| 50/50 | ||||||
| 50/50 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 6 reviewers.
Cover letter [PATCH v8 00/50] linux: towards virtio-1 guest support
David, assuming patches are acceptable, I'd like them all to be merged through virtio or vhost trees to avoid dependency headaches. Could you please ack doing that for net related patches, especially these:
tun: move internal flag defines out of uapi
tun: drop most type defines
tun: add VNET_LE flag
tun: TUN_VNET_LE support, fix sparse warnings for virtio headers
macvtap: TUN_VNET_HDR support
vhost/scsi: partial virtio 1.0 support
af_packet: virtio 1.0 stubs
Alternatively, I can prepare a tree with virtio changes and merge that into your net-next - if Rusty approves, or keeps silence :)
Could you comment on this please?
Up to half a hundred patches now. This is getting ridiculous.
Based on patches by Cornelia and others, but with an API that should allow better static checking of code, slightly more concervative changes in vring and drivers, and compatibility for existing drivers so that this series can be applied gradually.
At the end of series, all drivers are converted, and compatibility flags are dropped.
All drivers have been converted now, with the exception of the balloon driver which we plan to rewrite rather than convert.
All drivers now pass sparse without warnings.
net and blk patches have been tested on s390.
Other patches pass sparse so they are most likely
ok too, but haven't been through testing yet -
they can be dropped from patchset if necessary.
Please review, and consider for 3.19
changes since v7:
all drivers have been converted now.
new patches:
virtio_console: virtio 1.0 support
virtio_balloon: add legacy_only flag
virtio: make VIRTIO_F_VERSION_1 a transport bit
virtio: drop VIRTIO_F_VERSION_1 from drivers
vhost: make features 64 bit
fix bug noted by Sergei Shtylyov, bugfix suggested by Ben Hutchings
virtio_net: disable mac write for virtio 1.0
moved earlier in the series
vhost/net: force len for TX to host endian
commit log reworded
vhost: virtio 1.0 endian-ness support
simplify error printing code sligthly
vhost/net: suppress compiler warning
smashed into code introducing the warning, added a comment
changes since v6:
tun: move internal flag defines out of uapi
document reasons for patch split
macvtap: TUN_VNET_LE support
fix patch subject
virtio: add low-level APIs for feature bits
fix comment in code s/set/clear/ document reasons for names selected
KVM: s390: enable virtio-ccw revision 1
fix up comment
virtio: use u32, not bitmap for features
fix whitespace
virtio_ccw: add support for 64 bit features
tweak comment in code
included reviewed-by tags by Cornelia David and Jason
Changes since v5:
rewritten feature bit handling, based on suggestion by David:
changes are now smaller and easier to review.
new patch:
virtio: add low-level APIs for feature bits
rewritten patches:
virtio: use u32, not bitmap for features
virtio: add support for 64 bit features.
Changes since v4:
I have dropped 64 bit feature negotiation from
most transports (except ccw).
For symmetry, I split out ccw bits:
virtio: add support for 64 bit features.
adds core and device support for 64 bit features
virtio_ccw: add support for 64 bit features.
actually enables 64 bit features in ccw.
detail below.
this is still really a cosmetic change: just reordering/splitting patches, and dropping code changes that aren't needed.
new patches:
mic_virtio: robust feature array size calculation
virtio: assert 32 bit features in transports
addressed comments by Cornelia:
virtio: disable virtio 1.0 in transports:
patch dropped
virtio: memory access APIs
tweaked comments as suggested by Cornelia
virtio_config: endian conversion for v1.0
dropped reviewed-by tags -
they applied to a very old version of patch
virtio: set FEATURES_OK
replaced printk by dev_err
virtio: add legacy feature table support
comment changes suggested by Cornelia
virtio_blk: v1.0 support
dropped reviewed-by tags -
they applied to a very old version of patch
virtio_net: enable v1.0 support
only write mac for legacy devices
vhost: add memory access wrappers
move chunk to vhost: make features 64 bit better patch description
vhost: make features 64 bit
moved this patch earlier in series
vhost/net: force len for TX to host endian
better patch description
virtio_scsi: v1.0 support
fix bug: use high level, not low level wrappers
included reviewed-by tags for patches:
KVM: s390 allow virtio_ccw status writes to fail
added reviewed-by tag by Cornelia
virtio_scsi: v1.0 support
virtio_scsi: move to uapi
virtio_scsi: export to userspace vhost/scsi: partial virtio 1.0 support
added reviewed-by tag by Paolo
Changes since v3:
- move virtio 1.0 feature bit out of transport bits:
for now it's managed by drivers
- disable virtio 1.0 feature bit explicitly - for transports that don't support it
Cornelia Huck (3):
virtio: allow transports to get avail/used addresses
KVM: s390: virtio-ccw revision 1 SET_VQ
KVM: s390: enable virtio-ccw revision 1
Michael S. Tsirkin (46):
virtio: add low-level APIs for feature bits
virtio: use u32, not bitmap for features
mic_virtio: robust feature array size calculation
virtio: add support for 64 bit features.
virtio: assert 32 bit features in transports
virtio_ccw: add support for 64 bit features.
virtio: add virtio 1.0 feature bit
virtio: memory access APIs
virtio_ring: switch to new memory access APIs
virtio_config: endian conversion for v1.0
virtio: set FEATURES_OK
virtio: simplify feature bit handling
virtio: add legacy feature table support
virtio_net: v1.0 endianness
virtio_blk: v1.0 support
KVM: s390 allow virtio_ccw status writes to fail
virtio_blk: make serial attribute static
virtio_blk: fix race at module removal
virtio_net: pass vi around
virtio_net: get rid of virtio_net_hdr/skb_vnet_hdr
virtio_net: stricter short buffer length checks
virtio_net: bigger header when VERSION_1 is set
virtio_net: disable mac write for virtio 1.0
virtio_net: enable v1.0 support
vhost: make features 64 bit
vhost: add memory access wrappers
vhost/net: force len for TX to host endian
vhost: switch to __get/__put_user exclusively
vhost: virtio 1.0 endian-ness support
vhost/net: virtio 1.0 byte swap
vhost/net: larger header for virtio 1.0
vhost/net: enable virtio 1.0
tun: move internal flag defines out of uapi
tun: drop most type defines
tun: add VNET_LE flag
tun: TUN_VNET_LE support, fix sparse warnings for virtio headers
macvtap: TUN_VNET_LE support
virtio_scsi: v1.0 support
virtio_scsi: move to uapi
virtio_scsi: export to userspace
vhost/scsi: partial virtio 1.0 support
af_packet: virtio 1.0 stubs
virtio_console: virtio 1.0 support
virtio_balloon: add legacy_only flag
virtio: make VIRTIO_F_VERSION_1 a transport bit
virtio: drop VIRTIO_F_VERSION_1 from drivers
Thomas Huth (1):
KVM: s390: Set virtio-ccw transport revision
drivers/vhost/vhost.h | 37 ++++++-
include/linux/virtio.h | 12 ++-
include/linux/virtio_byteorder.h | 59 +++++++++++
include/linux/virtio_config.h | 100 +++++++++++++++++--
include/uapi/linux/if_tun.h | 17 +---
include/uapi/linux/virtio_blk.h | 15 +--
include/uapi/linux/virtio_config.h | 9 +-
include/uapi/linux/virtio_console.h | 7 +-
include/uapi/linux/virtio_net.h | 15 +--
include/uapi/linux/virtio_ring.h | 45 ++++-----
include/{ => uapi}/linux/virtio_scsi.h | 106 ++++++++++----------
include/uapi/linux/virtio_types.h | 46 +++++++++
tools/virtio/linux/virtio.h | 22 +----
tools/virtio/linux/virtio_config.h | 2 +-
drivers/block/virtio_blk.c | 74 ++++++++------
drivers/char/virtio_console.c | 30 +++---
drivers/lguest/lguest_device.c | 13 ++-
drivers/misc/mic/card/mic_virtio.c | 10 +-
drivers/net/macvtap.c | 68 ++++++++-----
drivers/net/tun.c | 168 ++++++++++++++------------------
drivers/net/virtio_net.c | 161 +++++++++++++++---------------
drivers/remoteproc/remoteproc_virtio.c | 7 +-
drivers/s390/kvm/kvm_virtio.c | 7 +-
drivers/s390/kvm/virtio_ccw.c | 172 +++++++++++++++++++++++++++------
drivers/scsi/virtio_scsi.c | 50 ++++++----
drivers/vhost/net.c | 31 +++---
drivers/vhost/scsi.c | 22 +++--
drivers/vhost/vhost.c | 93 +++++++++++-------
drivers/virtio/virtio.c | 78 +++++++++++----
drivers/virtio/virtio_balloon.c | 1 +
drivers/virtio/virtio_mmio.c | 13 ++-
drivers/virtio/virtio_pci.c | 8 +-
drivers/virtio/virtio_ring.c | 109 ++++++++++++---------
net/packet/af_packet.c | 35 ++++---
tools/virtio/virtio_test.c | 5 +-
tools/virtio/vringh_test.c | 16 +--
include/uapi/linux/Kbuild | 2 +
37 files changed, 1061 insertions(+), 604 deletions(-)
create mode 100644 include/linux/virtio_byteorder.h
rename include/{ => uapi}/linux/virtio_scsi.h (73%)
create mode 100644 include/uapi/linux/virtio_types.hSignature · 1 line
MST