> On 5 Jan 2019, at 04:55, Kingwel Xie <kingwel....@ericsson.com> wrote: > > Hi Damjan, > > I noticed you removed the quick path from dpdk-input to ip-input/mpls-input, > after you merged the patch of ethernet-input optimization. Therefore, all > packets now have to go through ethernet-input. It would take a few more cpu > clocks than before. > > Please elaborate why making this change.
Dear Kingwei, Old bypass code beside the fact that it was doing ethertype lookup in the device driver code which is architecturally wrong, was broken for some corner cases (i.e. was not doing dMAC check when interface is in promisc mode or interface does't do dMAC check at all). Also bypass code was not dealing properly with VLAN 0 packets. Keeping things like that means that we will need to maintain separate ethertype lookup code i each vpp interface type (i.e. memif, vhost, avf). With that patch ethertype lookup was moved to one natural place, which is ethernet-input node, and as you noticed there is small cost of doing that (1-2 clocks in my setup). So with this patch there is small perf hit for L3 untagged traffic, but also brings ~10 clocks improvement for L2 traffic. It also improves L3 performance for memif and vhost-user interfaces. In addition there is another patch on top of this one which improves tagged packet handling and reduces cost of VLAN single/double lookup from 70 clocks to less than 30. Hope this explains, -- Damjan
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#11850): https://lists.fd.io/g/vpp-dev/message/11850 Mute This Topic: https://lists.fd.io/mt/28940805/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-