[dpdk-dev] [PATCH v2 0/4] Hyper-V Netvsc PMD

Raslan Darawsheh rasland at mellanox.com
Tue Apr 17 11:02:45 CEST 2018


Hi Stephan,

I've just tried to apply your patches on top of current master branch and I have the following two issues:
1- compilation is failing with the following error when compiling with RTE_TARGET=x86_64-native-linuxapp-gcc:
/root/dpdk/x86_64-native-linuxapp-gcc/include/rte_common.h:122:30: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
 #define RTE_PTR_ADD(ptr, x) ((void*)((uintptr_t)(ptr) + (x)))
                              ^
/root/dpdk/buildtools/pmdinfogen/pmdinfogen.c:99:9: note: in expansion of macro 'RTE_PTR_ADD'
  return RTE_PTR_ADD(info->hdr,
         ^
2- compilation is also failing with the following errors when compiling with RTE_TARGET=i686-native-linuxapp-gcc
CC linux/vmbus_uio.o
/root/dpdk/drivers/bus/vmbus/linux/vmbus_bus.c: In function 'rte_vmbus_map_device':
/root/dpdk/drivers/bus/vmbus/linux/vmbus_bus.c:194:39: error: passing argument 2 of 'eal_parse_sysfs_value' from incompatible pointer type [-Werror=incompatible-pointer-types]
   if (eal_parse_sysfs_value(filename, &res->len) < 0) {
                                       ^
In file included from /root/dpdk/drivers/bus/vmbus/linux/vmbus_bus.c:22:0:
/root/dpdk/lib/librte_eal/common/eal_filesystem.h:123:5: note: expected 'long unsigned int *' but argument is of type 'uint64_t * {aka long long unsigned int *}'
 int eal_parse_sysfs_value(const char *filename, unsigned long *val);


I noticed one additional new dependency which is uuid-dev  and I think you might be missing the documentation of that.

Kindest regards,
Raslan Darawsheh

> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Stephen Hemminger
> Sent: Tuesday, April 17, 2018 2:25 AM
> To: dev at dpdk.org
> Cc: Stephen Hemminger <sthemmin at microsoft.com>
> Subject: [dpdk-dev] [PATCH v2 0/4] Hyper-V Netvsc PMD
> 
> This is a revised version of the Hyper-V native bus (VMbus) and 
> network device (netvsc) drivers. This virtual device is used in 
> Microsoft Hyper-V in Windows 10, Windows Server 2016 and Azure. Most 
> of this code was extracted from FreeBSD and some of this is from 
> earlier code donated by Brocade.
> 
> Only Linux is supported at present, but the code is split to allow 
> future FreeBSD and Windows support.
> 
> This version works with upstream kernel (4.16) but in that mode only a 
> single queue is supported. With additional patches that are pending 
> for 5.0 kernel, multi-queue support works as well.
> 
> Device binding is best done via driverctl; this required some 
> additional fixes to kernel and driverctl to work correctly.
> Linux kernel vmbus support needed to support sysfs driver_override and 
> driverctl needed to handle non-PCI bus from udev.
> 
> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> l ab.com%2Fdriverctl%2Fdriverctl%2Fmerge_requests%2F3&data=02%7C01%
> 7Cshahafs%40mellanox.com%7Cb3ebf03807674980977208d5a3f13f51%7Ca65
> 2971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636595178928020801&sdata
> =KIfDnH5vAzVmm71xlb%2F%2BtniP95NLGuqMWImDQVkBfLU%3D&reserve
> d=0
> 
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdriv
> erdev.linuxdriverproject.org%2Fpipermail%2Fdriverdev-devel%2F2018-
> April%2F118889.html&data=02%7C01%7Cshahafs%40mellanox.com%7Cb3eb
> f03807674980977208d5a3f13f51%7Ca652971c7d2e4d9ba6a4d149256f461b%7C
> 0%7C0%7C636595178928020801&sdata=5A%2FxWKy90T5H%2F9cixFZRMl78U
> WNgIyYAt%2BiOKXnHX4U%3D&reserved=0
> 
> 
> Stephen Hemminger (4):
>   bus/vmbus: add hyper-v virtual bus support
>   net/netvsc: add hyper-v netvsc network device
>   net/netvsc: add documentation
>   bus/vmbus and net/netvsc: add meson build support
> 
>  MAINTAINERS                                   |   10 +
>  config/common_base                            |   13 +
>  config/common_linuxapp                        |    4 +
>  config/meson.build                            |    7 +
>  doc/guides/nics/index.rst                     |    1 +
>  doc/guides/nics/netvsc.rst                    |   73 +
>  doc/guides/rel_notes/release_18_05.rst        |    6 +
>  drivers/bus/Makefile                          |    1 +
>  drivers/bus/meson.build                       |    2 +-
>  drivers/bus/vmbus/Makefile                    |   36 +
>  drivers/bus/vmbus/linux/Makefile              |    3 +
>  drivers/bus/vmbus/linux/vmbus_bus.c           |  354 +++++
>  drivers/bus/vmbus/linux/vmbus_uio.c           |  379 +++++
>  drivers/bus/vmbus/meson.build                 |   17 +
>  drivers/bus/vmbus/private.h                   |  132 ++
>  drivers/bus/vmbus/rte_bus_vmbus.h             |  400 ++++++
>  drivers/bus/vmbus/rte_bus_vmbus_version.map   |   28 +
>  drivers/bus/vmbus/rte_vmbus_reg.h             |  344 +++++
>  drivers/bus/vmbus/vmbus_bufring.c             |  241 ++++
>  drivers/bus/vmbus/vmbus_channel.c             |  405 ++++++
>  drivers/bus/vmbus/vmbus_common.c              |  286 ++++
>  drivers/bus/vmbus/vmbus_common_uio.c          |  232 ++++
>  drivers/net/Makefile                          |    1 +
>  drivers/net/meson.build                       |    2 +-
>  drivers/net/netvsc/Makefile                   |   23 +
>  drivers/net/netvsc/hn_ethdev.c                |  760 ++++++++++
>  drivers/net/netvsc/hn_logs.h                  |   35 +
>  drivers/net/netvsc/hn_nvs.c                   |  533 +++++++
>  drivers/net/netvsc/hn_nvs.h                   |  243 ++++
>  drivers/net/netvsc/hn_rndis.c                 | 1101 +++++++++++++++
>  drivers/net/netvsc/hn_rndis.h                 |   26 +
>  drivers/net/netvsc/hn_rxtx.c                  | 1221 +++++++++++++++++
>  drivers/net/netvsc/hn_var.h                   |  140 ++
>  drivers/net/netvsc/meson.build                |   13 +
>  drivers/net/netvsc/ndis.h                     |  378 +++++
>  drivers/net/netvsc/rndis.h                    |  414 ++++++
>  drivers/net/netvsc/rte_pmd_netvsc_version.map |    5 +
>  mk/rte.app.mk                                 |    2 +
>  38 files changed, 7869 insertions(+), 2 deletions(-)  create mode 
> 100644 doc/guides/nics/netvsc.rst  create mode 100644 
> drivers/bus/vmbus/Makefile  create mode 100644 
> drivers/bus/vmbus/linux/Makefile  create mode 100644 
> drivers/bus/vmbus/linux/vmbus_bus.c
>  create mode 100644 drivers/bus/vmbus/linux/vmbus_uio.c
>  create mode 100644 drivers/bus/vmbus/meson.build  create mode 100644 
> drivers/bus/vmbus/private.h  create mode 100644 
> drivers/bus/vmbus/rte_bus_vmbus.h  create mode 100644 
> drivers/bus/vmbus/rte_bus_vmbus_version.map
>  create mode 100644 drivers/bus/vmbus/rte_vmbus_reg.h  create mode
> 100644 drivers/bus/vmbus/vmbus_bufring.c  create mode 100644 
> drivers/bus/vmbus/vmbus_channel.c  create mode 100644 
> drivers/bus/vmbus/vmbus_common.c  create mode 100644 
> drivers/bus/vmbus/vmbus_common_uio.c
>  create mode 100644 drivers/net/netvsc/Makefile  create mode 100644 
> drivers/net/netvsc/hn_ethdev.c  create mode 100644 
> drivers/net/netvsc/hn_logs.h  create mode 100644 
> drivers/net/netvsc/hn_nvs.c  create mode 100644 
> drivers/net/netvsc/hn_nvs.h  create mode 100644 
> drivers/net/netvsc/hn_rndis.c  create mode 100644 
> drivers/net/netvsc/hn_rndis.h  create mode 100644 
> drivers/net/netvsc/hn_rxtx.c  create mode 100644 
> drivers/net/netvsc/hn_var.h  create mode 100644 
> drivers/net/netvsc/meson.build  create mode 100644 
> drivers/net/netvsc/ndis.h  create mode 100644 
> drivers/net/netvsc/rndis.h create mode 100644 
> drivers/net/netvsc/rte_pmd_netvsc_version.map
> 
> --
> 2.17.0



More information about the dev mailing list