tools/virtio: cleanups, fixes
Michael S. Tsirkin
maintainercover tools/virtio: cleanups, fixes
Recent virtio changes brought about build errors for tools/virtio, as usual. I did some refactoring to hopefully reduce maintainance load going forward.
Adding stubs is tedious and seemed a perfect fit for cursor - so I used it for that, then rewrote some commits and accepted others. commit logs I've rewritten.
Found and fixed a couple of minor bugs while doing this - that part's all mine.
Michael S. Tsirkin (14):
tools/virtio: fix up compiler.h stub
virtio: make it self-contained
tools/virtio: use kernel's virtio.h tools/virtio: add struct module forward declaration tools/virtio: stub DMA mapping functions tools/virtio: add dev_WARN_ONCE and is_vmalloc_addr stubs tools/virtio: add ucopysize.h stub
tools/virtio: pass KCFLAGS to module build tools/virtio: add struct cpumask to cpumask.h tools/virtio: stub might_sleep and synchronize_rcu tools/virtio: switch to kernel's virtio_config.h
virtio_features: make it self-contained tools/virtio: fix up oot build
tools/virtio: add device, device_driver stubs
include/linux/virtio.h | 2 + include/linux/virtio_features.h | 2 + tools/virtio/Makefile | 8 ++- tools/virtio/linux/compiler.h | 6 ++ tools/virtio/linux/cpumask.h | 4 ++ tools/virtio/linux/device.h | 8 +++ tools/virtio/linux/dma-mapping.h | 4 ++ tools/virtio/linux/kernel.h | 16 +++++ tools/virtio/linux/module.h | 2 + tools/virtio/linux/ucopysize.h | 21 ++++++ tools/virtio/linux/virtio.h | 73 +-------------------- tools/virtio/linux/virtio_config.h | 102 +---------------------------- tools/virtio/oot-stubs.h | 10 +++ 13 files changed, 82 insertions(+), 176 deletions(-) create mode 100644 tools/virtio/linux/ucopysize.h create mode 100644 tools/virtio/oot-stubs.h
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 1/14 tools/virtio: fix up compiler.h stub
Add #undef __user before and after including compiler_types.h to avoid redefinition warnings when compiling with system headers that also define __user. This allows tools/virtio to build without warnings.
Additionally, stub out __must_check
Created using Cursor CLI.
--- tools/virtio/linux/compiler.h | 6 ++++++ 1 file changed, 6 insertions(+)
tools/virtio/linux/compiler.h +6 -0
@@ -2,7 +2,11 @@#ifndef LINUX_COMPILER_H #define LINUX_COMPILER_H +/* Avoid redefinition warnings */ +#undef __user#include "../../../include/linux/compiler_types.h" +#undef __user +#define __user#define WRITE_ONCE (var, val) \ (*((volatile typeof(val) *)(&(var))) = (val))
@@ -35,4 +39,6 @@ __v; \ }) +#define __must_check +#endif
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 2/14 virtio: make it self-contained
In reply to Michael S. Tsirkinvirtio.h uses struct module, add a forward declaration to make the header self-contained.
--- include/linux/virtio.h | 2 ++ 1 file changed, 2 insertions(+)
include/linux/virtio.h +2 -0
@@ -13,6 +13,8 @@#include <linux/completion.h> #include <linux/virtio_features.h> +struct module ; +/** * struct virtqueue - a queue to register buffers for sending or receiving. * @list: the chain of virtqueues for this device
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 3/14 tools/virtio: use kernel's virtio.h
In reply to Michael S. TsirkinReplace virtio stubs with an include of the kernel header.
--- tools/virtio/linux/virtio.h | 73 +------------------------------------ 1 file changed, 1 insertion(+), 72 deletions(-)
tools/virtio/linux/virtio.h +1 -72
@@ -1,72 +1 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef LINUX_VIRTIO_H -#define LINUX_VIRTIO_H -#include <linux/scatterlist.h> -#include <linux/kernel.h> -#include <linux/spinlock.h> - -struct device { -void *parent; -}; - -struct virtio_device { -struct device dev; -u64 features; -struct list_head vqs; -spinlock_t vqs_list_lock; -const struct virtio_config_ops *config; -}; - -struct virtqueue { -struct list_head list; -void (*callback)(struct virtqueue *vq); -const char *name; -struct virtio_device *vdev; -unsigned int index; -unsigned int num_free; -unsigned int num_max; -void *priv; -bool reset; -}; - -/* Interfaces exported by virtio_ring. */ -int virtqueue_add_sgs (struct virtqueue *vq, -struct scatterlist *sgs[], -unsigned int out_sgs, -unsigned int in_sgs, -void *data, -gfp_t gfp); - -int virtqueue_add_outbuf (struct virtqueue *vq, -struct scatterlist sg[],unsigned int num, -void *data, -gfp_t gfp); - -int virtqueue_add_inbuf (struct virtqueue *vq, -struct scatterlist sg[],unsigned int num, -void *data, -gfp_t gfp); - -bool virtqueue_kick (struct virtqueue *vq); - -void *virtqueue_get_buf (struct virtqueue *vq,unsigned int *len); - -void virtqueue_disable_cb (struct virtqueue *vq); - -bool virtqueue_enable_cb (struct virtqueue *vq); -bool virtqueue_enable_cb_delayed (struct virtqueue *vq); - -void *virtqueue_detach_unused_buf (struct virtqueue *vq); -struct virtqueue *vring_new_virtqueue (unsigned int index, -unsigned int num, -unsigned int vring_align, -struct virtio_device *vdev, -bool weak_barriers, -bool ctx, -void *pages, -bool (*notify)(struct virtqueue *vq), -void (*callback)(struct virtqueue *vq), -const char *name); -void vring_del_virtqueue (struct virtqueue *vq); - -#endif +#include <../../include/linux/virtio.h>
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 4/14 tools/virtio: add struct module forward declaration
In reply to Michael S. TsirkinDeclarate struct module in our linux/module.h stub.
Created using Cursor CLI.
--- tools/virtio/linux/module.h | 2 ++ 1 file changed, 2 insertions(+)
tools/virtio/linux/module.h +2 -0
@@ -1,6 +1,8 @@/* SPDX-License-Identifier: GPL-2.0 */ #include <linux/export.h> +struct module ; +#define MODULE_LICENSE (__MODULE_LICENSE_value) \ static __attribute__((unused)) const char *__MODULE_LICENSE_name = \ __MODULE_LICENSE_value
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 5/14 tools/virtio: stub DMA mapping functions
In reply to Michael S. TsirkinAdd dma_map_page_attrs and dma_unmap_page_attrs stubs. Follow the same pattern as existing DMA mapping stubs.
Created using Cursor CLI.
--- tools/virtio/linux/dma-mapping.h | 4 ++++ 1 file changed, 4 insertions(+)
tools/virtio/linux/dma-mapping.h +4 -0
@@ -22,6 +22,7 @@ enum dma_data_direction {#define dma_free_coherent (d, s, p, h) kfree(p)#define dma_map_page (d, p, o, s, dir) (page_to_phys(p) + (o)) +#define dma_map_page_attrs (d, p, o, s, dir, a) (page_to_phys(p) + (o))#define dma_map_single (d, p, s, dir) (virt_to_phys(p))#define dma_map_single_attrs (d, p, s, dir, a) (virt_to_phys(p))
@@ -29,6 +30,9 @@ enum dma_data_direction {#define dma_unmap_single (d, a, s, r) do { (void)(d); (void)(a); (void)(s); (void)(r); } while (0)#define dma_unmap_page (d, a, s, r) do { (void)(d); (void)(a); (void)(s); (void)(r); } while (0) +#define dma_unmap_page_attrs (d, a, s, r, t) do { \ + (void)(d); (void)(a); (void)(s); (void)(r); (void)(t); \ +} while (0)#define sg_dma_address (sg) (0)#define sg_dma_len (sg) (0)
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 6/14 tools/virtio: add dev_WARN_ONCE and is_vmalloc_addr stubs
In reply to Michael S. TsirkinAdd dev_WARN_ONCE and is_vmalloc_addr stubs needed by virtio_ring.c. is_vmalloc_addr stub always returns false - that's fine since it's merely a sanity check.
Created using Cursor CLI.
--- tools/virtio/linux/kernel.h | 9 +++++++++ 1 file changed, 9 insertions(+)
tools/virtio/linux/kernel.h +9 -0
@@ -14,6 +14,7 @@#include <linux/log2.h> #include <linux/types.h> #include <linux/overflow.h> +#include <linux/limits.h> #include <linux/list.h> #include <linux/printk.h> #include <linux/bug.h>
@@ -135,6 +136,14 @@ static inline void *krealloc_array(void *p, size_t new_n, size_t new_size, gfp_t#define dev_warn (dev, format, ...) fprintf (stderr, format, ## __VA_ARGS__)#define dev_warn_once (dev, format, ...) fprintf (stderr, format, ## __VA_ARGS__) +#define dev_WARN_ONCE(dev, condition, format...) \ + WARN_ONCE(condition, format) + +static inline bool is_vmalloc_addr (const void *x) +{ +return false; +} +#define min (x, y) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 7/14 tools/virtio: add ucopysize.h stub
In reply to Michael S. TsirkinAdd ucopysize.h with stub implementations of check_object_size, copy_overflow, and check_copy_size.
Created using Cursor CLI.
--- tools/virtio/linux/ucopysize.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 tools/virtio/linux/ucopysize.h
tools/virtio/linux/ucopysize.h new file +21 -0
@@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __LINUX_UCOPYSIZE_H__ +#define __LINUX_UCOPYSIZE_H__ + +#include <linux/bug.h> + +static inline void check_object_size (const void *ptr,unsigned long n, +bool to_user) +{ } + +static inline void copy_overflow (int size,unsigned long count) +{ +} + +static __always_inline __must_check bool +check_copy_size (const void *addr,size_t bytes,bool is_source) +{ +return true; +} + +#endif /* __LINUX_UCOPYSIZE_H__ */
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 8/14 tools/virtio: pass KCFLAGS to module build
In reply to Michael S. TsirkinUpdate the mod target to pass KCFLAGS with the in-tree vhost driver include path. This way vhost_test can find vhost headers.
Created using Cursor CLI.
--- tools/virtio/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
tools/virtio/Makefile +2 -1
@@ -20,8 +20,9 @@ CFLAGS += -g -O2 -Werror -Wno-maybe-uninitialized -Wall -I. -I../include/ -I ../ CFLAGS += -pthread LDFLAGS += -pthread vpath %.c ../../drivers/virtio ../../drivers/vhost +BUILD=KCFLAGS="-I "`pwd`/../../drivers/vhost ${MAKE} -C `pwd`/../.. V=${V} mod: - ${MAKE} -C `pwd`/../.. M=`pwd`/vhost_test V=${V} + ${BUILD} M=`pwd`/vhost_test #oot: build vhost as an out of tree module for a distro kernel #no effort is taken to make it actually build or work, but tends to mostly work
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 9/14 tools/virtio: add struct cpumask to cpumask.h
In reply to Michael S. TsirkinAdd struct cpumask stub used by virtio_config.h.
Created using Cursor CLI.
--- tools/virtio/linux/cpumask.h | 4 ++++ 1 file changed, 4 insertions(+)
tools/virtio/linux/cpumask.h +4 -0
@@ -4,4 +4,8 @@#include <linux/kernel.h> +struct cpumask { +unsigned long bits[1 ]; +}; +#endif /* _LINUX_CPUMASK_H */
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 10/14 tools/virtio: stub might_sleep and synchronize_rcu
In reply to Michael S. TsirkinAdd might_sleep() and synchronize_rcu() stubs needed by virtio_config.h.
might_sleep() is a no-op, synchronize_rcu doesn't work but we don't need it to.
Created using Cursor CLI.
--- tools/virtio/linux/kernel.h | 7 +++++++ 1 file changed, 7 insertions(+)
tools/virtio/linux/kernel.h +7 -0
@@ -144,6 +144,13 @@ static inline bool is_vmalloc_addr(const void *x)return false; } +#define might_sleep () do { } while (0) + +static inline void synchronize_rcu (void ) +{ +assert (0 ); +} +#define min (x, y) ({ \ typeof(x) _min1 = (x); \ typeof(y) _min2 = (y); \
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 11/14 tools/virtio: switch to kernel's virtio_config.h
In reply to Michael S. TsirkinDrops stubs in virtio_config.h, use the kernel's version instead - we are now activly developing it, so the stub became too hard to maintain.
--- tools/virtio/linux/virtio_config.h | 102 +---------------------------- 1 file changed, 1 insertion(+), 101 deletions(-)
tools/virtio/linux/virtio_config.h +1 -101
@@ -1,101 +1 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef LINUX_VIRTIO_CONFIG_H -#define LINUX_VIRTIO_CONFIG_H -#include <linux/virtio_byteorder.h> -#include <linux/virtio.h> -#include <uapi/linux/virtio_config.h> - -struct virtio_config_ops { -int (*disable_vq_and_reset)(struct virtqueue *vq); -int (*enable_vq_after_reset)(struct virtqueue *vq); -}; - -/* -* __virtio_test_bit - helper to test feature bits. For use by transports. -* Devices should normally use virtio_has_feature, -* which includes more checks. -* @vdev: the device -* @fbit: the feature bit -*/ -static inline bool __virtio_test_bit (const struct virtio_device *vdev, -unsigned int fbit) -{ -return vdev->features & (1ULL << fbit); -} - -/** -* __virtio_set_bit - helper to set feature bits. For use by transports. -* @vdev: the device -* @fbit: the feature bit -*/ -static inline void __virtio_set_bit (struct virtio_device *vdev, -unsigned int fbit) -{ - vdev->features |= (1ULL << fbit); -} - -/** -* __virtio_clear_bit - helper to clear feature bits. For use by transports. -* @vdev: the device -* @fbit: the feature bit -*/ -static inline void __virtio_clear_bit (struct virtio_device *vdev, -unsigned int fbit) -{ - vdev->features &= ~(1ULL << fbit); -} - -#define virtio_has_feature (dev, feature) \ - (__virtio_test_bit((dev), feature)) - -/** -* virtio_has_dma_quirk - determine whether this device has the DMA quirk -* @vdev: the device -*/ -static inline bool virtio_has_dma_quirk (const struct virtio_device *vdev) -{ -/* -* Note the reverse polarity of the quirk feature (compared to most -* other features), this is for compatibility with legacy systems. -*/ -return !virtio_has_feature (vdev,VIRTIO_F_ACCESS_PLATFORM ); -} - -static inline bool virtio_is_little_endian (struct virtio_device *vdev) -{ -return virtio_has_feature (vdev,VIRTIO_F_VERSION_1 ) || -virtio_legacy_is_little_endian (); -} - -/* Memory accessors */ -static inline u16 virtio16_to_cpu (struct virtio_device *vdev,__virtio16 val) -{ -return __virtio16_to_cpu (virtio_is_little_endian (vdev), val); -} - -static inline __virtio16 cpu_to_virtio16 (struct virtio_device *vdev,u16 val) -{ -return __cpu_to_virtio16 (virtio_is_little_endian (vdev), val); -} - -static inline u32 virtio32_to_cpu (struct virtio_device *vdev,__virtio32 val) -{ -return __virtio32_to_cpu (virtio_is_little_endian (vdev), val); -} - -static inline __virtio32 cpu_to_virtio32 (struct virtio_device *vdev,u32 val) -{ -return __cpu_to_virtio32 (virtio_is_little_endian (vdev), val); -} - -static inline u64 virtio64_to_cpu (struct virtio_device *vdev,__virtio64 val) -{ -return __virtio64_to_cpu (virtio_is_little_endian (vdev), val); -} - -static inline __virtio64 cpu_to_virtio64 (struct virtio_device *vdev,u64 val) -{ -return __cpu_to_virtio64 (virtio_is_little_endian (vdev), val); -} - -#endif +#include "../../include/linux/virtio_config.h"
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 12/14 virtio_features: make it self-contained
In reply to Michael S. Tsirkinvirtio_features.h uses WARN_ON_ONCE and memset so it must include linux/bug.h and linux/string.h
--- include/linux/virtio_features.h | 2 ++ 1 file changed, 2 insertions(+)
include/linux/virtio_features.h +2 -0
@@ -3,6 +3,8 @@#define _LINUX_VIRTIO_FEATURES_H#include <linux/bits.h> +#include <linux/bug.h> +#include <linux/string.h> #define VIRTIO_FEATURES_U64S 2#define VIRTIO_FEATURES_BITS (VIRTIO_FEATURES_U64S * 64)
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 13/14 tools/virtio: fix up oot build
In reply to Michael S. Tsirkinoot build tends to help uncover bugs so it's worth keeping around, as long as it's low effort.
add stubs for a couple of macros virtio gained recently, and disable vdpa in the test build.
--- tools/virtio/Makefile | 5 +++-- tools/virtio/oot-stubs.h | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 tools/virtio/oot-stubs.h
tools/virtio/Makefile +3 -2
@@ -38,8 +38,9 @@ OOT_CONFIGS=\ CONFIG_VHOST_NET=n \ CONFIG_VHOST_SCSI=n \ CONFIG_VHOST_VSOCK=n \ - CONFIG_VHOST_RING=n -OOT_BUILD=KCFLAGS="-I "${OOT_VHOST} ${MAKE} -C ${OOT_KSRC} V=${V} + CONFIG_VHOST_RING=n \ + CONFIG_VHOST_VDPA=n +OOT_BUILD=KCFLAGS="-include "`pwd`"/oot-stubs.h -I "${OOT_VHOST} ${MAKE} -C ${OOT_KSRC} V=${V} oot-build: echo "UNSUPPORTED! Don't use the resulting modules in production!" ${OOT_BUILD} M=`pwd`/vhost_test
tools/virtio/oot-stubs.h new file +10 -0
@@ -0,0 +1,10 @@ +#include <linux/bug.h> +#include <linux/string.h> +#include <linux/virtio_features.h> + +#ifndef VIRTIO_FEATURES_BITS +#define VIRTIO_FEATURES_BITS 128 +#endif +#ifndef VIRTIO_U64 +#define VIRTIO_U64 (b) ((b) >> 6) +#endif
Signature · 1 line
MST
Michael S. Tsirkin
maintainerPATCH 14/14 tools/virtio: add device, device_driver stubs
In reply to Michael S. TsirkinAdd stubs needed by virtio.h
--- tools/virtio/linux/device.h | 8 ++++++++ 1 file changed, 8 insertions(+)
tools/virtio/linux/device.h +8 -0
@@ -1,2 +1,10 @@#ifndef LINUX_DEVICE_H + +struct device { +void *parent; +}; + +struct device_driver { +const char *name; +};#endif
Signature · 1 line
MST
Michael S. Tsirkin
maintainerQuoted 10 lines · Michael S. Tsirkin
Recent virtio changes brought about build errors for
tools/virtio, as usual. I did some refactoring to hopefully reduce maintainance load going forward.Adding stubs is tedious and seemed a perfect fit for cursor - so I used it for that, then rewrote some commits and accepted others. commit logs I've rewritten.
Found and fixed a couple of minor bugs while doing this - that part's all mine.
Jason, any feedback?
Quoted 36 lines
Michael S. Tsirkin (14):
tools/virtio: fix upcompiler.hstub
virtio: make it self-contained
tools/virtio: use kernel'svirtio.htools/virtio: add struct module forward declarationtools/virtio: stub DMA mapping functionstools/virtio: adddev_WARN_ONCEandis_vmalloc_addrstubstools/virtio: adducopysize.hstub
tools/virtio: pass KCFLAGS to module buildtools/virtio: add struct cpumask tocpumask.htools/virtio: stubmight_sleepandsynchronize_rcutools/virtio: switch to kernel'svirtio_config.h
virtio_features: make it self-containedtools/virtio: fix up oot build
tools/virtio: add device,device_driverstubsinclude/linux/virtio.h | 2 + include/linux/virtio_features.h | 2 + tools/virtio/Makefile | 8 ++- tools/virtio/linux/compiler.h | 6 ++ tools/virtio/linux/cpumask.h | 4 ++ tools/virtio/linux/device.h | 8 +++ tools/virtio/linux/dma-mapping.h | 4 ++ tools/virtio/linux/kernel.h | 16 +++++ tools/virtio/linux/module.h | 2 + tools/virtio/linux/ucopysize.h | 21 ++++++ tools/virtio/linux/virtio.h | 73 +-------------------- tools/virtio/linux/virtio_config.h | 102 +---------------------------- tools/virtio/oot-stubs.h | 10 +++ 13 files changed, 82 insertions(+), 176 deletions(-) create mode 100644 tools/virtio/linux/ucopysize.h create mode 100644 tools/virtio/oot-stubs.hSignature · 1 line
MST
Quoted 10 lines · Michael S. Tsirkin
Quoted 8 lines · Michael S. Tsirkin
Recent virtio changes brought about build errors for
tools/virtio, as usual. I did some refactoring to hopefully reduce maintainance load going forward.Adding stubs is tedious and seemed a perfect fit for cursor - so I used it for that, then rewrote some commits and accepted others. commit logs I've rewritten.
Quoted 5 lines
Quoted 2 lines
Found and fixed a couple of minor bugs while doing this - that part's all mine.
Jason, any feedback?
Looks good to me. But I wonder, it looks like synchronization will become more and more a burden in the future, I wonder if it's time to switch to using uAPI instead of trying to reuse kernel virtio core to test vhost?
Thanks
Quoted 38 lines
Quoted 37 lines
Michael S. Tsirkin (14):
tools/virtio: fix upcompiler.hstub
virtio: make it self-contained
tools/virtio: use kernel'svirtio.htools/virtio: add struct module forward declarationtools/virtio: stub DMA mapping functionstools/virtio: adddev_WARN_ONCEandis_vmalloc_addrstubstools/virtio: adducopysize.hstub
tools/virtio: pass KCFLAGS to module buildtools/virtio: add struct cpumask tocpumask.htools/virtio: stubmight_sleepandsynchronize_rcutools/virtio: switch to kernel'svirtio_config.h
virtio_features: make it self-containedtools/virtio: fix up oot build
tools/virtio: add device,device_driverstubsinclude/linux/virtio.h | 2 + include/linux/virtio_features.h | 2 + tools/virtio/Makefile | 8 ++- tools/virtio/linux/compiler.h | 6 ++ tools/virtio/linux/cpumask.h | 4 ++ tools/virtio/linux/device.h | 8 +++ tools/virtio/linux/dma-mapping.h | 4 ++ tools/virtio/linux/kernel.h | 16 +++++ tools/virtio/linux/module.h | 2 + tools/virtio/linux/ucopysize.h | 21 ++++++ tools/virtio/linux/virtio.h | 73 +-------------------- tools/virtio/linux/virtio_config.h | 102 +---------------------------- tools/virtio/oot-stubs.h | 10 +++ 13 files changed, 82 insertions(+), 176 deletions(-) create mode 100644 tools/virtio/linux/ucopysize.h create mode 100644 tools/virtio/oot-stubs.h--
MST
Michael S. Tsirkin
maintainerQuoted 15 lines · Jason Wang
Quoted 14 lines · Michael S. Tsirkin
Quoted 10 lines · Michael S. Tsirkin
Recent virtio changes brought about build errors for
tools/virtio, as usual. I did some refactoring to hopefully reduce maintainance load going forward.Adding stubs is tedious and seemed a perfect fit for cursor - so I used it for that, then rewrote some commits and accepted others. commit logs I've rewritten.
Found and fixed a couple of minor bugs while doing this - that part's all mine.
Quoted 8 lines
Quoted 1 line
Jason, any feedback?
Looks good to me. But I wonder, it looks like synchronization will become more and more a burden in the future, I wonder if it's time to switch to using uAPI instead of trying to reuse kernel virtio core to test vhost?
Thanks
Nothing prevents you from adding more tests, for sure.
UAPI - will likely not get us there. But if you have the energy to add selftests, maybe.
Quoted 38 lines
Quoted 38 lines
Quoted 37 lines
Michael S. Tsirkin (14):
tools/virtio: fix upcompiler.hstub
virtio: make it self-contained
tools/virtio: use kernel'svirtio.htools/virtio: add struct module forward declarationtools/virtio: stub DMA mapping functionstools/virtio: adddev_WARN_ONCEandis_vmalloc_addrstubstools/virtio: adducopysize.hstub
tools/virtio: pass KCFLAGS to module buildtools/virtio: add struct cpumask tocpumask.htools/virtio: stubmight_sleepandsynchronize_rcutools/virtio: switch to kernel'svirtio_config.h
virtio_features: make it self-containedtools/virtio: fix up oot build
tools/virtio: add device,device_driverstubsinclude/linux/virtio.h | 2 + include/linux/virtio_features.h | 2 + tools/virtio/Makefile | 8 ++- tools/virtio/linux/compiler.h | 6 ++ tools/virtio/linux/cpumask.h | 4 ++ tools/virtio/linux/device.h | 8 +++ tools/virtio/linux/dma-mapping.h | 4 ++ tools/virtio/linux/kernel.h | 16 +++++ tools/virtio/linux/module.h | 2 + tools/virtio/linux/ucopysize.h | 21 ++++++ tools/virtio/linux/virtio.h | 73 +-------------------- tools/virtio/linux/virtio_config.h | 102 +---------------------------- tools/virtio/oot-stubs.h | 10 +++ 13 files changed, 82 insertions(+), 176 deletions(-) create mode 100644 tools/virtio/linux/ucopysize.h create mode 100644 tools/virtio/oot-stubs.h--
MST
Michael S. Tsirkin
maintainerQuoted 11 lines · Jason Wang
Quoted 10 lines · Michael S. Tsirkin
Quoted 8 lines · Michael S. Tsirkin
Recent virtio changes brought about build errors for
tools/virtio, as usual. I did some refactoring to hopefully reduce maintainance load going forward.Adding stubs is tedious and seemed a perfect fit for cursor - so I used it for that, then rewrote some commits and accepted others. commit logs I've rewritten.
Quoted 7 lines
Quoted 5 lines
Quoted 2 lines
Found and fixed a couple of minor bugs while doing this - that part's all mine.
Jason, any feedback?
Looks good to me.
Can I get an Ack then?
Quoted 45 lines
But I wonder, it looks like synchronization will
become more and more a burden in the future, I wonder if it's time to switch to using uAPI instead of trying to reuse kernel virtio core to test vhost?Thanks
Quoted 38 lines
Quoted 37 lines
Michael S. Tsirkin (14):
tools/virtio: fix upcompiler.hstub
virtio: make it self-contained
tools/virtio: use kernel'svirtio.htools/virtio: add struct module forward declarationtools/virtio: stub DMA mapping functionstools/virtio: adddev_WARN_ONCEandis_vmalloc_addrstubstools/virtio: adducopysize.hstub
tools/virtio: pass KCFLAGS to module buildtools/virtio: add struct cpumask tocpumask.htools/virtio: stubmight_sleepandsynchronize_rcutools/virtio: switch to kernel'svirtio_config.h
virtio_features: make it self-containedtools/virtio: fix up oot build
tools/virtio: add device,device_driverstubsinclude/linux/virtio.h | 2 + include/linux/virtio_features.h | 2 + tools/virtio/Makefile | 8 ++- tools/virtio/linux/compiler.h | 6 ++ tools/virtio/linux/cpumask.h | 4 ++ tools/virtio/linux/device.h | 8 +++ tools/virtio/linux/dma-mapping.h | 4 ++ tools/virtio/linux/kernel.h | 16 +++++ tools/virtio/linux/module.h | 2 + tools/virtio/linux/ucopysize.h | 21 ++++++ tools/virtio/linux/virtio.h | 73 +-------------------- tools/virtio/linux/virtio_config.h | 102 +---------------------------- tools/virtio/oot-stubs.h | 10 +++ 13 files changed, 82 insertions(+), 176 deletions(-) create mode 100644 tools/virtio/linux/ucopysize.h create mode 100644 tools/virtio/oot-stubs.h--
MST
Jason Wang
Acked-byQuoted 17 lines · Michael S. Tsirkin
Quoted 15 lines · Jason Wang
Quoted 14 lines · Michael S. Tsirkin
Quoted 10 lines · Michael S. Tsirkin
Recent virtio changes brought about build errors for
tools/virtio, as usual. I did some refactoring to hopefully reduce maintainance load going forward.Adding stubs is tedious and seemed a perfect fit for cursor - so I used it for that, then rewrote some commits and accepted others. commit logs I've rewritten.
Found and fixed a couple of minor bugs while doing this - that part's all mine.
Quoted 6 lines
Quoted 3 lines
Quoted 1 line
Jason, any feedback?
Looks good to me.
Can I get an Ack then?
Thanks