On 19-06-27 19:25, Ferruh Yigit wrote:
> External Email
> 
> ----------------------------------------------------------------------
> On 6/24/2019 3:32 PM, kka...@marvell.com wrote:
> > From: Krzysztof Kanas <kka...@marvell.com>
> > 
> > Kernel validates block size to be aligned to page size. Code works on
> > platforms with page size 4k, but on others e.g. Arm64 fails with default
> > parameters.
> 
> What is the pagesize in arm64?

On aarch64 it is configurable. Linux kernel, supports sizes 4k, 16k, 64k 
see ARM64_64K_PAGES in arch/arm64/Kconfig.

> 
> > 
> > Signed-off-by: Krzysztof Kanas <kka...@marvell.com>
> > ---
> >  drivers/net/af_packet/rte_eth_af_packet.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/net/af_packet/rte_eth_af_packet.c 
> > b/drivers/net/af_packet/rte_eth_af_packet.c
> > index 4a660d5f013f..ec3d2cbb5202 100644
> > --- a/drivers/net/af_packet/rte_eth_af_packet.c
> > +++ b/drivers/net/af_packet/rte_eth_af_packet.c
> > @@ -32,7 +32,6 @@
> >  #define ETH_AF_PACKET_FRAMECOUNT_ARG       "framecnt"
> >  #define ETH_AF_PACKET_QDISC_BYPASS_ARG     "qdisc_bypass"
> >  
> > -#define DFLT_BLOCK_SIZE            (1 << 12)
> >  #define DFLT_FRAME_SIZE            (1 << 11)
> >  #define DFLT_FRAME_COUNT   (1 << 9)
> >  
> > @@ -811,7 +810,7 @@ rte_eth_from_packet(struct rte_vdev_device *dev,
> >     struct rte_kvargs_pair *pair = NULL;
> >     unsigned k_idx;
> >     unsigned int blockcount;
> > -   unsigned int blocksize = DFLT_BLOCK_SIZE;
> > +   unsigned int blocksize;
> >     unsigned int framesize = DFLT_FRAME_SIZE;
> >     unsigned int framecount = DFLT_FRAME_COUNT;
> >     unsigned int qpairs = 1;
> > @@ -821,6 +820,7 @@ rte_eth_from_packet(struct rte_vdev_device *dev,
> >     if (*sockfd < 0)
> >             return -1;
> >  
> > +   blocksize = getpagesize();
> >     /*
> >      * Walk arguments for configurable settings
> >      */
> > 
> 

-- 
-
Regards,
Krzysztof(Chris) Kanas

Reply via email to