All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v6 0/5] virtio-net: support dynamic coalescing moderation
@ 2023-12-05  8:02 Heng Qi
  2023-12-05  8:02 ` [PATCH net-next v6 1/5] virtio-net: returns whether napi is complete Heng Qi
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Heng Qi @ 2023-12-05  8:02 UTC (permalink / raw)
  To: netdev, virtualization
  Cc: jasowang, mst, pabeni, kuba, yinjun.zhang, edumazet, davem, hawk,
	john.fastabend, ast, horms, xuanzhuo

Now, virtio-net already supports per-queue moderation parameter
setting. Based on this, we use the linux dimlib to support
dynamic coalescing moderation for virtio-net.

Due to some scheduling issues, we only support and test the rx dim.

Some test results:

I. Sockperf UDP
=================================================
1. Env
rxq_0 with affinity to cpu_0.

2. Cmd
client: taskset -c 0 sockperf tp -p 8989 -i $IP -t 10 -m 16B
server: taskset -c 0 sockperf sr -p 8989

3. Result
dim off: 1143277.00 rxpps, throughput 17.844 MBps, cpu is 100%.
dim on:  1124161.00 rxpps, throughput 17.610 MBps, cpu is 83.5%.
=================================================

II. Redis
=================================================
1. Env
There are 8 rxqs, and rxq_i with affinity to cpu_i.

2. Result
When all cpus are 100%, ops/sec of memtier_benchmark client is
dim off:  978437.23
dim on:  1143638.28
=================================================

III. Nginx
=================================================
1. Env
There are 8 rxqs and rxq_i with affinity to cpu_i.

2. Result
When all cpus are 100%, requests/sec of wrk client is
dim off:  877931.67
dim on:  1019160.31
=================================================

IV. Latency of sockperf udp
=================================================
1. Rx cmd
taskset -c 0 sockperf sr -p 8989

2. Tx cmd
taskset -c 0 sockperf pp -i ${ip} -p 8989 -t 10

After running this cmd 5 times and averaging the results,

3. Result
dim off: 17.7735 usec
dim on:  18.0110 usec
=================================================

Changelog:
v5->v6:
- Add patch(4/5): spin lock for ctrl cmd access
- Patch(5/5):
   - Use spin lock and cancel_work_sync to synchronize

v4->v5:
- Patch(4/4):
   - Fix possible synchronization issues with cancel_work_sync.
   - Reduce if/else nesting levels

v3->v4:
- Patch(5/5): drop.

v2->v3:
- Patch(4/5): some minor modifications.

v1->v2:
- Patch(2/5): a minor fix.
- Patch(4/5):
   - improve the judgment of dim switch conditions.
   - Cancel the work when vq reset. 
- Patch(5/5): drop the tx dim implementation.

Heng Qi (5):
  virtio-net: returns whether napi is complete
  virtio-net: separate rx/tx coalescing moderation cmds
  virtio-net: extract virtqueue coalescig cmd for reuse
  virtio-net: add spin lock for ctrl cmd access
  virtio-net: support rx netdim

 drivers/net/virtio_net.c | 346 +++++++++++++++++++++++++++++++++------
 1 file changed, 295 insertions(+), 51 deletions(-)

-- 
2.19.1.6.gb485710b


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-12-07  5:32 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-05  8:02 [PATCH net-next v6 0/5] virtio-net: support dynamic coalescing moderation Heng Qi
2023-12-05  8:02 ` [PATCH net-next v6 1/5] virtio-net: returns whether napi is complete Heng Qi
2023-12-05  8:02 ` [PATCH net-next v6 2/5] virtio-net: separate rx/tx coalescing moderation cmds Heng Qi
2023-12-05  8:02 ` [PATCH net-next v6 3/5] virtio-net: extract virtqueue coalescig cmd for reuse Heng Qi
2023-12-05  8:02 ` [PATCH net-next v6 4/5] virtio-net: add spin lock for ctrl cmd access Heng Qi
2023-12-05  8:35   ` Jason Wang
2023-12-05 11:05     ` Heng Qi
2023-12-06  9:11       ` Jason Wang
2023-12-06 12:27       ` Paolo Abeni
2023-12-06 13:03         ` Heng Qi
2023-12-07  4:19           ` Jason Wang
2023-12-07  4:47             ` Heng Qi
2023-12-07  5:31               ` Jason Wang
2023-12-05  8:02 ` [PATCH net-next v6 5/5] virtio-net: support rx netdim Heng Qi

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.