DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [RFC] libeventdev: event driven programming model framework for DPDK
From: Hemant Agrawal @ 2016-10-07 10:40 UTC (permalink / raw)
  To: Jerin Jacob, Vangati, Narender; +Cc: dev@dpdk.org
In-Reply-To: <20161005072451.GA2358@localhost.localdomain>

Hi Jerin/Narender,

	Thanks for the proposal and discussions. 

	I agree with many of the comment made by Narender.  Here are some additional comments.

1. rte_event_schedule - should support option for bulk dequeue. The size of bulk should be a property of device, how much depth it can support.

2. The event schedule should also support the option to specify the amount of time, it can wait. The implementation may only support global setting(dequeue_wait_ns) for wait time. They can take any non-zero wait value as to implement wait.  

3. rte_event_schedule_from_group - there should be one model.  Both Push and Pull may not work well together. At least the simultaneous mixed config will not work on NXP hardware scheduler. 

4. Priority of queues within the scheduling group?  - Please keep in mind that some hardware supports intra scheduler priority and some only support intra flow_queue priority within a scheduler instance. The events of same flow id should have same priority.

5. w.r.t flow_queue numbers in log2, I will prefer to have absolute number. Not all system may have large number of queues. So the design should keep in account the system will fewer number of queues.

Regards,
Hemant

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Jerin Jacob
> Sent: Wednesday, October 05, 2016 12:55 PM
> On Tue, Oct 04, 2016 at 09:49:52PM +0000, Vangati, Narender wrote:
> > Hi Jerin,
> 
> Hi Narender,
> 
> Thanks for the comments.I agree with proposed changes; I will address these
> comments in v2.
> 
> /Jerin
> 
> 
> >
> >
> >
> > Here are some comments on the libeventdev RFC.
> >
> > These are collated thoughts after discussions with you & others to understand
> the concepts and rationale for the current proposal.
> >
> >
> >
> > 1. Concept of flow queues. This is better abstracted as flow ids and not as flow
> queues which implies there is a queueing structure per flow. A s/w
> implementation can do atomic load balancing on multiple flow ids more
> efficiently than maintaining each event in a specific flow queue.
> >
> >
> >
> > 2. Scheduling group. A scheduling group is more a steam of events, so an event
> queue might be a better abstraction.
> >
> >
> >
> > 3. An event queue should support the concept of max active atomic flows
> (maximum number of active flows this queue can track at any given time) and
> max active ordered sequences (maximum number of outstanding events waiting
> to be egress reordered by this queue). This allows a scheduler implementation to
> dimension/partition its resources among event queues.
> >
> >
> >
> > 4. An event queue should support concept of a single consumer. In an
> application, a stream of events may need to be brought together to a single
> core for some stages of processing, e.g. for TX at the end of the pipeline to
> avoid NIC reordering of the packets. Having a 'single consumer' event queue for
> that stage allows the intensive scheduling logic to be short circuited and can
> improve throughput for s/w implementations.
> >
> >
> >
> > 5. Instead of tying eventdev access to an lcore, a higher level of abstraction
> called event port is needed which is the application i/f to the eventdev. Event
> ports are connected to event queues and is the object the application uses to
> dequeue and enqueue events. There can be more than one event port per lcore
> allowing multiple lightweight threads to have their own i/f into eventdev, if the
> implementation supports it. An event port abstraction also encapsulates
> dequeue depth and enqueue depth for a scheduler implementations which can
> schedule multiple events at a time and output events that can be buffered.
> >
> >
> >
> > 6. An event should support priority. Per event priority is useful for segregating
> high priority (control messages) traffic from low priority within the same flow.
> This needs to be part of the event definition for implementations which support
> it.
> >
> >
> >
> > 7. Event port to event queue servicing priority. This allows two event ports to
> connect to the same event queue with different priorities. For implementations
> which support it, this allows a worker core to participate in two different
> workflows with different priorities (workflow 1 needing 3.5 cores, workflow 2
> needing 2.5 cores, and so on).
> >
> >
> >
> > 8. Define the workflow as schedule/dequeue/enqueue. An implementation is
> free to define schedule as NOOP. A distributed s/w scheduler can use this to
> schedule events; also a centralized s/w scheduler can make this a NOOP on non-
> scheduler cores.
> >
> >
> >
> > 9. The schedule_from_group API does not fit the workflow.
> >
> >
> >
> > 10. The ctxt_update/ctxt_wait breaks the normal workflow. If the normal
> workflow is a dequeue -> do work based on event type -> enqueue,  a pin_event
> argument to enqueue (where the pinned event is returned through the normal
> dequeue) allows application workflow to remain the same whether or not an
> implementation supports it.
> >
> >
> >
> > 11. Burst dequeue/enqueue needed.
> >
> >
> >
> > 12. Definition of a closed/open system - where open system is memory backed
> and closed system eventdev has limited capacity. In such systems, it is also
> useful to denote per event port how many packets can be active in the system.
> This can serve as a threshold for ethdev like devices so they don't overwhelm
> core to core events.
> >
> >
> >
> > 13. There should be sort of device capabilities definition to address different
> implementations.
> >
> >
> >
> >
> > vnr
> > ---
> >

^ permalink raw reply

* Re: [PATCH v2 10/12] virtio: add Tx checksum offload support
From: Maxime Coquelin @ 2016-10-07  7:25 UTC (permalink / raw)
  To: Olivier Matz, dev, yuanhan.liu
  Cc: konstantin.ananyev, sugesh.chandran, bruce.richardson,
	jianfeng.tan, helin.zhang, adrien.mazarguil, stephen, dprovan,
	xiao.w.wang
In-Reply-To: <1475485223-30566-11-git-send-email-olivier.matz@6wind.com>

Hi Olivier,

On 10/03/2016 11:00 AM, Olivier Matz wrote:
> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
> ---
>  drivers/net/virtio/virtio_ethdev.c |  7 +++++
>  drivers/net/virtio/virtio_ethdev.h |  1 +
>  drivers/net/virtio/virtio_rxtx.c   | 57 +++++++++++++++++++++++++-------------
>  3 files changed, 45 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
> index 43cb096..55024cd 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -1578,6 +1578,13 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
>  	dev_info->rx_offload_capa =
>  		DEV_RX_OFFLOAD_TCP_CKSUM |
>  		DEV_RX_OFFLOAD_UDP_CKSUM;
> +	dev_info->tx_offload_capa = 0;
> +
> +	if (hw->guest_features & (1ULL << VIRTIO_NET_F_CSUM)) {
> +		dev_info->tx_offload_capa |=
> +			DEV_TX_OFFLOAD_UDP_CKSUM |
> +			DEV_TX_OFFLOAD_TCP_CKSUM;
> +	}
>  }
>
>  /*
> diff --git a/drivers/net/virtio/virtio_ethdev.h b/drivers/net/virtio/virtio_ethdev.h
> index 2fc9218..202aa2e 100644
> --- a/drivers/net/virtio/virtio_ethdev.h
> +++ b/drivers/net/virtio/virtio_ethdev.h
> @@ -62,6 +62,7 @@
>  	 1u << VIRTIO_NET_F_CTRL_VQ	  |	\
>  	 1u << VIRTIO_NET_F_CTRL_RX	  |	\
>  	 1u << VIRTIO_NET_F_CTRL_VLAN	  |	\
> +	 1u << VIRTIO_NET_F_CSUM	  |	\
>  	 1u << VIRTIO_NET_F_MRG_RXBUF	  |	\
>  	 1ULL << VIRTIO_F_VERSION_1)
>
> diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
> index eda678a..4ae11e7 100644
> --- a/drivers/net/virtio/virtio_rxtx.c
> +++ b/drivers/net/virtio/virtio_rxtx.c
> @@ -213,13 +213,14 @@ static inline void
>  virtqueue_enqueue_xmit(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
>  		       uint16_t needed, int use_indirect, int can_push)
>  {
> +	struct virtio_tx_region *txr = txvq->virtio_net_hdr_mz->addr;
>  	struct vq_desc_extra *dxp;
>  	struct virtqueue *vq = txvq->vq;
>  	struct vring_desc *start_dp;
>  	uint16_t seg_num = cookie->nb_segs;
>  	uint16_t head_idx, idx;
>  	uint16_t head_size = vq->hw->vtnet_hdr_size;
> -	unsigned long offs;
> +	struct virtio_net_hdr *hdr;
>
>  	head_idx = vq->vq_desc_head_idx;
>  	idx = head_idx;
> @@ -230,10 +231,9 @@ virtqueue_enqueue_xmit(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
>  	start_dp = vq->vq_ring.desc;
>
>  	if (can_push) {
> -		/* put on zero'd transmit header (no offloads) */
> -		void *hdr = rte_pktmbuf_prepend(cookie, head_size);
> -
> -		memset(hdr, 0, head_size);
> +		/* prepend cannot fail, checked by caller */
> +		hdr = (struct virtio_net_hdr *)
> +			rte_pktmbuf_prepend(cookie, head_size);
>  	} else if (use_indirect) {
>  		/* setup tx ring slot to point to indirect
>  		 * descriptor list stored in reserved region.
> @@ -241,14 +241,11 @@ virtqueue_enqueue_xmit(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
>  		 * the first slot in indirect ring is already preset
>  		 * to point to the header in reserved region
>  		 */
> -		struct virtio_tx_region *txr = txvq->virtio_net_hdr_mz->addr;
> -
> -		offs = idx * sizeof(struct virtio_tx_region)
> -			+ offsetof(struct virtio_tx_region, tx_indir);
> -
> -		start_dp[idx].addr  = txvq->virtio_net_hdr_mem + offs;
> +		start_dp[idx].addr  = txvq->virtio_net_hdr_mem +
> +			RTE_PTR_DIFF(&txr[idx].tx_indir, txr);
>  		start_dp[idx].len   = (seg_num + 1) * sizeof(struct vring_desc);
>  		start_dp[idx].flags = VRING_DESC_F_INDIRECT;
> +		hdr = (struct virtio_net_hdr *)&txr[idx].tx_hdr;
>
>  		/* loop below will fill in rest of the indirect elements */
>  		start_dp = txr[idx].tx_indir;
> @@ -257,15 +254,40 @@ virtqueue_enqueue_xmit(struct virtnet_tx *txvq, struct rte_mbuf *cookie,
>  		/* setup first tx ring slot to point to header
>  		 * stored in reserved region.
>  		 */
> -		offs = idx * sizeof(struct virtio_tx_region)
> -			+ offsetof(struct virtio_tx_region, tx_hdr);
> -
> -		start_dp[idx].addr  = txvq->virtio_net_hdr_mem + offs;
> +		start_dp[idx].addr  = txvq->virtio_net_hdr_mem +
> +			RTE_PTR_DIFF(&txr[idx].tx_hdr, txr);
>  		start_dp[idx].len   = vq->hw->vtnet_hdr_size;
>  		start_dp[idx].flags = VRING_DESC_F_NEXT;
> +		hdr = (struct virtio_net_hdr *)&txr[idx].tx_hdr;
> +
>  		idx = start_dp[idx].next;
>  	}
>
> +	/* Checksum Offload */
> +	switch (cookie->ol_flags & PKT_TX_L4_MASK) {
> +	case PKT_TX_UDP_CKSUM:
> +		hdr->csum_start = cookie->l2_len + cookie->l3_len;
> +		hdr->csum_offset = 6;
> +		hdr->flags = VIRTIO_NET_HDR_F_NEEDS_CSUM;
> +		break;
> +
> +	case PKT_TX_TCP_CKSUM:
> +		hdr->csum_start = cookie->l2_len + cookie->l3_len;
> +		hdr->csum_offset = 16;
> +		hdr->flags = VIRTIO_NET_HDR_F_NEEDS_CSUM;
> +		break;
> +
> +	default:
> +		hdr->csum_start = 0;
> +		hdr->csum_offset = 0;
> +		hdr->flags = 0;
> +		break;
> +	}
> +
> +	hdr->gso_type = 0;
> +	hdr->gso_size = 0;
> +	hdr->hdr_len = 0;

In he case we don't use any offload, have you measured the performance 
regression
with current code when using a dedicated descriptor for the header?
I haven't tested you series, but I would think it is more than 15% for
64 bytes packets based on my trials to use a single descriptor.

Indeed, without your series, when using a dedicated desc for the header,
the header is not accessed in the virtio transmit path. It is zeroed at
init time.

Could we keep the same behaviour when offloading features aren't
negotiated?

Thanks,
Maxime

^ permalink raw reply

* Facing issue in encryption/decryption with QAT library
From: Pankaj Joshi @ 2016-10-07  7:17 UTC (permalink / raw)
  To: qat-linux, dev

Hello All,

I am using QAT library, and getting the error as below :

“[error] LacSymCb_ProcessDpCallback() - : Response status value not as
expected”

Observation are as below :

1. While running encryption only, everything working fine
2. While running decryption only, everything working fine
3. While running decryption along with encryption, in encryption instance
getting this error for some packet, 10% of the packets are corrupting and
digest result is coming as FALSE

Please let me know, what wrong is getting and how can I debug this.

Regards,
Pankaj Joshi

^ permalink raw reply

* Re: [PATCH 1/1] testpmd_ug: update userguide with xstats commands
From: Mcnamara, John @ 2016-10-07  7:12 UTC (permalink / raw)
  To: Tahhan, Maryam, dev@dpdk.org; +Cc: Tahhan, Maryam
In-Reply-To: <1473245157-155016-1-git-send-email-maryam.tahhan@intel.com>

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Maryam Tahhan
> Sent: Wednesday, September 7, 2016 11:46 AM
> To: dev@dpdk.org
> Cc: Tahhan, Maryam <maryam.tahhan@intel.com>
> Subject: [dpdk-dev] [PATCH 1/1] testpmd_ug: update userguide with xstats
> commands
> 
> Update the testpmd user guide with instructions for retrieving extended
> NIC statistics.
> 
> Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com>

Acked-by: John McNamara <john.mcnamara@intel.com>

^ permalink raw reply

* Re: [PATCH] examples/l3fwd: em path hash offload to machine
From: Hemant Agrawal @ 2016-10-07  7:06 UTC (permalink / raw)
  To: Jerin Jacob; +Cc: dev@dpdk.org
In-Reply-To: <20161005115243.GA7027@localhost.localdomain>

Hi Jerin,
	Thanks for the review, I will send a v2 with the suggestions made
Regards,
Hemant

> -----Original Message-----
> From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com]
> Sent: Wednesday, October 05, 2016 5:23 PM
> To: Hemant Agrawal <hemant.agrawal@nxp.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH] examples/l3fwd: em path hash offload to
> machine
> 
> On Tue, Aug 23, 2016 at 08:24:39PM +0530, Hemant Agrawal wrote:
> 
> Maybe you can change the subject line to:
> examples/l3fwd: em: use hw accelerated crc hash function for arm64 instead of:
> examples/l3fwd: em path hash offload to machine
> 
> > if machine level CRC extension are available, offload the hash to
> > machine provided functions e.g. armv8-a CRC extensions support it
> >
> > Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> > ---
> >  examples/l3fwd/l3fwd_em.c | 20 ++++++++++----------
> >  1 file changed, 10 insertions(+), 10 deletions(-)
> >
> > diff --git a/examples/l3fwd/l3fwd_em.c b/examples/l3fwd/l3fwd_em.c
> > index def5a02..a889c67 100644
> > --- a/examples/l3fwd/l3fwd_em.c
> > +++ b/examples/l3fwd/l3fwd_em.c
> > @@ -58,13 +58,13 @@
> >
> >  #include "l3fwd.h"
> >
> > -#ifdef RTE_MACHINE_CPUFLAG_SSE4_2
> > +#if defined(RTE_MACHINE_CPUFLAG_SSE4_2) ||
> > +defined(RTE_MACHINE_CPUFLAG_CRC32)
> 
> Rather than adding new compilation flag everywhere, Maybe you can add
> 
> #if defined(RTE_MACHINE_CPUFLAG_SSE4_2) &&
> defined(RTE_MACHINE_CPUFLAG_CRC32)
> #define EM_HASH_CRC 1
> #endif
> 
> something like above to reduce the change for future platforms with crc
> support.
> 
> Other than that, you can add:
> Reviewed-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> 
> >  #include <rte_hash_crc.h>
> >  #define DEFAULT_HASH_FUNC       rte_hash_crc
> >  #else
> >  #include <rte_jhash.h>
> >  #define DEFAULT_HASH_FUNC       rte_jhash
> > -#endif /* RTE_MACHINE_CPUFLAG_SSE4_2 */
> > +#endif
> >
> >  #define IPV6_ADDR_LEN 16
> >
> > @@ -169,17 +169,17 @@ ipv4_hash_crc(const void *data, __rte_unused
> uint32_t data_len,
> >  	t = k->proto;
> >  	p = (const uint32_t *)&k->port_src;
> >
> > -#ifdef RTE_MACHINE_CPUFLAG_SSE4_2
> > +#if defined(RTE_MACHINE_CPUFLAG_SSE4_2) ||
> > +defined(RTE_MACHINE_CPUFLAG_CRC32)
> >  	init_val = rte_hash_crc_4byte(t, init_val);
> >  	init_val = rte_hash_crc_4byte(k->ip_src, init_val);
> >  	init_val = rte_hash_crc_4byte(k->ip_dst, init_val);
> >  	init_val = rte_hash_crc_4byte(*p, init_val); -#else /*
> > RTE_MACHINE_CPUFLAG_SSE4_2 */
> > +#else
> >  	init_val = rte_jhash_1word(t, init_val);
> >  	init_val = rte_jhash_1word(k->ip_src, init_val);
> >  	init_val = rte_jhash_1word(k->ip_dst, init_val);
> >  	init_val = rte_jhash_1word(*p, init_val); -#endif /*
> > RTE_MACHINE_CPUFLAG_SSE4_2 */
> > +#endif
> >
> >  	return init_val;
> >  }
> > @@ -191,16 +191,16 @@ ipv6_hash_crc(const void *data, __rte_unused
> uint32_t data_len,
> >  	const union ipv6_5tuple_host *k;
> >  	uint32_t t;
> >  	const uint32_t *p;
> > -#ifdef RTE_MACHINE_CPUFLAG_SSE4_2
> > +#if defined(RTE_MACHINE_CPUFLAG_SSE4_2) ||
> > +defined(RTE_MACHINE_CPUFLAG_CRC32)
> >  	const uint32_t  *ip_src0, *ip_src1, *ip_src2, *ip_src3;
> >  	const uint32_t  *ip_dst0, *ip_dst1, *ip_dst2, *ip_dst3; -#endif /*
> > RTE_MACHINE_CPUFLAG_SSE4_2 */
> > +#endif
> >
> >  	k = data;
> >  	t = k->proto;
> >  	p = (const uint32_t *)&k->port_src;
> >
> > -#ifdef RTE_MACHINE_CPUFLAG_SSE4_2
> > +#if defined(RTE_MACHINE_CPUFLAG_SSE4_2) ||
> > +defined(RTE_MACHINE_CPUFLAG_CRC32)
> >  	ip_src0 = (const uint32_t *) k->ip_src;
> >  	ip_src1 = (const uint32_t *)(k->ip_src+4);
> >  	ip_src2 = (const uint32_t *)(k->ip_src+8); @@ -219,14 +219,14 @@
> > ipv6_hash_crc(const void *data, __rte_unused uint32_t data_len,
> >  	init_val = rte_hash_crc_4byte(*ip_dst2, init_val);
> >  	init_val = rte_hash_crc_4byte(*ip_dst3, init_val);
> >  	init_val = rte_hash_crc_4byte(*p, init_val); -#else /*
> > RTE_MACHINE_CPUFLAG_SSE4_2 */
> > +#else
> >  	init_val = rte_jhash_1word(t, init_val);
> >  	init_val = rte_jhash(k->ip_src,
> >  			sizeof(uint8_t) * IPV6_ADDR_LEN, init_val);
> >  	init_val = rte_jhash(k->ip_dst,
> >  			sizeof(uint8_t) * IPV6_ADDR_LEN, init_val);
> >  	init_val = rte_jhash_1word(*p, init_val); -#endif /*
> > RTE_MACHINE_CPUFLAG_SSE4_2 */
> > +#endif
> >  	return init_val;
> >  }
> >
> > --
> > 1.9.1
> >

^ permalink raw reply

* Re: [PATCH] doc: fix typo in SNOW3G documentation
From: Jain, Deepak K @ 2016-10-07  6:57 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, dev@dpdk.org; +Cc: De Lara Guarch, Pablo
In-Reply-To: <1475787299-95228-1-git-send-email-pablo.de.lara.guarch@intel.com>



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Pablo de Lara
> Sent: Thursday, October 6, 2016 9:55 PM
> To: dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH] doc: fix typo in SNOW3G documentation
> 
> Fixes: 1d0c90e6cf0b ("doc: update build instructions for libsso_snow3g")
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> ---
>  doc/guides/cryptodevs/snow3g.rst | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/doc/guides/cryptodevs/snow3g.rst
> b/doc/guides/cryptodevs/snow3g.rst
> index f6eb538..75a08aa 100644
> --- a/doc/guides/cryptodevs/snow3g.rst
> +++ b/doc/guides/cryptodevs/snow3g.rst
> @@ -58,7 +58,7 @@ Limitations
>  Installation
>  ------------
> 
> -To build DPDK with the KASUMI_PMD the user is required to download
> +To build DPDK with the SNOW3G_PMD the user is required to download
>  the export controlled ``libsso_snow3g`` library, by requesting it from
> `<https://networkbuilders.intel.com/network-technologies/dpdk>`_.
>  Once approval has been granted, the user needs to log in
> --
> 2.7.4
Acked-by: Deepak kumar Jain <deepak.k.jain@intel.com>

^ permalink raw reply

* Re: [PATCH V2 2/2] virtio: support IOMMU platform
From: Michael S. Tsirkin @ 2016-10-07  4:24 UTC (permalink / raw)
  To: Jason Wang; +Cc: dev, huawei.xie, yuanhan.liu, vkaplans
In-Reply-To: <1475051112-5108-2-git-send-email-jasowang@redhat.com>

On Wed, Sep 28, 2016 at 04:25:12PM +0800, Jason Wang wrote:
> Negotiate VIRTIO_F_IOMMU_PLATFORM to have IOMMU support.
> 
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
> Changes from v1:
> - remove unnecessary NEED_MAPPING flag

One thing we probably should do is enable this flag
with VFIO but not with UIO or VFIO-noiommu.

> ---
>  drivers/net/virtio/virtio_ethdev.h | 3 ++-
>  drivers/net/virtio/virtio_pci.h    | 3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/virtio/virtio_ethdev.h b/drivers/net/virtio/virtio_ethdev.h
> index 2ecec6e..04a06e2 100644
> --- a/drivers/net/virtio/virtio_ethdev.h
> +++ b/drivers/net/virtio/virtio_ethdev.h
> @@ -63,7 +63,8 @@
>  	 1u << VIRTIO_NET_F_CTRL_RX	  |	\
>  	 1u << VIRTIO_NET_F_CTRL_VLAN	  |	\
>  	 1u << VIRTIO_NET_F_MRG_RXBUF	  |	\
> -	 1ULL << VIRTIO_F_VERSION_1)
> +	 1ULL << VIRTIO_F_VERSION_1       |	\
> +	 1ULL << VIRTIO_F_IOMMU_PLATFORM )

Space before ) looks kind of ugly.

>  
>  /*
>   * CQ function prototype
> diff --git a/drivers/net/virtio/virtio_pci.h b/drivers/net/virtio/virtio_pci.h
> index 3430a39..0aa0015 100644
> --- a/drivers/net/virtio/virtio_pci.h
> +++ b/drivers/net/virtio/virtio_pci.h
> @@ -138,6 +138,7 @@ struct virtnet_ctl;
>  #define VIRTIO_RING_F_INDIRECT_DESC	28
>  
>  #define VIRTIO_F_VERSION_1		32
> +#define VIRTIO_F_IOMMU_PLATFORM	33
>  
>  /*
>   * Some VirtIO feature bits (currently bits 28 through 31) are
> @@ -145,7 +146,7 @@ struct virtnet_ctl;
>   * rest are per-device feature bits.
>   */
>  #define VIRTIO_TRANSPORT_F_START 28
> -#define VIRTIO_TRANSPORT_F_END   32
> +#define VIRTIO_TRANSPORT_F_END   34
>  

This seems unused. Drop it?

>  /* The Guest publishes the used index for which it expects an interrupt
>   * at the end of the avail ring. Host should ignore the avail->flags field. */
> -- 
> 2.7.4

^ permalink raw reply

* Re: [PATCH v3] mbuf: add function to dump ol flag list
From: De Lara Guarch, Pablo @ 2016-10-07  3:51 UTC (permalink / raw)
  To: Olivier Matz, dev@dpdk.org
In-Reply-To: <1475743376-10360-1-git-send-email-olivier.matz@6wind.com>



> -----Original Message-----
> From: Olivier Matz [mailto:olivier.matz@6wind.com]
> Sent: Thursday, October 06, 2016 1:43 AM
> To: dev@dpdk.org; De Lara Guarch, Pablo
> Subject: [PATCH v3] mbuf: add function to dump ol flag list
> 
> The functions rte_get_rx_ol_flag_name() and rte_get_tx_ol_flag_name()
> can dump one flag, or set of flag that are part of the same mask (ex:
> PKT_TX_UDP_CKSUM, part of PKT_TX_L4_MASK). But they are not designed
> to
> dump the list of flags contained in mbuf->ol_flags.
> 
> This commit introduce new functions to do that. Similarly to the packet
> type dump functions, the goal is to factorize the code that could be
> used in several applications and reduce the risk of desynchronization
> between the flags and the dump functions.
> 
> Signed-off-by: Olivier Matz <olivier.matz@6wind.com>

Hi Olivier,

Sorry, I missed a typo in this patch: "ouput" -> "output".

Also, check-git-log.sh is complaining about two patches:

Wrong headline lowercase:
        app/testpmd: dump rx flags in csum engine
        app/testpmd: display rx port in csum engine

Lastly, could you send another version of the patchset (including patches without any modifications).
In my opinion, it is a bit difficult to apply the patchset, because Patchwork doesn't tell me
that this patch is the first patch of the patchset.

The rest of the patches look ok to me.

Thanks,
Pablo

^ permalink raw reply

* Re: [PATCH 1/1] testpmd_ug: update userguide with xstats commands
From: De Lara Guarch, Pablo @ 2016-10-07  3:39 UTC (permalink / raw)
  To: Tahhan, Maryam, dev@dpdk.org; +Cc: Tahhan, Maryam
In-Reply-To: <1473245157-155016-1-git-send-email-maryam.tahhan@intel.com>



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Maryam Tahhan
> Sent: Wednesday, September 07, 2016 3:46 AM
> To: dev@dpdk.org
> Cc: Tahhan, Maryam
> Subject: [dpdk-dev] [PATCH 1/1] testpmd_ug: update userguide with xstats
> commands
> 
> Update the testpmd user guide with instructions for retrieving extended
> NIC statistics.
> 
> Signed-off-by: Maryam Tahhan <maryam.tahhan@intel.com>

Title needs to be modified to something like the following, for convention reasons:
"doc: update testpmd guide with xtats commands"
Apart from this:

Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

^ permalink raw reply

* Re: [PATCH 1/2] app/test: fix vdev names
From: De Lara Guarch, Pablo @ 2016-10-07  2:27 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev@dpdk.org
In-Reply-To: <1475750063-16199-1-git-send-email-thomas.monjalon@6wind.com>



> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Thursday, October 06, 2016 3:34 AM
> To: De Lara Guarch, Pablo
> Cc: dev@dpdk.org
> Subject: [PATCH 1/2] app/test: fix vdev names
> 
> The vdev eth_ring has been renamed to net_ring.
> Some unit tests are using the old name and fail.
> 
> Fixes also the vdev comments in EAL and ethdev.
> 
> Fixes: 2f45703c17ac ("drivers: make driver names consistent")
> 
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>

Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

^ permalink raw reply

* Re: [PATCH 2/2] app/testpmd: use consistent vdev names
From: De Lara Guarch, Pablo @ 2016-10-07  2:27 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev@dpdk.org
In-Reply-To: <1475750063-16199-2-git-send-email-thomas.monjalon@6wind.com>



> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Thursday, October 06, 2016 3:34 AM
> To: De Lara Guarch, Pablo
> Cc: dev@dpdk.org
> Subject: [PATCH 2/2] app/testpmd: use consistent vdev names
> 
> The vdev eth_bond has been renamed to net_bond.
> testpmd is creating a bonding device with the old prefix.
> It is changed for consistency.
> 
> The script test-null.sh was failing because using the old name
> for the null vdev.
> 
> Fixes also the bonding and testpmd doc.
> 
> Fixes: 2f45703c17ac ("drivers: make driver names consistent")
> 
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>

Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

^ permalink raw reply

* Re: [PATCH v7] net/virtio: add set_mtu in virtio
From: Dey, Souvik @ 2016-10-07  2:06 UTC (permalink / raw)
  To: Stephen Hemminger, Kavanagh, Mark B
  Cc: yuanhan.liu@linux.intel.com, dev@dpdk.org
In-Reply-To: <CAOaVG16OpjA7T4YVDrzs+hq4x+tZhibuazh8t2GGXFNyQ+eEAA@mail.gmail.com>

Hi Stephen,
              As I am new to this patch submission, I did not get what you exactly meant my “Please merge”, do you mean that you Ack the patch and it can be upstreamed or you want me submit a new version or something. Sorry for my ignorance.
Thanks

--
Souvik

From: Stephen Hemminger [mailto:stephen@networkplumber.org]
Sent: Thursday, October 6, 2016 6:30 PM
To: Kavanagh, Mark B <mark.b.kavanagh@intel.com>
Cc: Dey, Souvik <sodey@sonusnet.com>; yuanhan.liu@linux.intel.com; dev@dpdk.org
Subject: Re: [PATCH v7] net/virtio: add set_mtu in virtio

I think current patch is fine. If someone has later problem with it on some scenario we can fix the bug then.
Please merge

^ permalink raw reply

* Re: [PATCH] Revert "bonding: use existing enslaved device queues"
From: Eric Kinzie @ 2016-10-07  2:02 UTC (permalink / raw)
  To: Ilya Maximets
  Cc: dev, Declan Doherty, Heetae Ahn, Yuanhan Liu, Bernard Iremonger,
	stable
In-Reply-To: <1473251290-22053-1-git-send-email-i.maximets@samsung.com>

On Wed Sep 07 15:28:10 +0300 2016, Ilya Maximets wrote:
> This reverts commit 5b7bb2bda5519b7800f814df64d4e015282140e5.
> 
> It is necessary to reconfigure all queues every time because configuration
> can be changed.
> 
> For example, if we're reconfiguring bonding device with new memory pool,
> already configured queues will still use the old one. And if the old
> mempool be freed, application likely will panic in attempt to use
> freed mempool.
> 
> This happens when we use the bonding device with OVS 2.6 while MTU
> reconfiguration:
> 
> PANIC in rte_mempool_get_ops():
> assert "(ops_index >= 0) && (ops_index < RTE_MEMPOOL_MAX_OPS_IDX)" failed
> 
> Cc: <stable@dpdk.org>
> Signed-off-by: Ilya Maximets <i.maximets@samsung.com>
> ---
>  drivers/net/bonding/rte_eth_bond_pmd.c | 10 ++--------
>  1 file changed, 2 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
> index b20a272..eb5b6d1 100644
> --- a/drivers/net/bonding/rte_eth_bond_pmd.c
> +++ b/drivers/net/bonding/rte_eth_bond_pmd.c
> @@ -1305,8 +1305,6 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
>  	struct bond_rx_queue *bd_rx_q;
>  	struct bond_tx_queue *bd_tx_q;
>  
> -	uint16_t old_nb_tx_queues = slave_eth_dev->data->nb_tx_queues;
> -	uint16_t old_nb_rx_queues = slave_eth_dev->data->nb_rx_queues;
>  	int errval;
>  	uint16_t q_id;
>  
> @@ -1347,9 +1345,7 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
>  	}
>  
>  	/* Setup Rx Queues */
> -	/* Use existing queues, if any */
> -	for (q_id = old_nb_rx_queues;
> -	     q_id < bonded_eth_dev->data->nb_rx_queues; q_id++) {
> +	for (q_id = 0; q_id < bonded_eth_dev->data->nb_rx_queues; q_id++) {
>  		bd_rx_q = (struct bond_rx_queue *)bonded_eth_dev->data->rx_queues[q_id];
>  
>  		errval = rte_eth_rx_queue_setup(slave_eth_dev->data->port_id, q_id,
> @@ -1365,9 +1361,7 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
>  	}
>  
>  	/* Setup Tx Queues */
> -	/* Use existing queues, if any */
> -	for (q_id = old_nb_tx_queues;
> -	     q_id < bonded_eth_dev->data->nb_tx_queues; q_id++) {
> +	for (q_id = 0; q_id < bonded_eth_dev->data->nb_tx_queues; q_id++) {
>  		bd_tx_q = (struct bond_tx_queue *)bonded_eth_dev->data->tx_queues[q_id];
>  
>  		errval = rte_eth_tx_queue_setup(slave_eth_dev->data->port_id, q_id,
> -- 
> 2.7.4
> 

NAK

There are still some users of this code.  Let's give them a chance to
comment before removing it.


Thanks,

Eric

^ permalink raw reply

* Re: [PATCH v3 0/4] remove hard-coding of crypto num qps and cleanup
From: De Lara Guarch, Pablo @ 2016-10-07  0:57 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, Trahe, Fiona, dev@dpdk.org
  Cc: Trahe, Fiona, akhil.goyal@nxp.com
In-Reply-To: <E115CCD9D858EF4F90C690B0DCB4D8973CA05656@IRSMSX108.ger.corp.intel.com>



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of De Lara Guarch,
> Pablo
> Sent: Thursday, October 06, 2016 5:30 PM
> To: Trahe, Fiona; dev@dpdk.org
> Cc: Trahe, Fiona; akhil.goyal@nxp.com
> Subject: Re: [dpdk-dev] [PATCH v3 0/4] remove hard-coding of crypto num
> qps and cleanup
> 
> 
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Fiona Trahe
> > Sent: Thursday, October 06, 2016 10:34 AM
> > To: dev@dpdk.org
> > Cc: De Lara Guarch, Pablo; Trahe, Fiona; akhil.goyal@nxp.com
> > Subject: [dpdk-dev] [PATCH v3 0/4] remove hard-coding of crypto num qps
> > and cleanup
> >
> >
> > ts_params->conf.nb_queue_pairs should not be hard coded with device
> > specific number. It should be retrieved from the device info.
> > Any test which changes it should restore it to orig value.
> >
> > Also related cleanup of test code setting number and size of
> > queue-pairs on a device, e.g.
> > * Removed irrelevant “for” loop – was hardcoded to only loop once.
> > * Removed obsolete comment re inability to free and re-allocate queu
> > memory
> >   and obsolete workaround for it which used to create maximum size
> queues.
> >
> > And added freeing of ring memory on queue-pair release in aesni_mb PMD,
> > else releasing and setting up queue-pair of a different size fails.
> >
> > v3:
> >   separate out into 4 patches
> >
> > v2:
> >   Fix for broken QAT PMD unit tests exposed by v1
> >   i.e. In test_device_configure_invalid_queue_pair_ids() after running tests
> >   for invalid values restore original nb_queue_pairs.
> >   Also cleanup of test code setting number and size of queue-pairs on a
> device
> >   Also fix for aesni_mb PMD not freeing ring memory on qp release
> >
> >
> > Fiona Trahe (4):
> >   crypto/aesni_mb: free ring memory on qp release in PMD
> >   app/test: remove pointless for loop
> >   app/test: cleanup unnecessary ring size setup
> >   app/test: remove hard-coding of crypto num qps
> > Akhil Goyal (1):
> >   app/test: remove hard-coding of crypto num qps
> >
> >  app/test/test_cryptodev.c                      | 53 ++++++++++----------------
> >  app/test/test_cryptodev_perf.c                 | 19 +--------
> >  drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 10 ++++-
> >  3 files changed, 31 insertions(+), 51 deletions(-)
> >
> > --
> > 2.5.0
> 
> Series-acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

Applied to dpdk-next-crypto.
Thanks,

Pablo

^ permalink raw reply

* Re: [PATCH v3 0/4] remove hard-coding of crypto num qps and cleanup
From: De Lara Guarch, Pablo @ 2016-10-07  0:29 UTC (permalink / raw)
  To: Trahe, Fiona, dev@dpdk.org; +Cc: Trahe, Fiona, akhil.goyal@nxp.com
In-Reply-To: <1475775269-21454-1-git-send-email-fiona.trahe@intel.com>



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Fiona Trahe
> Sent: Thursday, October 06, 2016 10:34 AM
> To: dev@dpdk.org
> Cc: De Lara Guarch, Pablo; Trahe, Fiona; akhil.goyal@nxp.com
> Subject: [dpdk-dev] [PATCH v3 0/4] remove hard-coding of crypto num qps
> and cleanup
> 
> 
> ts_params->conf.nb_queue_pairs should not be hard coded with device
> specific number. It should be retrieved from the device info.
> Any test which changes it should restore it to orig value.
> 
> Also related cleanup of test code setting number and size of
> queue-pairs on a device, e.g.
> * Removed irrelevant “for” loop – was hardcoded to only loop once.
> * Removed obsolete comment re inability to free and re-allocate queu
> memory
>   and obsolete workaround for it which used to create maximum size queues.
> 
> And added freeing of ring memory on queue-pair release in aesni_mb PMD,
> else releasing and setting up queue-pair of a different size fails.
> 
> v3:
>   separate out into 4 patches
> 
> v2:
>   Fix for broken QAT PMD unit tests exposed by v1
>   i.e. In test_device_configure_invalid_queue_pair_ids() after running tests
>   for invalid values restore original nb_queue_pairs.
>   Also cleanup of test code setting number and size of queue-pairs on a device
>   Also fix for aesni_mb PMD not freeing ring memory on qp release
> 
> 
> Fiona Trahe (4):
>   crypto/aesni_mb: free ring memory on qp release in PMD
>   app/test: remove pointless for loop
>   app/test: cleanup unnecessary ring size setup
>   app/test: remove hard-coding of crypto num qps
> Akhil Goyal (1):
>   app/test: remove hard-coding of crypto num qps
> 
>  app/test/test_cryptodev.c                      | 53 ++++++++++----------------
>  app/test/test_cryptodev_perf.c                 | 19 +--------
>  drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 10 ++++-
>  3 files changed, 31 insertions(+), 51 deletions(-)
> 
> --
> 2.5.0

Series-acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>


^ permalink raw reply

* [PATCH] test: fix hash multiwriter test
From: Pablo de Lara @ 2016-10-06 22:34 UTC (permalink / raw)
  To: dev; +Cc: bruce.richardson, Pablo de Lara

Hash multiwriter test consists of two subtests.
If the any of the subtests fails, the overall test should fail,
but the overall test only passed if the second subtest passed,
because the return of the first subtest was being overwritten.

Fixes: be856325cba3 ("hash: add scalable multi-writer insertion with Intel TSX")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 app/test/test_hash_multiwriter.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/app/test/test_hash_multiwriter.c b/app/test/test_hash_multiwriter.c
index 40af95d..4dcbd9d 100644
--- a/app/test/test_hash_multiwriter.c
+++ b/app/test/test_hash_multiwriter.c
@@ -247,8 +247,6 @@ err1:
 static int
 test_hash_multiwriter_main(void)
 {
-	int r = -1;
-
 	if (rte_lcore_count() == 1) {
 		printf("More than one lcore is required to do multiwriter test\n");
 		return 0;
@@ -268,14 +266,16 @@ test_hash_multiwriter_main(void)
 		printf("Test multi-writer with Hardware transactional memory\n");
 
 		use_htm = 1;
-		r = test_hash_multiwriter();
+		if (test_hash_multiwriter() < 0)
+			return -1;
 	}
 
 	printf("Test multi-writer without Hardware transactional memory\n");
 	use_htm = 0;
-	r = test_hash_multiwriter();
+	if (test_hash_multiwriter() < 0)
+		return -1;
 
-	return r;
+	return 0;
 }
 
 REGISTER_TEST_COMMAND(hash_multiwriter_autotest, test_hash_multiwriter_main);
-- 
2.7.4

^ permalink raw reply related

* Re: [PATCH v7] net/virtio: add set_mtu in virtio
From: Stephen Hemminger @ 2016-10-06 22:29 UTC (permalink / raw)
  To: Kavanagh, Mark B; +Cc: Dey, Souvik, yuanhan.liu@linux.intel.com, dev@dpdk.org
In-Reply-To: <DC5AD7FA266D86499789B1BCAEC715F85C72400D@irsmsx105.ger.corp.intel.com>

I think current patch is fine. If someone has later problem with it on some
scenario we can fix the bug then.
Please merge

^ permalink raw reply

* Re: [PATCH] doc: fix typo in SNOW3G documentation
From: De Lara Guarch, Pablo @ 2016-10-06 21:02 UTC (permalink / raw)
  To: Mcnamara, John, dev@dpdk.org
In-Reply-To: <B27915DBBA3421428155699D51E4CFE202629650@IRSMSX103.ger.corp.intel.com>



> -----Original Message-----
> From: Mcnamara, John
> Sent: Thursday, October 06, 2016 2:00 PM
> To: De Lara Guarch, Pablo; dev@dpdk.org
> Cc: De Lara Guarch, Pablo
> Subject: RE: [dpdk-dev] [PATCH] doc: fix typo in SNOW3G documentation
> 
> > -----Original Message-----
> > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Pablo de Lara
> > Sent: Thursday, October 6, 2016 9:55 PM
> > To: dev@dpdk.org
> > Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> > Subject: [dpdk-dev] [PATCH] doc: fix typo in SNOW3G documentation
> >
> > Fixes: 1d0c90e6cf0b ("doc: update build instructions for libsso_snow3g")
> >
> > Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> 
> Acked-by: John McNamara <john.mcnamara@intel.com>
> 
Applied to dpdk-next-crypto.

Pablo

^ permalink raw reply

* Re: [PATCH 1/1] doc: fix errors in pdump doc
From: Mcnamara, John @ 2016-10-06 21:01 UTC (permalink / raw)
  To: Kavanagh, Mark B, dev@dpdk.org
In-Reply-To: <1475750196-14118-1-git-send-email-mark.b.kavanagh@intel.com>

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Mark Kavanagh
> Sent: Thursday, October 6, 2016 11:37 AM
> To: dev@dpdk.org
> Subject: [dpdk-dev] [PATCH 1/1] doc: fix errors in pdump doc
> 
> - Fix copy/paste error in description of how to capture both rx
>   & tx traffic in a single pcap file
> - Replace duplicate word with what original author presumably
>   intended, such that description now makes sense
> 
> Signed-off-by: Mark Kavanagh <mark.b.kavanagh@intel.com>

Acked-by: John McNamara <john.mcnamara@intel.com>

^ permalink raw reply

* Re: [PATCH v2] cryptodev: fix compilation error in SUSE 11 SP2
From: De Lara Guarch, Pablo @ 2016-10-06 21:00 UTC (permalink / raw)
  To: Adrien Mazarguil; +Cc: dev@dpdk.org, Doherty, Declan
In-Reply-To: <20161005085155.GD17252@6wind.com>



> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Adrien Mazarguil
> Sent: Wednesday, October 05, 2016 1:52 AM
> To: De Lara Guarch, Pablo
> Cc: dev@dpdk.org; Doherty, Declan
> Subject: Re: [dpdk-dev] [PATCH v2] cryptodev: fix compilation error in SUSE 11
> SP2
> 
> On Wed, Oct 05, 2016 at 03:45:51AM +0100, Pablo de Lara wrote:
> > This commit fixes following build error, which happens in SUSE 11 SP2,
> > with gcc 4.5.1:
> >
> > In file included from lib/librte_cryptodev/rte_cryptodev.c:70:0:
> > lib/librte_cryptodev/rte_cryptodev.h:772:7:
> > error: flexible array member in otherwise empty struct
> >
> > Fixes: 347a1e037fd3 ("lib: use C99 syntax for zero-size arrays")
> >
> > Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
> > ---
> >
> > Changes in v2:
> > - Fixed commit message
> >
> >  lib/librte_cryptodev/rte_cryptodev.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/lib/librte_cryptodev/rte_cryptodev.h
> b/lib/librte_cryptodev/rte_cryptodev.h
> > index d565f39..6ad5e91 100644
> > --- a/lib/librte_cryptodev/rte_cryptodev.h
> > +++ b/lib/librte_cryptodev/rte_cryptodev.h
> > @@ -773,7 +773,7 @@ struct rte_cryptodev_sym_session {
> >  	} __rte_aligned(8);
> >  	/**< Public symmetric session details */
> >
> > -	char _private[];
> > +	__extension__ char _private[0];
> >  	/**< Private session material */
> >  };
> >
> > --
> > 2.7.4
> 
> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>

Applied to dpdk-next-crypto.

Pablo

^ permalink raw reply

* Re: [PATCH] doc: fix typo in SNOW3G documentation
From: Mcnamara, John @ 2016-10-06 21:00 UTC (permalink / raw)
  To: De Lara Guarch, Pablo, dev@dpdk.org; +Cc: De Lara Guarch, Pablo
In-Reply-To: <1475787299-95228-1-git-send-email-pablo.de.lara.guarch@intel.com>

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Pablo de Lara
> Sent: Thursday, October 6, 2016 9:55 PM
> To: dev@dpdk.org
> Cc: De Lara Guarch, Pablo <pablo.de.lara.guarch@intel.com>
> Subject: [dpdk-dev] [PATCH] doc: fix typo in SNOW3G documentation
> 
> Fixes: 1d0c90e6cf0b ("doc: update build instructions for libsso_snow3g")
> 
> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>

Acked-by: John McNamara <john.mcnamara@intel.com>

^ permalink raw reply

* [PATCH] doc: fix typo in SNOW3G documentation
From: Pablo de Lara @ 2016-10-06 20:54 UTC (permalink / raw)
  To: dev; +Cc: Pablo de Lara

Fixes: 1d0c90e6cf0b ("doc: update build instructions for libsso_snow3g")

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
---
 doc/guides/cryptodevs/snow3g.rst | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/doc/guides/cryptodevs/snow3g.rst b/doc/guides/cryptodevs/snow3g.rst
index f6eb538..75a08aa 100644
--- a/doc/guides/cryptodevs/snow3g.rst
+++ b/doc/guides/cryptodevs/snow3g.rst
@@ -58,7 +58,7 @@ Limitations
 Installation
 ------------
 
-To build DPDK with the KASUMI_PMD the user is required to download
+To build DPDK with the SNOW3G_PMD the user is required to download
 the export controlled ``libsso_snow3g`` library, by requesting it from
 `<https://networkbuilders.intel.com/network-technologies/dpdk>`_.
 Once approval has been granted, the user needs to log in
-- 
2.7.4

^ permalink raw reply related

* [PATCH v3 4/4] app/test: remove hard-coding of crypto num qps
From: Fiona Trahe @ 2016-10-06 17:34 UTC (permalink / raw)
  To: dev; +Cc: pablo.de.lara.guarch, fiona.trahe, akhil.goyal
In-Reply-To: <20160926163300.22990-1-akhil.goyal@nxp.com>

ts_params->conf.nb_queue_pairs should not be hard coded with device
specific number. It should be retrieved from the device info.
Any test which changes it should restore it to orig value.

Signed-off-by: Akhil Goyal <akhil.goyal@nxp.com>
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
---
 app/test/test_cryptodev.c      | 5 ++++-
 app/test/test_cryptodev_perf.c | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index e0b0252..83036a1 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -414,7 +414,6 @@ ut_setup(void)
 	memset(ut_params, 0, sizeof(*ut_params));
 
 	/* Reconfigure device to default parameters */
-	ts_params->conf.nb_queue_pairs = DEFAULT_NUM_QPS_PER_QAT_DEVICE;
 	ts_params->conf.socket_id = SOCKET_ID_ANY;
 	ts_params->conf.session_mp.nb_objs = DEFAULT_NUM_OPS_INFLIGHT;
 
@@ -526,6 +525,7 @@ static int
 test_device_configure_invalid_queue_pair_ids(void)
 {
 	struct crypto_testsuite_params *ts_params = &testsuite_params;
+	uint16_t orig_nb_qps = ts_params->conf.nb_queue_pairs;
 
 	/* Stop the device in case it's started so it can be configured */
 	rte_cryptodev_stop(ts_params->valid_devs[0]);
@@ -580,6 +580,9 @@ test_device_configure_invalid_queue_pair_ids(void)
 			ts_params->valid_devs[0],
 			ts_params->conf.nb_queue_pairs);
 
+	/* revert to original testsuite value */
+	ts_params->conf.nb_queue_pairs = orig_nb_qps;
+
 	return TEST_SUCCESS;
 }
 
diff --git a/app/test/test_cryptodev_perf.c b/app/test/test_cryptodev_perf.c
index 27d8cf8..4aee9af 100644
--- a/app/test/test_cryptodev_perf.c
+++ b/app/test/test_cryptodev_perf.c
@@ -431,7 +431,7 @@ testsuite_setup(void)
 
 	rte_cryptodev_info_get(ts_params->dev_id, &info);
 
-	ts_params->conf.nb_queue_pairs = DEFAULT_NUM_QPS_PER_QAT_DEVICE;
+	ts_params->conf.nb_queue_pairs = info.max_nb_queue_pairs;
 	ts_params->conf.socket_id = SOCKET_ID_ANY;
 	ts_params->conf.session_mp.nb_objs = info.sym.max_nb_sessions;
 
-- 
2.5.0

^ permalink raw reply related

* [PATCH v3 1/4] crypto/aesni_mb: free ring memory on qp release in PMD
From: Fiona Trahe @ 2016-10-06 17:34 UTC (permalink / raw)
  To: dev; +Cc: pablo.de.lara.guarch, fiona.trahe, akhil.goyal
In-Reply-To: <20160926163300.22990-1-akhil.goyal@nxp.com>

Free ring memory on queue_pair release, else
releasing and setting up queue-pair of a different size fails.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
---
 drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c
index d3c46ac..3d49e2a 100644
--- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c
+++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd_ops.c
@@ -311,8 +311,14 @@ aesni_mb_pmd_info_get(struct rte_cryptodev *dev,
 static int
 aesni_mb_pmd_qp_release(struct rte_cryptodev *dev, uint16_t qp_id)
 {
-	if (dev->data->queue_pairs[qp_id] != NULL) {
-		rte_free(dev->data->queue_pairs[qp_id]);
+	struct aesni_mb_qp *qp = dev->data->queue_pairs[qp_id];
+	struct rte_ring *r = NULL;
+
+	if (qp != NULL) {
+		r = rte_ring_lookup(qp->name);
+		if (r)
+			rte_ring_free(r);
+		rte_free(qp);
 		dev->data->queue_pairs[qp_id] = NULL;
 	}
 	return 0;
-- 
2.5.0

^ permalink raw reply related

* [PATCH v3 3/4] app/test: cleanup unnecessary ring size setup
From: Fiona Trahe @ 2016-10-06 17:34 UTC (permalink / raw)
  To: dev; +Cc: pablo.de.lara.guarch, fiona.trahe, akhil.goyal
In-Reply-To: <20160926163300.22990-1-akhil.goyal@nxp.com>

Removed obsolete comments re inability to free and re-allocate
queue memory and obsolete workaround for it
which used to create maximum size queues first, then later
create smaller queues.

Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
---
 app/test/test_cryptodev.c      | 15 +--------------
 app/test/test_cryptodev_perf.c | 17 +----------------
 2 files changed, 2 insertions(+), 30 deletions(-)

diff --git a/app/test/test_cryptodev.c b/app/test/test_cryptodev.c
index db2f23c..e0b0252 100644
--- a/app/test/test_cryptodev.c
+++ b/app/test/test_cryptodev.c
@@ -362,13 +362,6 @@ testsuite_setup(void)
 
 	rte_cryptodev_info_get(dev_id, &info);
 
-	/*
-	 * Since we can't free and re-allocate queue memory always set
-	 * the queues on this device up to max size first so enough
-	 * memory is allocated for any later re-configures needed by
-	 * other tests
-	 */
-
 	ts_params->conf.nb_queue_pairs = info.max_nb_queue_pairs;
 	ts_params->conf.socket_id = SOCKET_ID_ANY;
 	ts_params->conf.session_mp.nb_objs = info.sym.max_nb_sessions;
@@ -378,7 +371,7 @@ testsuite_setup(void)
 			"Failed to configure cryptodev %u with %u qps",
 			dev_id, ts_params->conf.nb_queue_pairs);
 
-	ts_params->qp_conf.nb_descriptors = MAX_NUM_OPS_INFLIGHT;
+	ts_params->qp_conf.nb_descriptors = DEFAULT_NUM_OPS_INFLIGHT;
 
 	for (qp_id = 0; qp_id < info.max_nb_queue_pairs; qp_id++) {
 		TEST_ASSERT_SUCCESS(rte_cryptodev_queue_pair_setup(
@@ -430,12 +423,6 @@ ut_setup(void)
 			"Failed to configure cryptodev %u",
 			ts_params->valid_devs[0]);
 
-	/*
-	 * Now reconfigure queues to size we actually want to use in this
-	 * test suite.
-	 */
-	ts_params->qp_conf.nb_descriptors = DEFAULT_NUM_OPS_INFLIGHT;
-
 	for (qp_id = 0; qp_id < ts_params->conf.nb_queue_pairs ; qp_id++) {
 		TEST_ASSERT_SUCCESS(rte_cryptodev_queue_pair_setup(
 			ts_params->valid_devs[0], qp_id,
diff --git a/app/test/test_cryptodev_perf.c b/app/test/test_cryptodev_perf.c
index e8fc097..27d8cf8 100644
--- a/app/test/test_cryptodev_perf.c
+++ b/app/test/test_cryptodev_perf.c
@@ -426,9 +426,7 @@ testsuite_setup(void)
 
 	/*
 	 * Using Crypto Device Id 0 by default.
-	 * Since we can't free and re-allocate queue memory always set the queues
-	 * on this device up to max size first so enough memory is allocated for
-	 * any later re-configures needed by other tests
+	 * Set up all the qps on this device
 	 */
 
 	rte_cryptodev_info_get(ts_params->dev_id, &info);
@@ -442,19 +440,6 @@ testsuite_setup(void)
 			"Failed to configure cryptodev %u",
 			ts_params->dev_id);
 
-
-	ts_params->qp_conf.nb_descriptors = MAX_NUM_OPS_INFLIGHT;
-
-	for (qp_id = 0; qp_id < ts_params->conf.nb_queue_pairs ; qp_id++) {
-		TEST_ASSERT_SUCCESS(rte_cryptodev_queue_pair_setup(
-			ts_params->dev_id, qp_id,
-			&ts_params->qp_conf,
-			rte_cryptodev_socket_id(ts_params->dev_id)),
-			"Failed to setup queue pair %u on cryptodev %u",
-			qp_id, ts_params->dev_id);
-	}
-
-	/*Now reconfigure queues to size we actually want to use in this testsuite.*/
 	ts_params->qp_conf.nb_descriptors = PERF_NUM_OPS_INFLIGHT;
 	for (qp_id = 0; qp_id < ts_params->conf.nb_queue_pairs ; qp_id++) {
 
-- 
2.5.0

^ permalink raw reply related


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox