> Hi Ilya,
> 
> Some more suggestions below to expand a bit on the use cases for tx-flush-
> interval.
> 
> BR, Jan

Hi Ilya,

I agree with Jans input here. I've finished validating the output batching 
patchset today bit would like to include this documentation also.

Are you planning to re-spin a new version of this patch with the required 
changes? 

Thanks
Ian 
> 
> > -----Original Message-----
> > From: Ilya Maximets [mailto:i.maxim...@samsung.com]
> > Sent: Tuesday, 12 December, 2017 14:07
> > To: ovs-dev@openvswitch.org; Bhanuprakash Bodireddy
> > <bhanuprakash.bodire...@intel.com>
> > Cc: Heetae Ahn <heetae82....@samsung.com>; Antonio Fischetti
> > <antonio.fische...@intel.com>; Eelco Chaudron <echau...@redhat.com>;
> > Ciara Loftus <ciara.lof...@intel.com>; Kevin Traynor
> > <ktray...@redhat.com>; Jan Scheurich <jan.scheur...@ericsson.com>; Ian
> > Stokes <ian.sto...@intel.com>; Ilya Maximets <i.maxim...@samsung.com>
> > Subject: [RFC v2] 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 <i.maxim...@samsung.com>
> > ---
> >
> > Version 2:
> >     * Some grammar/wording corrections. (Eelco Chaudron)
> >
> >  Documentation/intro/install/dpdk.rst | 24 ++++++++++++++++++++++++
> >  1 file changed, 24 insertions(+)
> >
> > diff --git a/Documentation/intro/install/dpdk.rst
> > b/Documentation/intro/install/dpdk.rst
> > index 3fecb5c..5485dbc 100644
> > --- a/Documentation/intro/install/dpdk.rst
> > +++ b/Documentation/intro/install/dpdk.rst
> > @@ -568,6 +568,30 @@ 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 get advantages of the batched send functions OVS collects packets
> > +in intermediate queues before sending. This allows using a single
> > +send for packets matched by different flows but having the same output
> action.
> > +Furthermore, OVS is able to collect packets for some reasonable
> > +amount of time before batch sending them which might help when input
> batches are small.
> 
> 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.
> 
> > +
> > +``tx-flush-interval`` config could be used to specify the time in
> > +microseconds that a packet can wait in an output queue for sending
> (default is ``0``)::
> 
> 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
> > +
> > +Lower values decrease latency while higher values may be useful to
> > +achieve higher performance. For example, increasing of
> > +``tx-flush-interval`` can be used to decrease the number of interrupts
> for interrupt based guest drivers.
> > +This may significantly affect the performance. Zero value means
> > +immediate send at the end of processing a single input batch.
> 
> 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 throughput improvement that depends on
> the average size of send bursts and grows with the traffic rate.
> 
> Very high traffic (packet rate >> 32/tx-flush-interval) should experience
> improved throughput as most send batches contain the maximum number of
> packets (32). The average latency increase should equal 32/(2 * packet
> rate).
> 
> A tx-burst-interval value of 50 microseconds has shown to provide a good
> performance increase for interrupt-driven guests while keeping the latency
> increase at a reasonable level.
> 
> > +
> > +Average number of packets per output batch could be checked in PMD
> stats::
> 
> 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
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to