Thread (5 messages) 5 messages, 2 authors, 2022-02-24

Re: Question about the sndbuf of the tap interface with vhost-net

From: Jason Wang <jasowang@redhat.com>
Date: 2022-02-24 03:23:59

Adding netdev.

On Wed, Feb 23, 2022 at 9:46 PM Harold Huang [off-list ref] wrote:
 Sorry. The performance tested by iperf is degraded from 4.5 Gbps to
750Mbps per flow.

Harold Huang [off-list ref] 于2022年2月23日周三 21:13写道:
quoted
I see in dpdk virtio-user driver, the TUNSETSNDBUF is initialized with
INT_MAX, see: https://github.com/DPDK/dpdk/blob/main/drivers/net/virtio/virtio_user/vhost_kernel_tap.c#L169
Note that Linux use INT_MAX as default sndbuf for tuntap.
quoted
It is ok because tap driver uses it to support tx baching, see this
patch: https://github.com/torvalds/linux/commit/0a0be13b8fe2cac11da2063fb03f0f39359b3069

But in tun_xdp_one, napi is not supported and I want to user napi in
tun_get_user to enable gro.
NAPI is not enabled in this path, want to send a patch to do that?

Btw, NAPI mode is used for kernel networking stack hardening at start,
but it would be interesting to see if it helps for the performance.
quoted
As I result, I change the sndbuf to a
value such as 212992 in /proc/sys/net/core/wmem_default.
Can you describe your setup in detail? Where did you run the iperf
server and client and where did you change the wmem_default?
quoted
But the
performance tested by iperf is greatly degraded, from 4.5 Gbps to
750Gbps per flow. I see the the iperf server consume 100% cpu core,
which should be the bottleneck of the this test. The perf top result
of iperf server cpu core is as follows:

'''
Samples: 72  of event 'cycles', 4000 Hz, Event count (approx.):
22685278 lost: 0/0 drop: 0/0
Overhead  Shared O  Symbol
  59.86%  [kernel]  [k] report_bug
  20.66%  [kernel]  [k] module_find_bug
   6.51%  [kernel]  [k] common_interrupt
   2.82%  [kernel]  [k] __slab_free
   1.48%  [kernel]  [k] copy_user_enhanced_fast_string
   1.44%  [kernel]  [k] __skb_datagram_iter
   1.42%  [kernel]  [k] notifier_call_chain
   1.41%  [kernel]  [k] irq_work_run_list
   1.41%  [kernel]  [k] update_irq_load_avg
   1.41%  [kernel]  [k] task_tick_fair
   1.41%  [kernel]  [k] cmp_ex_search
   0.16%  [kernel]  [k] __ghes_peek_estatus.isra.12
   0.02%  [kernel]  [k] acpi_os_read_memory
   0.00%  [kernel]  [k] native_apic_mem_write
'''
I am not clear about the test result. Can we change the sndbuf size in
dpdk? Is any way to enable vhost_net to use napi without changing the
tun kernel driver?
You can do this by not using INT_MAX as sndbuf.

Thanks
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help