_rxq.c
> @@ -1330,7 +1330,7 @@
> struct priv *priv = mlx5_get_priv(dev);
> struct rxq *rxq = (*priv->rxqs)[rx_queue_id];
> struct rxq_ctrl *rxq_ctrl = container_of(rxq, struct rxq_ctrl, rxq);
> - int ret;
> + int ret = 0;
>
> if (!rxq |
EMPW_MAX_INLINE_LEN (4U * MLX5_WQE_SIZE)
>
> -#ifndef HAVE_VERBS_MLX5_OPCODE_TSO
> -#define MLX5_OPCODE_TSO MLX5_OPCODE_LSO_MPW /* Compat with OFED 3.3. */
> -#endif
>
> #define MLX5_OPC_MOD_ENHANCED_MPSW 0
> #define MLX5_OPCODE_ENHANCED_MPSW 0x29
> --
> 1.8.3.1
>
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
On Tue, Sep 05, 2017 at 01:04:36PM +, Shachar Beiser wrote:
> Signed-off-by: Shachar Beiser
Acked-by: Nelio Laranjeiro
Thanks,
--
Nélio Laranjeiro
6WIND
t #202")
> b. Tested with linux kernel 4.13-rc4
> c. For performance testing recommended to wait till kernel 4.14
>
> Signed-off-by: Shachar Beiser
Acked-by: Nelio Laranjeiro
Thanks,
--
Nélio Laranjeiro
6WIND
t #202")
> b. Tested with linux kernel 4.13-rc4
> c. For performance testing recommended to wait till kernel 4.14
>
> Signed-off-by: Shachar Beiser
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
On Mon, Sep 11, 2017 at 03:17:44PM -0700, Yongseok Koh wrote:
> On Mon, Sep 04, 2017 at 04:01:08PM +0200, Nélio Laranjeiro wrote:
> > Hi Yongseok,
> >
> > Please see some comments below,
> >
> > On Thu, Aug 31, 2017 at 09:27:06AM -0700, Yongseok Koh wrote:
&
ibv_wq_init_attr *wq_attr,
> + struct mlx5dv_wq_init_attr *mlx5_wq_attr);
> int (*dv_query_device)(struct ibv_context *ctx_in,
> struct mlx5dv_context *attrs_out);
> int (*dv_set_context_attr)(struct ibv_context *ibv_ctx,
> --
> 2.11.0
You missed to change the GLUE ABI version, it must be updated.
Regards,
--
Nélio Laranjeiro
6WIND
data {
> unsigned int elts_n:4; /* Log 2 of Mbufs. */
> unsigned int rss_hash:1; /* RSS hash res
issing something here?
> > > > >
> > > > > I'll look into those, thanks!
> > > > >
> > > > > Btw, i've now set up a github repo with the patchset applied:
> > > > >
> > > > > https://github.com/anatolyburakov/dpdk
> > > > >
> > > > > I will be pushing quick fixes there before spinning new revisions,
> > > > > so we can discover and fix bugs more rapidly. I'll fix compile
> > > > > issues reported earlier, then i'll take a look at your issues. The
> > > > > latter one seems like a typo, the former is probably a matter of
> > > > > moving things around a bit.
> > > > >
> > > > > (also, pull requests welcome if you find it easier to fix things
> > > > > yourself and submit patches against my tree!)
> > > > >
> > > > > Thanks for testing.
> > > > >
> > > >
> > > > I've looked into the failures.
> > > >
> > > > The VFIO one is not actually a failure. It only prints out errors
> > > > because rte_malloc is called before VFIO is initialized. However, once
> > > > VFIO *is* initialized, all of that memory would be added to VFIO, so
> > > > these error messages are harmless. Regardless, i've added a check to see
> > > > if init is finished before printing out those errors, so they won't be
> > > > printed out any more.
> > > >
> > > > Second one is a typo on my part that got lost in one of the rebases.
> > > >
> > > > I've pushed fixes for both into the github repo.
> > > >
> > >
> > > Although i do wonder where do the DMA remapping errors come from. The
> > > error
> > > message says "invalid argument", so that doesn't come from rte_service or
> > > anything to do with rte_malloc - this is us not providing valid arguments
> > > to
> > > VFIO. I'm not seeing these errors on my system. I'll check on others to be
> > > sure.
> >
> > I have taken a look at the github tree the issues with VFIO are gone,
> > Although
> > compilation issues with dpaa/dpaa2 are still present due to their
> > dependency on
> > `rte_eal_get_physmem_layout`.
>
> I've fixed the dpaa compile issue and pushed it to github. I've tried to
> keep the semantics the same as before, but i can't compile-test (let alone
> test-test) them as i don't have access to a system with dpaa bus.
>
> Also, you might want to know that dpaa bus driver references
> RTE_LIBRTE_DPAA_MAX_CRYPTODEV which is only found in
> config/common_armv8a_linuxapp but is not present in base config. Not sure if
> that's an issue.
Hi anatoly,
I've checkout your branch on github
commit 61e6876fd1d2 ("remove panic from memalloc")
I am compiling it with clang:
clang version 3.8.1-24 (tags/RELEASE_381/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
There are a lot of compilation errors not present on DPDK branch.
They need to be fixed.
Thanks,
--
Nélio Laranjeiro
6WIND
ibs which use other libs from above
> > 'port', 'table', 'pipeline',
> > # flow_classify lib depends on pkt framework table lib
> > - 'flow_classify']
> > + 'flow_classify', 'netlink']
>
> Given that this doesn't depend on anything apart from the core libs,
> I think it should be placed earlier in the list, where the majority of
> the libs are in alphabetical order. [Yes, I should have put a comment
> just before the "acl" lib entry calling out the fact that it was meant
> to be an alphabetical list - I forgot, sorry! :-)]
>
> /Bruce
Hi Bruce,
I will modify it for the v2.
Thanks,
--
Nélio Laranjeiro
6WIND
else
> dev_link.link_speed = link_speed;
> dev_link.link_duplex = ((edata.duplex == DUPLEX_HALF) ?
> diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c
> index b73cb53df..de5576099 100644
> --- a/drivers/net/mlx5/mlx5_ethdev.c
> +++ b/drivers/net/mlx5/mlx5_ethdev.c
> @@ -536,7 +536,7 @@ mlx5_link_update_unlocked_gset(struct rte_eth_dev *dev,
> int wait_to_complete)
> }
> link_speed = ethtool_cmd_speed(&edata);
> if (link_speed == -1)
> - dev_link.link_speed = 0;
> + dev_link.link_speed = ETH_SPEED_NUM_NONE;
> else
> dev_link.link_speed = link_speed;
> priv->link_speed_capa = 0;
> --
> 2.13.6
Hi Ferruh,
On mlx5 this hunk is conflicts with my series [1].
Regards,
[1] https://dpdk.org/ml/archives/dev/2018-March/092495.html
--
Nélio Laranjeiro
6WIND
;
>
> I might have raised this before; but having yet another netlink library is
> not a great advantage. It would be much better to use a common external
> library
> libmnl which is already available on every distribution.
The question is more do we really want to have a dependency on a so
small wrapper for a socket interface?
--
Nélio Laranjeiro
6WIND
kets in the Rx queues while the
link was down.
> Shall we talk to HW and driver people regarding how to access dev (or PHY)
> from
> user-level?
We can.
> [1]
> http://dpdk.org/doc/api/rte__ethdev_8h.html#a51d7a0d2bb4202f9ebf9f174ba1f6e5c
Regards,
--
Nélio Laranjeiro
6WIND
On Thu, Mar 15, 2018 at 04:39:46PM +0100, Thomas Monjalon wrote:
> 14/03/2018 16:17, Stephen Hemminger:
> > On Wed, 14 Mar 2018 13:08:55 +0100
> > Nélio Laranjeiro wrote:
> > > On Tue, Mar 13, 2018 at 02:20:31PM -0700, Stephen Hemminger wrote:
> > > >
; - claim_zero(remove(sun.sun_path));
> + remove(sun.sun_path);
> ret = bind(priv->primary_socket, (const struct sockaddr *)&sun,
> sizeof(sun));
> if (ret < 0) {
> --
> 1.8.3.1
>
--
Nélio Laranjeiro
6WIND
le_stat);
> - if (!ret)
> - claim_zero(remove(sun.sun_path));
> + remove(sun.sun_path);
> ret = bind(priv->primary_socket, (const struct sockaddr *)&sun,
> sizeof(sun));
> if (ret < 0) {
> --
> 1.8.3.1
>
--
Nélio Laranjeiro
6WIND
e_eth_dev_info returned by
mlx5_dev_infos_get() and thus the devops of the device.
Seems rte_eth_dev_configure() should be fixed to avoid configuring wrong
values.
Regards,
--
Nélio Laranjeiro
6WIND
tmpl->rxq.mp = mp;
> --
> 2.12.1
Unfortunately, is not enough to have a valid RSS hash result when the
PMD has a single Rx queue, a little more work needs to be handled in the
mlx5_flow.c engine to configure the hash field in Verbs Hash Rx queues
when a single queues is being used.
Thanks,
--
Nélio Laranjeiro
6WIND
On Tue, Mar 20, 2018 at 04:07:11PM -0700, Yongseok Koh wrote:
> On Tue, Mar 20, 2018 at 01:26:08PM +0100, Nélio Laranjeiro wrote:
> > On Mon, Mar 19, 2018 at 11:30:07AM -0500, Allain Legacy wrote:
> > > From: Dahir Osman
> > >
> > > In some environments it
gt; + tmpl->rxq.rss_hash = !!priv->rss_conf.rss_hf &&
> + (!!(dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS));
> tmpl->rxq.port_id = dev->data->port_id;
> tmpl->priv = priv;
> tmpl->rxq.mp = mp;
> --
> 2.11.0
I forgot to say that this patch applies on top of [1] and [2].
Regards,
[1] https://dpdk.org/browse/next/dpdk-next-net-mlx
[2] https://dpdk.org/dev/patchwork/patch/36066/
--
Nélio Laranjeiro
6WIND
(1 << log2above((rxqs_n & (rxqs_n - 1)) ?
> >priv->ind_table_max_size :
> > rxqs_n));
>
> Thanks,
> Yongseok
[1] https://dpdk.org/ml/archives/dev/2015-October/024668.html
[2] https://dpdk.org/ml/archives/dev/2015-October/024669.html
--
Nélio Laranjeiro
6WIND
> The next run of the process may have un-expected results.
>
> Should we flush the neighbor mac table also on probe to make sure only
> the VF mac exists?
In such situation the sysadmin should make the clean up, the DPDK
application cannot consider it is the only one using the device as it is
not the case, Linux still owns the device.
We have no guarantee the admin did not use another MAC address for a
service outside of the DPDK application (even if in such case he should
disable this feature to fully control what happens on the neighbor mac
table).
Thanks,
--
Nélio Laranjeiro
6WIND
his correct?
Thanks,
> Thanks,
> Hanoh
>
>
> -Original Message-
> From: Nélio Laranjeiro [mailto:nelio.laranje...@6wind.com]
> Sent: Thursday, March 22, 2018 10:55 AM
> To: Hanoch Haim (hhaim)
> Cc: Yongseok Koh; dev@dpdk.org
> Subject: Re: [dpdk-dev] mlx5
On Thu, Mar 22, 2018 at 09:45:16AM +, Shahaf Shuler wrote:
> Thursday, March 22, 2018 11:05 AM, Nélio Laranjeiro:
> > > What if the DPDK process is terminated ungracefully? I think the MAC
> > > table will remain with all the MACs which were added.
> > > The next
o the
documentation of struct rte_eth_rss_conf, only the i40e can have a key
len different from 40 bytes, others should just ignore the field [1].
Regards,
[1] https://dpdk.org/browse/dpdk/tree/lib/librte_ether/rte_ethdev.h#n380
> Hanoh
>
> -Original Message-
> From: Nélio Lara
c and it works
> without issue.
> Drivers tested are: igbe/i40e/mlx5
hmm, it is certainly calling a devops which will end by calling
mlx5_traffic_start().
Thanks,
> Thanks,
> Hanoh
>
>
> -Original Message-
> From: Nélio Laranjeiro [mailto:nelio.laranje...@6wi
gt; + rte_errno = ENOTSUP;
Should be EINVAL when values are incorrect.
> + return -rte_errno;
> + }
> priv->rss_conf.rss_key = rte_realloc(priv->rss_conf.rss_key,
>rss_conf->rss_key_len, 0);
> if (!priv->rss_conf.rss_key) {
> --
> 2.12.0
Thanks,
--
Nélio Laranjeiro
6WIND
info->hash_key_size = priv->rss_conf.rss_key_len;
> + info->hash_key_size = rss_hash_default_key_len;
> info->speed_capa = priv->link_speed_capa;
> info->flow_type_rss_offloads = ~MLX5_RSS_HF_MASK;
> }
> --
> 2.12.0
Acked-by: Nelio Laranjeiro
Regards,
--
Nélio Laranjeiro
6WIND
le
values, this device should to the same instead of refusing it.
> Testpmd command "port config rss all" should be updated as well
> to 'all' supported values from rte_eth_dev_info, I'll include this change in
> next version.
>
> > -
On Tue, Mar 27, 2018 at 05:55:32AM +, Shahaf Shuler wrote:
> Monday, March 26, 2018 2:18 PM, Nélio Laranjeiro:
> > On Mon, Mar 26, 2018 at 01:12:18PM +0300, Shahaf Shuler wrote:
> > > @@ -48,6 +48,13 @@ mlx5_rss_hash_update(struct rte_eth_dev *dev,
> > >
x27;ed Shahaf.
> >
> > >
> > > If not commit id for fixes will be wrong and needs to be fixed when
> > > merged into main repo.
> > >
> > >> Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS
> > >> flow")
> > >> Cc: sta...@dpdk.org
> > >>
> > >> Signed-off-by: Nelio Laranjeiro
> > >
> > > <...>
> > >
>
--
Nélio Laranjeiro
6WIND
x this bug? Is there anyone got these errors? Thank you~
Hi,
I would say you don't have the correct Linux drivers, nor libraries to
make it work with DPDK.
Did you installed Mellanox OFED? If not take a look at section 19.5.
Prerequisites of the NIC documentation [1].
Regards,
[1] https://dpdk.org/doc/guides-17.05/nics/mlx5.html
--
Nélio Laranjeiro
6WIND
On Wed, Mar 28, 2018 at 02:16:44PM +0100, Ferruh Yigit wrote:
> On 3/28/2018 12:34 PM, Nélio Laranjeiro wrote:
> > On Wed, Mar 28, 2018 at 11:13:42AM +, Shahaf Shuler wrote:
> >> Wednesday, March 28, 2018 12:05 PM, Ferruh Yigit:
> >>> On 3/21/2018 6:45 PM, Ferr
On Wed, Sep 13, 2017 at 05:05:14AM +, Shahaf Shuler wrote:
> Tuesday, September 12, 2017 9:34 PM, Nélio Laranjeiro:
> > > On Sep 12, 2017, at 12:24 AM, Nélio Laranjeiro
> > >>> Is not it dangerous to assume inl will always be 4 bytes long? Why
> > >&
es.
>
> Therefore, replace this counter to count the total number of failed
> transmitted packets.
>
> Fixes: 87011737b715 ("mlx5: add software counters")
> Cc: sta...@dpdk.org
> Cc: adrien.mazarg...@6wind.com
>
> Signed-off-by: Shahaf Shuler
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
m
>
> Signed-off-by: Shahaf Shuler
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
ase.
> Stephen mentioned another advantage of rebase.
> Such decisions are really difficult.
> One thing is sure: there will be always someone unhappy,
> no matter the decision :)
>
> When we want to take such decision or re-consider it,
> we ask the techboard to vote...
--
Nélio Laranjeiro
6WIND
extra inline to align to cacheline)
>
> Cc: sta...@dpdk.org
>
> Signed-off-by: Shahaf Shuler
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
; by the tag.
>
> This script could be improved to allow using another reference branch,
> instead of hard coding HEAD branch (the current one).
>
> Fixes: 26857dabb3c9 ("devtools: ignore non merged tags for backport")
> Cc: sta...@dpdk.org
>
> Signed-off-by: Thoma
On Sun, Sep 17, 2017 at 11:12:49AM +0300, Shahaf Shuler wrote:
> TSO segment size must be larger then 0.
>
> Fixes: 3f13f8c23a7c ("net/mlx5: support hardware TSO")
> Cc: sta...@dpdk.org
>
> Signed-off-by: Shahaf Shuler
> Acked-by: Yongseok Koh
Acked-by: Nelio La
For the series
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
cement
> and l2fork example bug fix:
> http://www.dpdk.org/ml/archives/dev/2017-August/073405.html
> http://www.dpdk.org/ml/archives/dev/2017-September/075568.html
>
> V4:
> * remove forked secondary mode
You should not push commits with the ACK of someone who did not review
the modif
cement
> and l2fork example bug fix:
> http://www.dpdk.org/ml/archives/dev/2017-August/073405.html
> http://www.dpdk.org/ml/archives/dev/2017-September/075568.html
>
> V4:
> * remove forked secondary mode
For the V4 series
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
")
> b. Tested with linux kernel 4.13-rc4
> c. For performance testing recommended to wait till kernel 4.14
>
> Signed-off-by: Shachar Beiser
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
rious why neither I or the automated build-system
> experienced this...
I don't know either, I faced the issue on debian 8, on ubuntu 16.04 and
redhat the issue is not visible. It becomes quiet complicate for a
single guy to test on so many distributions ;)
> Thanks for investigating / proposing a solution. -Harry
Thanks,
--
Nélio Laranjeiro
6WIND
if (stats_n < 0) {
> + priv_unlock(priv);
> return;
> + }
> if (xstats_ctrl->stats_n != stats_n)
> priv_xstats_init(priv);
> priv_xstats_reset(priv);
> --
> 1.7.10.4
This bug is already fixed in next-net/master [1][2].
VICE_UD_IP_CSUM));
> + !!(device_attr_ex.device_cap_flags_ex &
> +IBV_DEVICE_RAW_IP_CSUM);
> DEBUG("checksum offloading is %ssupported",
> (priv->hw_csum ? "" : "not "));
>
> --
> 2.12.0
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
--+
| indirection table |
| r = 2 |
+---+
Seems logical to make the Indirection table counter evolve the same way
as the hash rx queue, otherwise a second hash rx queue using this
indirection may release it whereas it is still in use by another hash rx
queue.
> However, it is logically flawless, so
> Acked-by: Yongseok Koh
Thanks,
--
Nélio Laranjeiro
6WIND
On Thu, Oct 05, 2017 at 04:00:28PM -0700, Yongseok Koh wrote:
> Replace compile-time sanity check with static_assert() as c11 standard has
> been set. Add mlx5_rxtx_vec.h and move the sanity checks to the file.
>
> Signed-off-by: Yongseok Koh
Acked-by: Nelio Laranjeiro
--
Néli
; Signed-off-by: Yongseok Koh
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
rted only by certain devices. Thus, it has to be decided by
> checking the capabilitiy bits.
>
> Fixes: bba710e6b99b ("net/mlx5: support upstream rdma-core")
> Cc: sta...@dpdk.org
>
> Signed-off-by: Yongseok Koh
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
; + /*
> > +* Request the reference to use in this queue, the original one is
> > +* kept by the control plane.
> > +*/
> > + if (lkey != (uint32_t)-1)
> > + rte_atomic32_inc(&txq->mp2mr[i]->refcnt);
> If mp2mr is overflowed (i == RTE_DIM(txq->mp2mr)), then mp2mr[0] will be
> removed
> with shifting other slots and the new entry will be added at the end. But
> referencing txq->mp2mr[i] would be illegal - out of range.
You are right, I missed that one,
Both will be updated in a v3,
Thanks,
--
Nélio Laranjeiro
6WIND
MP can be shared among several queues, (see eth_rx_queue_setup()
and eth_tx_queue_setup()), which means that a queue is not the single
owner of the Memory pool and thus the memory region.
As the Memory region can be shared among several queues, it is necessary
to increase/decrease the ref count accordingly.
Thanks,
--
Nélio Laranjeiro
6WIND
but it looks OK as far as mlx4/mlx5 are
> affected. This is my ack for this specific change:
>
> Acked-by: Adrien Mazarguil
>
> --
> Adrien Mazarguil
> 6WIND
Ferruh, the patch applied on master-net does not match this version of
mlx5_rxtx.h causing a performance issue.
Regards,
--
Nélio Laranjeiro
6WIND
On Fri, Oct 06, 2017 at 03:50:06PM -0700, Yongseok Koh wrote:
> On Fri, Oct 06, 2017 at 09:03:25AM +0200, Nélio Laranjeiro wrote:
> > On Thu, Oct 05, 2017 at 09:59:58PM -0700, Yongseok Koh wrote:
> > > On Thu, Oct 05, 2017 at 02:49:47PM +0200, Nelio Laranjeiro wrote:
> >
ed in his patches, for all series,
> >
> > Acked-by: Yongseok Koh
>
> Series applied to dpdk-next-net/master, thanks.
>
> (There is initial value assignment update in 12/30 to fix icc warning,
> please double check the update)
Hi Ferruh,
I've checked your modification and I agree with it.
Thanks,
--
Nélio Laranjeiro
6WIND
onfig
> - test "$DPDK_DEP_MOFED" != y || \
> + test "$DPDK_DEP_MLX" != y || \
> sed -ri 's,(MLX._PMD=)n,\1y,' $1/.config
> test "$DPDK_DEP_SZE" != y || \
> sed -ri 's,(PMD_SZEDATA2=)n,\1y,' $1/.config
> --
> 2.14.1
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
th rules and
thus it will duplicate a packet.
There is no need to add a limit on an undefined behavior by the
API itself.
Thanks,
PS: when you send a new revision, please use the --thread and
--in-reply-to to link it with the previous one.
--
Nélio Laranjeiro
6WIND
On Mon, Oct 16, 2017 at 11:31:32AM +, Ori Kam wrote:
> Please see my comments,
>
> > -Original Message-
> > From: Nélio Laranjeiro [mailto:nelio.laranje...@6wind.com]
> > Sent: Monday, October 16, 2017 2:18 PM
> > To: Ori Kam
> > Cc: Adrien Mazargu
e
>less than 50 segments.
> +- Count action for RTE flow is only supported in OFED 4.2.
OFED or Mellanox OFED?
Thanks,
--
Nélio Laranjeiro
6WIND
q.c
> @@ -246,6 +246,7 @@
> int already_mapped;
> size_t page_size = sysconf(_SC_PAGESIZE);
>
> + memset(pages, 0, priv->txqs_n * sizeof(uintptr_t));
> /*
>* As rdma-core, UARs are mapped in size of OS page size.
>* Use aligned address to
e DPDK from verbs Tx queue ...")
>
> Signed-off-by: Xueming Li
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
hanced multi-packet send. Otherwise it
> must have
>less than 50 segments.
> +- Count action for RTE flow is only supported in Mellanox OFED 4.2.
>
> Configuration
> -
> --
> 1.8.3.1
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
mask for these fields.
>
> Fixes: 680d5280c20b ("net/mlx4: refactor flow item validation code")
>
> Signed-off-by: Adrien Mazarguil
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
_MB_DIS,
MLX5_BLUEFLAME_MB_EN,
}
you can also create wrappers for the function to avoid this extract
argument in the tx code:
mlx5_tx_dbrec_bfmb(txq, wqe);
mlx5_tx_dbrec_no_bfmb(txq, wqe);
Multiple ways instead of having 0 or 1 hard coded.
Thanks,
--
Nélio Laranjeiro
6WIND
packets to some other destination or port. The send action will only be
triggered when the whole routing process is finished to maximize the
burst sizes. According to the traffic, the latency will change.
>From what I know, we don't have such kind of example/tool in DPDK.
> Thanks for your comment,
> Yongseok
Thanks,
--
Nélio Laranjeiro
6WIND
ange, the return type does not change in the mean time.
> */
> -static __rte_always_inline uint32_t
> +static __rte_always_inline rte_be32_t
> mlx4_txq_mp2mr(struct txq *txq, struct rte_mempool *mp)
> {
> unsigned int i;
> @@ -220,8 +220,10 @@ mlx4_txq_mp2mr(struct txq *txq, struct rte_mempool *mp)
> break;
> }
> if (txq->mp2mr[i].mp == mp) {
> - assert(txq->mp2mr[i].lkey != (uint32_t)-1);
> - assert(txq->mp2mr[i].mr->lkey == txq->mp2mr[i].lkey);
> + assert(txq->mp2mr[i].lkey !=
> + rte_cpu_to_be_32((uint32_t)-1));
Thanks,
--
Nélio Laranjeiro
6WIND
On Mon, Oct 23, 2017 at 10:24:09AM -0700, Yongseok Koh wrote:
> On Mon, Oct 23, 2017 at 09:50:14AM +0200, Nélio Laranjeiro wrote:
> > Yongseok, Sagi, my small contribution to this discussion,
> >
> > On Sun, Oct 22, 2017 at 03:01:04PM -0700, Yongseok Koh wrote:
> > >
*/
> + (*p)[0x00] = RTE_PTYPE_L2_ETHER;
> /* L3 */
> (*p)[0x01] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
> RTE_PTYPE_L4_NONFRAG;
> --
> 2.12.0
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
> [...]
> These (bcast and ipv6_multi_mask) can be duplicated multiple times if there
> are
> multiple MAC addrs, is that intended?
There is in fact an issue in this series, it does not match my final code.
I'll send a v3.
[1] http://dpdk.org/browse/dpdk/tree/lib/librte_ether/rte_ethdev.h#n2304
--
Nélio Laranjeiro
6WIND
On Tue, Oct 24, 2017 at 09:11:42AM +0200, Nélio Laranjeiro wrote:
> On Mon, Oct 23, 2017 at 12:25:45PM -0700, Yongseok Koh wrote:
> > On Mon, Oct 23, 2017 at 04:49:56PM +0200, Nelio Laranjeiro wrote:
> > > @@ -261,75 +284,59 @@ priv_dev_traffic_enable(struct priv *priv, struct
: add Rx bypassing Verbs
> > > net/mlx4: restore Tx checksum offloads
> > > net/mlx4: restore Rx offloads
> > > net/mlx4: add loopback Tx from VF
> > >
> > > doc/guides/nics/features/mlx4.ini | 6 +
> > > drivers/net/mlx4/mlx4.c | 11 +
> > > drivers/net/mlx4/mlx4.h | 2 +
> > > drivers/net/mlx4/mlx4_ethdev.c | 10 +
> > > drivers/net/mlx4/mlx4_prm.h | 151 +++
> > > drivers/net/mlx4/mlx4_rxq.c | 156 +--
> > > drivers/net/mlx4/mlx4_rxtx.c | 768
> > > -
> > > drivers/net/mlx4/mlx4_rxtx.h | 54 +--
> > > drivers/net/mlx4/mlx4_txq.c | 63 +++
> > > 9 files changed, 948 insertions(+), 273 deletions(-)
> > > create mode 100644 drivers/net/mlx4/mlx4_prm.h
> > >
> >
> >
>
Regards,
[1] http://dpdk.org/doc/guides/nics/mlx5.html#installation
--
Nélio Laranjeiro
6WIND
| 2 +-
> 8 files changed, 734 insertions(+), 93 deletions(-)
> create mode 100644 drivers/net/mlx4/mlx4_prm.h
>
> --
> 1.8.3.1
Thanks,
--
Nélio Laranjeiro
6WIND
gering at the
end of the burst the Tx doorbell.
Regards,
--
Nélio Laranjeiro
6WIND
wq_num = wq->wq_num;
> claim_zero(ibv_destroy_wq(wq));
> + } else {
> + wq_num = 0; /* Shut up GCC 4.8 warnings. */
> }
> claim_zero(ibv_destroy_cq(cq));
> if (!wq) {
Why not initialising the wq_num at 0 directly instead of adding this
else branch?
Regards,
--
Nélio Laranjeiro
6WIND
xdv;
> struct mlx4dv_rwq dv_rwq;
> - struct mlx4dv_cq dv_cq;
> + struct mlx4dv_cq dv_cq = { .comp_mask = MLX4DV_CQ_MASK_UAR, };
> const char *msg;
> struct ibv_cq *cq = NULL;
> struct ibv_wq *wq = NULL;
> @@ -604,6 +604,10 @@ void mlx4_rss_detach(struct mlx4_rss *rss)
> rxq->mcq.cqe_cnt = dv_cq.cqe_cnt;
> rxq->mcq.set_ci_db = dv_cq.set_ci_db;
> rxq->mcq.cqe_64 = (dv_cq.cqe_size & 64) ? 1 : 0;
> + rxq->mcq.arm_db = dv_cq.arm_db;
> + rxq->mcq.arm_sn = dv_cq.arm_sn;
> + rxq->mcq.cqn = dv_cq.cqn;
> + rxq->mcq.cq_uar = dv_cq.cq_uar;
> /* Update doorbell counter. */
> rxq->rq_ci = elts_n / sges_n;
> rte_wmb();
> --
> 1.8.3.1
Thanks,
--
Nélio Laranjeiro
6WIND
On Tue, Oct 24, 2017 at 06:41:07AM -0700, Yongseok Koh wrote:
> On Tue, Oct 24, 2017 at 09:34:34AM +0200, Nélio Laranjeiro wrote:
> > On Tue, Oct 24, 2017 at 09:11:42AM +0200, Nélio Laranjeiro wrote:
> > > On Mon, Oct 23, 2017 at 12:25:45PM -0700, Yongseok Koh wrote:
> >
On Tue, Oct 24, 2017 at 04:35:05PM +0200, Adrien Mazarguil wrote:
> Hi Nelio,
>
> On Tue, Oct 24, 2017 at 04:03:15PM +0200, Nélio Laranjeiro wrote:
> > Hi Moti,
> >
> > On Tue, Oct 24, 2017 at 03:35:33PM +0300, Moti Haimovsky wrote:
> > > This patch works ar
On Tue, Oct 24, 2017 at 08:36:52PM +, Ophir Munk wrote:
> Hi,
>
> On Tuesday, October 24, 2017 4:52 PM, Nélio Laranjeiro wrote:
> >
> > On Mon, Oct 23, 2017 at 02:21:57PM +, Ophir Munk wrote:
> > > From: Matan Azrad
> > >
> > > Merge
s "drop" is redundant and could use the
Ethernet entry to store it, but in RC phases making a such huge change
is not easy.
> And the following could be more consistent (and readable) with the similar
> code
> above. But I'd leave it as your choice.
>
> if (parser->drop) {
> ...
> } else if (parser->queues_n == 1) {
> ...
> } else {
> ...
> }
Agreed.
Thanks,
--
Nélio Laranjeiro
6WIND
e5530 ("net/mlx5: don't map doorbell register to write
> combining")
> Cc: sta...@dpdk.org
> Cc: Sagi Grimberg
> Cc: Alexander Solganik
>
> Signed-off-by: Yongseok Koh
> Acked-by: Shahaf Shuler
Acked-by: Nelio Laranjeiro
Thanks,
--
Nélio Laranjeiro
6WIND
& 0xff);
> + *cq->set_ci_db = rte_cpu_to_be_32(cq->cons_index & MLX4_CQ_DB_CI_MASK);
> rte_wmb();
> sq->tail = sq->tail + nr_txbbs;
> /* Update the list of packets posted for transmission. */
> @@ -829,7 +829,8 @@ struct pv {
> rxq->rq_ci = rq_ci >> sges_n;
> rte_wmb();
> *rxq->rq_db = rte_cpu_to_be_32(rxq->rq_ci);
> - *rxq->mcq.set_ci_db = rte_cpu_to_be_32(rxq->mcq.cons_index & 0xff);
> + *rxq->mcq.set_ci_db =
> + rte_cpu_to_be_32(rxq->mcq.cons_index & MLX4_CQ_DB_CI_MASK);
> /* Increment packets counter. */
> rxq->stats.ipackets += i;
> return i;
> --
> 1.8.3.1
I have a last comment, this should split up into two commits, one
introducing the MLX4_CQ_DB_CI_MASK and updating the according code, and
the second fixing the interrupts.
Thanks,
--
Nélio Laranjeiro
6WIND
elio Laranjeiro
--
Nélio Laranjeiro
6WIND
x completion queue. Since version 17.11 this
> index is handled by the PMD so it is now the responsibility of the
> PMD to write this value when enabling Rx interrupts.
>
> Fixes: 6681b845034c ("net/mlx4: add Rx bypassing Verbs")
>
> Signed-off-by: Moti Haimovsky
Acked-by:
ce network to host macros")
> Cc: sta...@dpdk.org
> Cc: Shachar Beiser
>
> Signed-off-by: Yongseok Koh
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
eless code like having
null segments in the packets which is not allowed on DPDK.
> Regarding this specific patch, I didn't see any comment from you, Are
> you agree with it?
>
> > -----Original Message-
> > From: Nélio Laranjeiro [mailto:nelio.laranje...@6wind.com]
>
On Thu, Oct 26, 2017 at 12:30:54PM +, Matan Azrad wrote:
> Hi Nelio
> Please see my comments below (3).
>
>
> > -Original Message-----
> > From: Nélio Laranjeiro [mailto:nelio.laranje...@6wind.com]
> > Sent: Thursday, October 26, 2017 3:12 PM
> >
g the layer for the inner headers.
>
> Fixes: 8086cf08b2f0 ("net/mlx5: handle RSS hash configuration in RSS flow")
> Cc: nelio.laranje...@6wind.com
>
> Signed-off-by: Shahaf Shuler
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
flow->drxq.ibv_attr);
> - if (parser->count)
> - flow->cs = parser->cs;
> if (!flow->drxq.ibv_flow) {
> rte_flow_error_set(error, ENOMEM, RTE_FLOW_ERROR_TYPE_HANDLE,
> NULL, "flow rule creation failure");
> --
> 1.7.1
Acked-by: Nelio Laranjeiro
Thanks,
--
Nélio Laranjeiro
6WIND
e libraries and kernel modules are available on OpenFabrics
> Alliance's `website <https://www.openfabrics.org/>`__ and provided by package
> @@ -421,7 +425,7 @@ Quick Start Guide on OFED
>
> .. code-block:: console
>
> -./mlnxofedinstall
> +./mlnxofedinstall --upstream-libs --dpdk
>
> 3. Verify the firmware is the correct one:
>
> --
> 2.12.0
Regards,
--
Nélio Laranjeiro
6WIND
; While these libraries and kernel modules are available on OpenFabrics
> Alliance's `website <https://www.openfabrics.org/>`__ and provided by package
> @@ -421,7 +424,7 @@ Quick Start Guide on OFED
>
> .. code-block:: console
>
> -./mlnxofedinstall
> +./mlnxofedinstall --upstream-libs --dpdk
>
> 3. Verify the firmware is the correct one:
>
> --
> 2.12.0
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
(void *)flow);
> --
> 2.12.0
I would suggest to modify directly the mlx5_priv_hrxq_get() and
mlx5_priv_hrxq_new() to handle this and update the comment of both
functions, as the two places where those are called are tricking the
queue numbers the same way, it can be directly handled by the function
itself.
Thanks,
--
Nélio Laranjeiro
6WIND
e
> + * first queue index will be taken for the indirection table.
> * @param queues_n
> * Number of queues.
> *
> @@ -1345,6 +1348,7 @@ mlx5_priv_hrxq_get(struct priv *priv, uint8_t *rss_key,
> uint8_t rss_key_len,
> {
> struct mlx5_hrxq *hrxq;
>
> + queues_n = hash_fields ? queues_n : 1;
> LIST_FOREACH(hrxq, &priv->hrxqs, next) {
> struct mlx5_ind_table_ibv *ind_tbl;
>
> --
> 2.12.0
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
> uint16_t desc,
> assert(desc > MLX5_TX_COMP_THRESH);
> tmpl->txq.flags = conf->txq_flags;
> tmpl->priv = priv;
> + tmpl->socket = socket;
> tmpl->txq.elts_n = log2above(desc);
> if (priv->mps == MLX5_MPW_ENHANCED)
> tmpl->txq.mpw_hdr_dseg = priv->mpw_hdr_dseg;
> --
> 2.1.4
Acked-by: Nelio Laranjeiro
Thanks,
--
Nélio Laranjeiro
6WIND
x5/mlx5_txq.c| 22 +--
> drivers/net/mlx5/mlx5_vlan.c | 13 +-
> mk/rte.app.mk | 8 +
> 24 files changed, 1265 insertions(+), 185 deletions(-)
> create mode 100644 drivers/net/mlx4/mlx4_glue.c
> create mode 100644 drivers/net/mlx4/mlx4_glue.h
> create mode 100644 drivers/net/mlx5/mlx5_glue.c
> create mode 100644 drivers/net/mlx5/mlx5_glue.h
>
> --
> 2.11.0
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
else
> + if (!rehash)
> ret = rxq_ctrl_setup(dev, rxq_ctrl, 1 << rxq->elts_n,
> rxq_ctrl->socket, NULL, rxq->mp);
> if (!ret)
> --
> 1.8.2.3
--
Nélio Laranjeiro
6WIND
On Mon, Jan 29, 2018 at 02:11:30PM +0100, Olivier Matz wrote:
> Cc: Adrien Mazarguil
> Cc: Nelio Laranjeiro
> Cc: Yongseok Koh
>
> Signed-off-by: Olivier Matz
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
> drivers/net/mlx5/mlx5.c | 57 ++-
> drivers/net/mlx5/mlx5_glue.c | 1 +
> drivers/net/mlx5/mlx5_glue.h | 7 +
> 10 files changed, 176 insertions(+), 6 deletions(-)
>
> --
> 2.11.0
For the series,
Acked-by: Nelio Laranjeiro
--
Nélio Laranjeiro
6WIND
Mellanox OFED version: **4.2**.
> +- Mellanox OFED version: **4.2, 4.3**.
> - firmware version:
>
>- ConnectX-4: **12.21.1000** and above.
> --
> 2.12.0
--
Nélio Laranjeiro
6WIND
gt; > (we call it Memory Region) should be pre-registered and LKEY is the index
> > of the
> > translation entry registered in device. With the current static memory
> > model, it
> > is easy to manage because v-p mapping is unchanged over time. But if it
> > becomes
> > dynamic, MLX PMD should get notified with the event to register/un-regsiter
> > Memory Region.
> >
> > For MLX PMD, it is also enough to get one notification per allocation/free
> > of a
> > virutal memory region. It shouldn't necessarily be a per-page call like
> > Benjamin
> > mentioned because PA of region doesn't need to be contiguous for
> > registration.
> > But it doesn't need to know about physical address of the region (I'm not
> > saying
> > it is unnecessary, but just FYI :-).
> >
> > Thanks,
> > Yongseok
> >
>
> Thanks for your feedback, good to hear we're on the right track. I already
> have a prototype implementation of this working, due for v1 submission :)
Hi Anatoly,
Good to know.
Do you see some performances impact with this series?
Thanks,
--
Nélio Laranjeiro
6WIND
301 - 400 of 466 matches
Mail list logo