Hi David,

> -----Original Message-----
> From: Coyle, David <david.co...@intel.com>
> Sent: Monday, July 20, 2020 1:59 PM
> To: De Lara Guarch, Pablo <pablo.de.lara.gua...@intel.com>;
> akhil.go...@nxp.com; Doherty, Declan <declan.dohe...@intel.com>; Trahe,
> Fiona <fiona.tr...@intel.com>
> Cc: dev@dpdk.org; Ryan, Brendan <brendan.r...@intel.com>; O'loingsigh,
> Mairtin <mairtin.oloings...@intel.com>
> Subject: RE: [PATCH v1] app/crypto-perf: set mbuf lengths correctly for DOCSIS
> tests
> 
> Hi Pablo,
> 
> > -----Original Message-----
> > From: De Lara Guarch, Pablo <pablo.de.lara.gua...@intel.com>
> > Sent: Friday, July 17, 2020 8:04 PM
> > > @@ -48,6 +48,10 @@ cperf_set_ops_security(struct rte_crypto_op **ops,
> > >                   } else
> > >                           buf_sz = options->test_buffer_size;
> > >
> > > +                 sym_op->m_src->buf_len = options->segment_sz;
> > > +                 sym_op->m_src->data_len = buf_sz;
> > > +                 sym_op->m_src->pkt_len = buf_sz;
> > > +
> >
> > Actually, I am wondering why this is needed at all (for DOCSIS and
> > PDCP). This is already set in " fill_multi_seg_mbuf" or "
> > fill_single_seg_mbuf" (and this was already working without this patch, 
> > right?).
> 
> [DC] I have found that if a number of buffer sizes are specified like this on 
> the
> cmd line "--buffer-sz 64,256,1024", then the pkt_len and data_len filled in
> "fill_multi_seg_mbuf" or " fill_single_seg_mbuf" is always the largest of the 
> sizes
> specified. The cipher/auth lengths are then set based on the --buffer-sz 
> option.
> 
> For DOCSIS, I tried to be more accurate and set the correct pkt_len and 
> data_len
> in the mbuf. This followed what PDCP did too, even though I'm not sure of the
> background why PDCP did it - possibly spotted the same issue. I have also 
> found
> that DOCSIS performance figures can be better if the correct pkt_len and
> data_len are set in the mbuf - I don't have any proper explanation for this
> though as the cipher/ auth lengths are always the same.
> 
> I've dug around a bit more on this now though and this is actually a problem
> across the perf tool. Some of the crypto PMDs have logic based on the mbuf
> pkt_len and data_len, but because the perf tool isn't always setting these 
> fields
> correctly, that logic may not work as expected.
> >

Right, thanks for checking this. If I remember correctly, it was fine to have 
this set to the maximum size as the important field for crypto PMDs to check is 
the cipher/auth lengths, as you said. If there is more logic that depends on 
data_len on other PMDs, I agree it might be a problem. The only usage I knew 
for it was the multi segment case (in AES-GCM PMD), where data_len is checked 
in each segment size to see if all the cipher/auth length resides within these 
segments, but in the tool we set data_len for each segment when "going 
multi-segment". I see that other PMDs like DPAA2_SEC use these fields for 
something which I am not sure what's for. It would be good if the maintainers 
check if this is a problem for them, and in that case, this should be fixed for 
the other functions (for "normal" crypto).

Thanks,
Pablo

Reply via email to