On Wed, Sep 4, 2019 at 7:10 AM Ilya Maximets <[email protected]> wrote: > > > Hi Eelco, > > > > Thanks for your testing and review. > > > > On Wed, Sep 4, 2019 at 1:04 AM Eelco Chaudron <echaudro at redhat.com> > > wrote: > >> > >> > >> > >> On 27 Aug 2019, at 1:02, William Tu wrote: > >> > >> > The patch adds support for using need_wakeup flag in AF_XDP rings. > >> > When this flag is used, it means that OVS has to explicitly wake > >> > up the kernel RX, using poll() syscall and wake up TX, using sendto() > >> > syscall. This feature improves the performance by avoiding unnecessary > >> > syscalls, so keeping more CPU time in userspace to process packets. > >> > > >> > On Intel Xeon E5-2620 v3 2.4GHz system, performance of physical port > >> > to physical port improves from 6.1Mpps to 7.3Mpps. > >> > >> Did some more testing and with PVP I see a performance decrease, with > >> physical to physical I see an increase. > >> Tests are performed with a port redirect open flow rule on an ixgbe > >> (Xeon E5-2690 v4 2.60GHz): > >> > >> +-----------+-----------------+---------+---------+---------+---------+---------+---------+--------+ > >> | PVP | Number of flows | 64 | 128 | 256 | 512 | > >> 768 | 1024 | 1514 | > >> +-----------+-----------------+---------+---------+---------+---------+---------+---------+--------+ > >> | master | 1000 | 737896 | 700643 | 682915 | 648386 | > >> 621792 | 582821 | 527899 | > >> | Patch | 1000 | 734179 | 696515 | 676712 | 646536 | > >> 619600 | 578546 | 519965 | > >> +-----------+-----------------+---------+---------+---------+---------+---------+---------+--------+ > >> > >> +-----------+-----------------+---------+---------+---------+---------+---------+---------+--------+ > >> | Port2Port | Number of flows | 64 | 128 | 256 | 512 | > >> 768 | 1024 | 1514 | > >> +-----------+-----------------+---------+---------+---------+---------+---------+---------+--------+ > >> | master | 1000 | 3351114 | 3236581 | 3143710 | 2349598 | > >> 1586276 | 1197304 | 814854 | > >> | Patch | 1000 | 3571733 | 3488697 | 3448908 | 2349593 | > >> 1586276 | 1197304 | 814854 | > >> +-----------+-----------------+---------+---------+---------+---------+---------+---------+--------+ > >> > >> Did not research why PVP is slower, maybe related to the TAP interface > >> with AF_XDP? > >> > > I haven't tried PVP with this feature. > > Maybe for virtual device, we don't need "need_wakeup" feature. > > Let me investigate more. > > For virtual devices xmit is synchronous, so it always needs wakeup, i.e. > flag is always set. In my spare time I'm working on kernel thread to > poll tx queue in SKB mode by the analogue with SQ_POLL in io_uring, but > I'm not sure if it will have good performance impact. > Cool. If there is a kthread polling the SKB mode tx queue, then need_wakeup feature can be enabled for virtual device. This will save sendto syscall overhead and improve performance.
William _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
