DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: longli@linuxonhyperv.com
Cc: Wei Hu <weh@microsoft.com>, dev@dpdk.org, Long Li <longli@microsoft.com>
Subject: Re: [patch v5 0/6] Support VMBUS channels without monitoring enabled
Date: Thu, 10 Apr 2025 08:39:40 -0700	[thread overview]
Message-ID: <20250410083940.580f9d77@hermes.local> (raw)
In-Reply-To: <1744149236-30264-1-git-send-email-longli@linuxonhyperv.com>

On Tue,  8 Apr 2025 14:53:50 -0700
longli@linuxonhyperv.com wrote:

> From: Long Li <longli@microsoft.com>
> 
> Hyperv may expose VMBUS channels without monitoring enabled. In this case,
> it programs almost all the data traffic to VF.
> 
> This patchset enabled vmbus/netvsc to use channels without monitoring
> enabled.
> 
> This needs to change the APIs exposed by drivers/bus/vmbus. Because those
> APIs are used only by NetVSC PMD and not feasible for use by a DPDK
> application, all VMBUS APIs are set to deprecate in upcoming 25.11 release.
> 
> The notice for deprecation is accepted in the following patch:
> https://patchwork.dpdk.org/project/dpdk/patch/1742242184-19600-1-git-send-email-longli@linuxonhyperv.com/
> 
> Change log:
> v3: Add in the comment on the VMBUS API deprecation notice
> 
> Long Li (6):
>   net/netvsc: introduce private data for storing vmbus device for
>     secondary process
>   net/netvsc: introduce get_vmbus_device to get the vmbus device
>   bus/vmbus: store UIO fd for secondary process
>   bus/vmbus: support channels without monitoring enabled
>   bus/vmbus: add rte_vmbus_device to all functions accessing vmbus
>   bus/vmbus: set event for channel without monitoring support
> 
>  drivers/bus/vmbus/linux/vmbus_bus.c  |  9 +++--
>  drivers/bus/vmbus/linux/vmbus_uio.c  |  6 +--
>  drivers/bus/vmbus/private.h          |  2 +-
>  drivers/bus/vmbus/rte_bus_vmbus.h    | 16 +++++---
>  drivers/bus/vmbus/vmbus_channel.c    | 57 ++++++++++++++++++++--------
>  drivers/bus/vmbus/vmbus_common_uio.c |  9 +++--
>  drivers/net/netvsc/hn_ethdev.c       | 44 ++++++++++++++++-----
>  drivers/net/netvsc/hn_nvs.c          | 33 +++++++++++-----
>  drivers/net/netvsc/hn_nvs.h          | 21 ++++++----
>  drivers/net/netvsc/hn_rndis.c        | 11 +++---
>  drivers/net/netvsc/hn_rxtx.c         | 16 ++++----
>  11 files changed, 155 insertions(+), 69 deletions(-)
> 

Still see issues in clang build.
This happens because clang treats _Atomic() as a different type:


####################################################################################
#### [Begin job log] "ubuntu-22.04-gcc-stdatomic" at step Build and test
####################################################################################
[449/3553] Compiling C object lib/librte_port.a.p/port_rte_swx_port_ring.c.o
[450/3553] Generating rte_bus_ifpga.pmd.c with a custom command
[451/3553] Generating rte_bus_vdev.pmd.c with a custom command
[452/3553] Compiling C object drivers/libtmp_rte_common_ionic.a.p/common_ionic_ionic_common_uio.c.o
[453/3553] Compiling C object lib/librte_port.a.p/port_rte_swx_port_source_sink.c.o
[454/3553] Linking static target lib/librte_port.a
[455/3553] Compiling C object drivers/libtmp_rte_bus_vmbus.a.p/bus_vmbus_vmbus_bufring.c.o
[456/3553] Linking static target drivers/librte_common_cnxk.a
[457/3553] Compiling C object drivers/libtmp_rte_bus_vmbus.a.p/bus_vmbus_linux_vmbus_bus.c.o
[458/3553] Compiling C object drivers/libtmp_rte_bus_vmbus.a.p/bus_vmbus_vmbus_common.c.o
[459/3553] Compiling C object drivers/libtmp_rte_bus_vmbus.a.p/bus_vmbus
ccache gcc -Idrivers/libtmp_rte_bus_vmbus.a.p -Idrivers -I../drivers -Idrivers/bus/vmbus -I../drivers/bus/vmbus -I../drivers/bus/vmbus/linux -Ilib/eal/common -I../lib/eal/common -I. -I.. -Iconfig -I../config -Ilib/eal/include -I../lib/eal/include -Ilib/eal/linux/include -I../lib/eal/linux/include -Ilib/eal/x86/include -I../lib/eal/x86/include -I../kernel/linux -Ilib/eal -I../lib/eal -Ilib/kvargs -I../lib/kvargs -Ilib/log -I../lib/log -Ilib/metrics -I../lib/metrics -Ilib/telemetry -I../lib/telemetry -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O2 -g -include rte_config.h -Wvla -Wcast-qual -Wdeprecated -Wformat -Wformat-nonliteral -Wformat-security -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpointer-arith -Wsign-compare -Wstrict-prototypes -Wundef -Wwrite-strings -Wno-packed-not-aligned -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=corei7 -mrtm -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -Wno-format-truncation -Wno-address-of-packed-member -DRTE_LOG_DEFAULT_LOGTYPE=bus.vmbus -MD -MQ drivers/libtmp_rte_bus_vmbus.a.p/bus_vmbus_vmbus_channel.c.o -MF drivers/libtmp_rte_bus_vmbus.a.p/bus_vmbus_vmbus_channel.c.o.d -o drivers/libtmp_rte_bus_vmbus.a.p/bus_vmbus_vmbus_channel.c.o -c ../drivers/bus/vmbus/vmbus_channel.c
../drivers/bus/vmbus/vmbus_channel.c: In function ‘vmbus_set_monitor’:
../drivers/bus/vmbus/vmbus_channel.c:51:22: error: assignment to ‘uint32_t *’ {aka ‘unsigned int *’} from incompatible pointer type ‘_Atomic uint32_t *’ {aka ‘_Atomic unsigned int *’} [-Werror=incompatible-pointer-types]
   51 |         monitor_addr = &channel->monitor_page->trigs[trigger_index].pending;
      |                      ^
cc1: all warnings being treated as errors

      parent reply	other threads:[~2025-04-10 15:39 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-08 21:53 longli
2025-04-08 21:53 ` [patch v5 1/6] net/netvsc: introduce private data for storing vmbus device for secondary process longli
2025-04-08 21:53 ` [patch v5 2/6] net/netvsc: introduce get_vmbus_device to get the vmbus device longli
2025-04-08 21:53 ` [patch v5 3/6] bus/vmbus: store UIO fd for secondary process longli
2025-04-08 21:53 ` [patch v5 4/6] bus/vmbus: support channels without monitoring enabled longli
2025-04-08 21:53 ` [patch v5 5/6] bus/vmbus: add rte_vmbus_device to all functions accessing vmbus longli
2025-04-08 21:53 ` [patch v5 6/6] bus/vmbus: set event for channel without monitoring support longli
2025-04-10 15:39 ` Stephen Hemminger [this message]

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=20250410083940.580f9d77@hermes.local \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=longli@linuxonhyperv.com \
    --cc=longli@microsoft.com \
    --cc=weh@microsoft.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).