On 12.01.2018 19:53, Jan Scheurich wrote: > Hi, > > I still find the way DPDK-related topics are distributed over the various > documentation files rather confusing: > ./Documentation/intro/install/dpdk.rst > ./Documentation/howto/dpdk.rst > ./Documentation/topics/dpdk/index.rst > ./Documentation/topics/dpdk/vhost-user.rst > ./Documentation/topics/dpdk/ring.rst > > Why does information like this go into intro/install/dpdk.rst rather than > howto/dpdk.rst?
Oh.. It's hard to say. Initially, I wanted to place this description near to "Exact Match Cache" description as it's the feature of the same level (somehow). I don't like current documentation too. It's definitely should be merged or re-splitted somehow. Sometimes it's really hard to find what you're looking for in all these docs. And it's even harder when you're trying to use compiled documentation. > But cleaning this up is probably another exercise.... Yes. That's should be a separate change. > > Acked-by: Jan Scheurich <[email protected]> > > BR, Jan > >> -----Original Message----- >> From: Ilya Maximets [mailto:[email protected]] >> Sent: Friday, 12 January, 2018 12:17 >> To: [email protected] >> Cc: Heetae Ahn <[email protected]>; Bhanuprakash Bodireddy >> <[email protected]>; Antonio Fischetti >> <[email protected]>; Eelco Chaudron <[email protected]>; Ciara >> Loftus <[email protected]>; Kevin Traynor >> <[email protected]>; Jan Scheurich <[email protected]>; Billy >> O'Mahony <[email protected]>; Ian Stokes >> <[email protected]>; Ilya Maximets <[email protected]> >> Subject: [PATCH v10 4/5] docs: Describe output packet batching in DPDK guide. >> >> Added information about output packet batching and a way to >> configure 'tx-flush-interval'. >> >> Signed-off-by: Ilya Maximets <[email protected]> >> Co-authored-by: Jan Scheurich <[email protected]> >> Signed-off-by: Jan Scheurich <[email protected]> >> --- >> Documentation/intro/install/dpdk.rst | 58 >> ++++++++++++++++++++++++++++++++++++ >> 1 file changed, 58 insertions(+) >> >> diff --git a/Documentation/intro/install/dpdk.rst >> b/Documentation/intro/install/dpdk.rst >> index 3fecb5c..040e62e 100644 >> --- a/Documentation/intro/install/dpdk.rst >> +++ b/Documentation/intro/install/dpdk.rst >> @@ -568,6 +568,64 @@ not needed i.e. jumbo frames are not needed, it can be >> forced off by adding >> chains of descriptors it will make more individual virtio descriptors >> available >> for rx to the guest using dpdkvhost ports and this can improve performance. >> >> +Output Packet Batching >> +~~~~~~~~~~~~~~~~~~~~~~ >> + >> +To make advantage of batched transmit functions, OVS collects packets in >> +intermediate queues before sending when processing a batch of received >> packets. >> +Even if packets are matched by different flows, OVS uses a single send >> +operation for all packets destined to the same output port. >> + >> +Furthermore, OVS is able to buffer packets in these intermediate queues for >> a >> +configurable amount of time to reduce the frequency of send bursts at medium >> +load levels when the packet receive rate is high, but the receive batch size >> +still very small. This is particularly beneficial for packets transmitted to >> +VMs using an interrupt-driven virtio driver, where the interrupt overhead is >> +significant for the OVS PMD, the host operating system and the guest driver. >> + >> +The ``tx-flush-interval`` parameter can be used to specify the time in >> +microseconds OVS should wait between two send bursts to a given port >> (default >> +is ``0``). When the intermediate queue fills up before that time is over, >> the >> +buffered packet batch is sent immediately:: >> + >> + $ ovs-vsctl set Open_vSwitch . other_config:tx-flush-interval=50 >> + >> +This parameter influences both throughput and latency, depending on the >> traffic >> +load on the port. In general lower values decrease latency while higher >> values >> +may be useful to achieve higher throughput. >> + >> +Low traffic (``packet rate < 1 / tx-flush-interval``) should not experience >> +any significant latency or throughput increase as packets are forwarded >> +immediately. >> + >> +At intermediate load levels >> +(``1 / tx-flush-interval < packet rate < 32 / tx-flush-interval``) traffic >> +should experience an average latency increase of up to >> +``1 / 2 * tx-flush-interval`` and a possible throughput improvement. >> + >> +Very high traffic (``packet rate >> 32 / tx-flush-interval``) should >> experience >> +the average latency increase equal to ``32 / (2 * packet rate)``. Most send >> +batches in this case will contain the maximum number of packets (``32``). >> + >> +A ``tx-burst-interval`` value of ``50`` microseconds has shown to provide a >> +good performance increase in a ``PHY-VM-PHY`` scenario on ``x86`` system for >> +interrupt-driven guests while keeping the latency increase at a reasonable >> +level: >> + >> + https://mail.openvswitch.org/pipermail/ovs-dev/2017-December/341628.html >> + >> +.. note:: >> + Throughput impact of this option significantly depends on the scenario and >> + the traffic patterns. For example: ``tx-burst-interval`` value of ``50`` >> + microseconds shows performance degradation in ``PHY-VM-PHY`` with bonded >> PHY >> + scenario while testing with ``256 - 1024`` packet flows: >> + >> + https://mail.openvswitch.org/pipermail/ovs-dev/2017-December/341700.html >> + >> +The average number of packets per output batch can be checked in PMD stats:: >> + >> + $ ovs-appctl dpif-netdev/pmd-stats-show >> + >> Limitations >> ------------ >> >> -- >> 2.7.4 > > > > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
