From: Adrien Mazarguil <adrien.mazarguil@6wind.com>
To: "Xueming(Steven) Li" <xuemingl@mellanox.com>
Cc: Shahaf Shuler <shahafs@mellanox.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [dpdk-dev, 5/7] net/mlx5: add port representor awareness
Date: Tue, 12 Jun 2018 15:20:22 +0200 [thread overview]
Message-ID: <20180612132022.GX4025@6wind.com> (raw)
In-Reply-To: <VI1PR05MB1678DD38184880302DD9C4D0AC780@VI1PR05MB1678.eurprd05.prod.outlook.com>
On Mon, Jun 11, 2018 at 01:05:55PM +0000, Xueming(Steven) Li wrote:
> Hi Adrien,
>
> Couldn't find your original email from inbox anyway, have to start a new thread here.
<snip>
> > +static int
> > +mlx5_cmp_ibv_name(const void *a, const void *b)
> > +{
> > + const char *name_a = (*(const struct ibv_device *const *)a)->name;
> > + const char *name_b = (*(const struct ibv_device *const *)b)->name;
> > + size_t i = 0;
> > +
> > + while (name_a[i] && name_a[i] == name_b[i])
> > + ++i;
> > + return atoi(name_a + i) - atoi(name_b + i);
>
> Comparing "1" and "10" here will return 0, does this matter?
Sure it does! The whole point of this function is precisely to avoid this
kind of issues. I'll fix it for v2, thanks.
<snip>
> > + if (n > 1) {
> > + /*
> > + * The existence of several matching entries means port
> > + * representors have been instantiated. No existing Verbs
> > + * call nor /sys entries can tell them apart at this point.
> > + *
> > + * While definitely hackish, assume their names are numbered
> > + * based on order of creation with master device first,
> > + * followed by first port representor, followed by the
> > + * second one and so on.
> > + */
> > + DRV_LOG(WARNING,
> > + "probing device with port representors involves"
> > + " heuristics with uncertain outcome");
> > + qsort(ibv_match, n, sizeof(*ibv_match), mlx5_cmp_ibv_name);
> > + DRV_LOG(WARNING, "assuming \"%s\" is the master device",
> > + ibv_match[0]->name);
> > + for (ret = 1; ret < n; ++ret)
> > + DRV_LOG(WARNING,
> > + "assuming \"%s\" is port representor #%d",
> > + ibv_match[ret]->name, ret - 1);
>
> Such dump will appear when attaching each rep port, how about just
> do it for PF in DEBUG level?
It occurs only once when probing the master device and detecting the
presence of representors, not for each of them.
I prefer to leave it as a warning because this detection approach, while an
undeniable improvement over not checking anything and ending up configuring
the wrong netdevice, is unfortunately not 100% accurate. This will be
improved, however users must be warned of possible issues in the meantime.
--
Adrien Mazarguil
6WIND
next prev parent reply other threads:[~2018-06-12 13:20 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-11 13:05 Xueming(Steven) Li
2018-06-12 13:20 ` Adrien Mazarguil [this message]
2018-06-12 13:57 ` Xueming(Steven) Li
2018-06-12 14:18 ` Adrien Mazarguil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180612132022.GX4025@6wind.com \
--to=adrien.mazarguil@6wind.com \
--cc=dev@dpdk.org \
--cc=shahafs@mellanox.com \
--cc=xuemingl@mellanox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).