Hi Ian, On Monday 12 June 2017 06:11 PM, Stokes, Ian wrote:
>> 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? > > Ian Thanks for testing patch and sharing feedback. Yes, delta depends on CACHE_LINE_SIZE value. IMO, yes we waste few bytes but with this approach- We ensure that ovs/dpdk works out-of-box for almost all PMDs. BTW: Per Darrell review comment, Last week I posted v2 [1]. Request to test v2 patch. [1] https://patchwork.ozlabs.org/patch/773693/ >> -- >> 2.13.0 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev