From: Ivan Dyukov <i.dyukov@samsung.com>
To: "Morten Brørup" <mb@smartsharesystems.com>,
"Thomas Monjalon" <thomas@monjalon.net>,
"Ferruh Yigit" <ferruh.yigit@intel.com>,
"Andrew Rybchenko" <arybchenko@solarflare.com>
Cc: dev@dpdk.org, Matan Azrad <matan@mellanox.com>,
"Benoit Ganne (bganne)" <bganne@cisco.com>,
maxime.coquelin@redhat.com,
'Vladimir Kuramshin' <v.kuramshin@samsung.com>,
amorenoz@redhat.com, zhihong.wang@intel.com,
xiaolong.ye@intel.com
Subject: Re: [dpdk-dev] [RFC] ethdev: use special speed for virtual Ethernetdevices
Date: Thu, 2 Apr 2020 23:41:37 +0300 [thread overview]
Message-ID: <d61d98f8-d249-8fc4-ea9d-792f606a6af8@samsung.com> (raw)
In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35C60F3A@smartserver.smartshare.dk>
02.04.2020 16:50, Morten Brørup пишет:
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ivan Dyukov
>> Sent: Thursday, April 2, 2020 2:54 PM
>>
>> 01.04.2020 13:06, Morten Brørup пишет:
>>>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
>>>> Sent: Wednesday, April 1, 2020 11:54 AM
>>>>
>>>> 01/04/2020 11:33, Morten Brørup:
>>>>> Thomas, Ferruh, Andrew (Ethernet API Maintainers),
>>>>>
>>>>> A command line option was recently added to set which speed a vNIC
>>>> reports when the link is up. This makes sense for Spanning Tree and
>>>> other protocols which depend on link speed.
>>>>
>>>> Please could you reference the patch?
>>> It is a patch for the virtio driver:
>>> https://protect2.fireeye.com/url?k=e37beb37-beabe3df-e37a6078-
>> 000babff32e3-
>> 4aaaa0986ed7ec57&u=https://protect2.fireeye.com/url?k=b77dd9ba-ea1a9d9c-b77c52f5-0cc47a31384a-83e04670981c13ea&u=http://inbox.dpdk.org/dev/20191212085012.9170-1-
>> i.dyukov@samsung.com/T/#m052f90ea8c559406aeaefaea1fc24ed9bb573788
>> This patch is related to similar work in qemu & kernel virtio driver.
>> Please see
>> https://protect2.fireeye.com/url?k=1e499600-432ed226-1e481d4f-0cc47a31384a-5c4e61a49cf9986a&u=https://lists.oasis-open.org/archives/virtio-
>> comment/201911/msg00058.html.
>> These changes have been implemented and released in kernel and qemu.
>> speed is negotiated from qemu and then user may change the speed of
>> virtio device using ethtool utility. I have added similiar patchset for
>> pmd driver which do the same but for changing speed I used devargs
>> instead of ethtool.
> Very interesting link, indeed!
>
> It gives the virtio driver the possibility to expose a specific speed in Mbit/s, which I assume - when used correctly - should reflect the speed of the underlying hardware. So it could be 20 Gbit/s for a link aggregate (in IEEE 802.3 Ethernet terminology; "bond" in Linux terminology) of two 10G ports.
>
> It also provides a special value for unknown speed.
>
>>>>> However, I suspect that this workaround rarely reflects the
>> physical
>>>> truth, and suggest that the application should handle it instead.
>>>>
>>>> I don't understand why we need to define some speed for virtual
>>>> devices.
>>>>
>>>>> In other words... Instead of faking it in the virtual Ethernet
>>>> drivers, I suggest that rte_ethdev.h defines a special speed value
>> for
>>>> vNICs which really don't have a physical link speed:
>>>>> #define ETH_SPEED_NUM_NONE 0 /**< Not defined */
>>>> The only issue with this constant is the lack of RTE_ prefix :-)
>>>> Otherwise I think "0 - NONE - not defined" fits well with virtual
>>>> device case.
>>>>
>>>>> +#define ETH_SPEED_NUM_UNKNOWN 1 /**< Unknown (virtual device)
>>>> */
>>>>
>>>> 1 means 1 Mbps
>>>>
>>>>> #define ETH_SPEED_NUM_10M 10 /**< 10 Mbps */
>>>>>
>>>>> Alternatively, we could expand the meaning of ETH_SPEED_NUM_NONE:
>>>>>
>>>>> -#define ETH_SPEED_NUM_NONE 0 /**< Not defined */
>>>>> +#define ETH_SPEED_NUM_NONE 0 /**< Not defined or unknown
>>>> (virtual device) */
>>>>
>>>> Yes I agree with extending the comment for NONE.
>>>>
>>>>> The special value could also be used in cases like this:
>>>>>
>>>> https://protect2.fireeye.com/url?k=6154668d-3c846e65-6155edc2-
>> 000babff32e3-
>> bf63d034253cac80&u=https://protect2.fireeye.com/url?k=13709c46-4e17d860-13711709-0cc47a31384a-b18536864970b070&u=http://inbox.dpdk.org/dev/AM0PR0502MB401907ADE7CEA27
>> DC642DF35D2CB0@AM0P
>>>> R0502MB4019.eurprd05.prod.outlook.com/T/#t
>>>>
>>>> Yes, if speed is unknown, it should be reported as 0.
> Could the DPDK vNIC PMDs be updated accordingly? At least the virtio driver...
Current version of dpdk code on master always returns 10G speed for
virtio device and many application rely on it. e.g. pktgen. If we'll
change it, we break the apps.
>>> So the next related question is: Should a vNIC be allowed to report a
>> fake speed if it does not know that the underlying hardware actually
>> provides this speed?
> Your link to the Kernel/QEMU patch answers this question: Yes, because we assume it reflects the underlying speed.
>
>
next prev parent reply other threads:[~2020-04-02 20:41 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-01 9:33 [dpdk-dev] [RFC] ethdev: use special speed for virtual Ethernet devices Morten Brørup
2020-04-01 9:53 ` Thomas Monjalon
2020-04-01 10:03 ` Benoit Ganne (bganne)
2020-04-01 10:06 ` [dpdk-dev] [RFC] ethdev: use special speed for virtual Ethernetdevices Morten Brørup
2020-04-02 12:54 ` Ivan Dyukov
2020-04-02 13:50 ` Morten Brørup
2020-04-02 15:29 ` Stephen Hemminger
2020-04-02 20:41 ` Ivan Dyukov [this message]
2020-04-02 20:58 ` Thomas Monjalon
2020-04-03 8:05 ` Ivan Dyukov
2020-04-03 9:45 ` Morten Brørup
2020-04-03 11:01 ` Thomas Monjalon
2020-04-07 22:26 ` [dpdk-dev] [PATCH 0/2] ethdev link speed Thomas Monjalon
2020-04-07 22:26 ` [dpdk-dev] [PATCH 1/2] ethdev: deduplicate functions to get link infos Thomas Monjalon
2020-04-08 5:21 ` Asaf Penso
2020-04-08 12:49 ` Thomas Monjalon
2020-04-13 14:14 ` Andrew Rybchenko
2020-04-07 22:26 ` [dpdk-dev] [PATCH 2/2] ethdev: allow unknown link speed Thomas Monjalon
2020-04-08 5:39 ` Jerin Jacob
2020-04-10 10:53 ` Morten Brørup
2020-04-13 14:26 ` Andrew Rybchenko
2020-04-16 13:42 ` Ferruh Yigit
2020-04-26 11:44 ` Matan Azrad
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=d61d98f8-d249-8fc4-ea9d-792f606a6af8@samsung.com \
--to=i.dyukov@samsung.com \
--cc=amorenoz@redhat.com \
--cc=arybchenko@solarflare.com \
--cc=bganne@cisco.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=matan@mellanox.com \
--cc=maxime.coquelin@redhat.com \
--cc=mb@smartsharesystems.com \
--cc=thomas@monjalon.net \
--cc=v.kuramshin@samsung.com \
--cc=xiaolong.ye@intel.com \
--cc=zhihong.wang@intel.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).