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
prev 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).