diff mbox

[ovs-dev,v3] netdev-dpdk: round up mbuf_size to cache_line_size

Message ID 20170612143819.1908-1-santosh.shukla@caviumnetworks.com
State Accepted
Headers show

Commit Message

santosh June 12, 2017, 2:38 p.m. UTC
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.shukla@caviumnetworks.com>
Acked-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.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/

v2 --> v3
 - Included Ian tag. For more info refer v2 [2]
[2] https://patchwork.ozlabs.org/patch/773693/

 lib/netdev-dpdk.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Comments

Stokes, Ian June 12, 2017, 3 p.m. UTC | #1
> 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.shukla@caviumnetworks.com>
> Acked-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
> Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.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/
> 
> v2 --> v3
>  - Included Ian tag. For more info refer v2 [2] [2]
> https://patchwork.ozlabs.org/patch/773693/
> 
>  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

Acked-by: Ian Stokes <ian.stokes@intel.com>
> 
> --
> 2.13.0
santosh June 13, 2017, 5:22 a.m. UTC | #2
Hi Ben,

On Monday 12 June 2017 08:30 PM, Stokes, Ian wrote:

>> 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.shukla@caviumnetworks.com>
>> Acked-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
>> Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.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/
>>
>> v2 --> v3
>>  - Included Ian tag. For more info refer v2 [2] [2]
>> https://patchwork.ozlabs.org/patch/773693/
>>
>>  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
> Acked-by: Ian Stokes <ian.stokes@intel.com>

If no further review comment then Can you please merge this patch?

Thanks.

>> --
>> 2.13.0
Ben Pfaff June 14, 2017, 9:05 p.m. UTC | #3
On Tue, Jun 13, 2017 at 10:52:03AM +0530, santosh wrote:
> Hi Ben,
> 
> On Monday 12 June 2017 08:30 PM, Stokes, Ian wrote:
> 
> >> 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.shukla@caviumnetworks.com>
> >> Acked-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
> >> Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.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/
> >>
> >> v2 --> v3
> >>  - Included Ian tag. For more info refer v2 [2] [2]
> >> https://patchwork.ozlabs.org/patch/773693/
> >>
> >>  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
> > Acked-by: Ian Stokes <ian.stokes@intel.com>
> 
> If no further review comment then Can you please merge this patch?

I applied this to master.  Thanks everyone!
diff mbox

Patch

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