Hi Mark, On Monday 12 June 2017 07:28 PM, Kavanagh, Mark B wrote:
>> From: Stokes, Ian >> Sent: Monday, June 12, 2017 1:41 PM >> To: Santosh Shukla <santosh.shu...@caviumnetworks.com>; b...@ovn.org; >> db...@vmware.com; >> d...@openvswitch.org >> Cc: ktray...@redhat.com; hemant.agra...@nxp.com; >> jerin.ja...@caviumnetworks.com; Kavanagh, >> Mark B <mark.b.kavan...@intel.com> >> Subject: RE: [PATCH v2] netdev-dpdk: round up mbuf_size to cache_line_size >> >>> Subject: [PATCH v2] netdev-dpdk: round up mbuf_size to cache_line_size >>> >>> Some pmd driver(e.g: vNIC thunderx PMD) want mbuf_size to be multiple of >>> cache_line_size. With out this fix, Netdev-dpdk initialization would fail >>> for those PMD. >>> >>> Signed-off-by: Santosh Shukla <santosh.shu...@caviumnetworks.com> >>> --- >>> v1 --> v2 >>> - Removed mtu to dmp->mtu change in v2. >>> - Removed extra MTU macro definition (_MBUF_SIZE) in v2. Now MBUF_SIZE >>> looks after the round_up. >>> - For details refer v1 [1]. >>> [1] https://patchwork.ozlabs.org/patch/769113/ >>> >>> lib/netdev-dpdk.c | 7 ++++--- >>> 1 file changed, 4 insertions(+), 3 deletions(-) >>> >>> diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index >>> 810800ed3..023880ca6 100644 >>> --- a/lib/netdev-dpdk.c >>> +++ b/lib/netdev-dpdk.c >>> @@ -76,9 +76,10 @@ static struct vlog_rate_limit rl = >>> VLOG_RATE_LIMIT_INIT(5, 20); >>> #define MTU_TO_MAX_FRAME_LEN(mtu) ((mtu) + ETHER_HDR_MAX_LEN) >>> #define FRAME_LEN_TO_MTU(frame_len) ((frame_len) \ >>> - ETHER_HDR_LEN - ETHER_CRC_LEN) >>> -#define MBUF_SIZE(mtu) (MTU_TO_MAX_FRAME_LEN(mtu) \ >>> - + sizeof(struct dp_packet) \ >>> - + RTE_PKTMBUF_HEADROOM) >>> +#define MBUF_SIZE(mtu) ROUND_UP((MTU_TO_MAX_FRAME_LEN(mtu) \ >>> + + sizeof(struct dp_packet) \ >>> + + RTE_PKTMBUF_HEADROOM), \ >>> + RTE_CACHE_LINE_SIZE) >>> #define NETDEV_DPDK_MBUF_ALIGN 1024 >>> #define NETDEV_DPDK_MAX_PKT_LEN 9728 >> Hi Santosh, >> >> I'm ok with the approach above, my initial concern was that it would >> increase the memory >> footprint for the hugepages as now the MBUF will be rounded up. But in >> testing I'm not seeing >> that big increase (a delta of 56 for each MTU size examined). >> >> It could increase the requirement for the number of hugepages but I don't >> think it's an issue >> considering what it enables. >> >> This was run on an Intel(R) Xeon(R) CPU E5-2695 v3 @ 2.30GHz. >> >> +------+--------------------+-------------------+ >> | MTU | MBUF Size (Before) | MBUF Size (After) | >> +------+--------------------+-------------------+ >> | 1500 | 2760 | 2816 | >> +------+--------------------+-------------------+ >> | 1920 | 3784 | 3840 | >> +------+--------------------+-------------------+ >> | 9000 | 9928 | 9984 | >> +------+--------------------+-------------------+ >> >> Would be interesting to see if there is any performance impact however on >> existing DPDK >> devices with the new approach. >> >> I'd like to add Mark Kavanagh to this thread as he has done a lot of work in >> this area also. >> >> @Mark, any concerns with the approach outline here? > Hi Ian, > > Thanks for pulling me into the discussion. > > You've already addressed my first concern, which is relation to the increased > mempool size when rounding up the mbuf size; WRT your findings, I don't think > that 56B of an increase in mempool size is of major concern. > > In terms of performance, I tested the Phy-Phy and Phy-VM-Phy paths (using > DPDK vHost user backend), and found that forwarding rate increases marginally > (~10000 pps) for 64B and 128B frames with the 'roundup' patch. > Testing was conducted on Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz, and > Fortville network controller. > > Overall, I'm happy with this patch. Santosh, feel free to add the following > tags: > Acked-by: Mark Kavanagh <mark.b.kavan...@intel.com> > Tested-by: Mark Kavanagh <mark.b.kavan...@intel.com> > > Thanks, > Mark Thank you Mark. Sending v3 including your tags. >> Ian >> >>> -- >>> 2.13.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev