mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Yunsheng Lin <linyunsheng@huawei.com>
To: Jiri Pirko <jiri@resnulli.us>
Cc: "davem@davemloft.net" <davem@davemloft.net>,
	huangdaode <huangdaode@hisilicon.com>,
	"xuwei (O)" <xuwei5@hisilicon.com>,
	"Liguozhu (Kenneth)" <liguozhu@hisilicon.com>,
	"Zhuangyuzeng (Yisen)" <yisen.zhuang@huawei.com>,
	Gabriele Paoloni <gabriele.paoloni@huawei.com>,
	John Garry <john.garry@huawei.com>,
	Linuxarm <linuxarm@huawei.com>,
	"Salil Mehta" <salil.mehta@huawei.com>,
	"lipeng (Y)" <lipeng321@huawei.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH net-next 10/10] net: hns3: Add mqprio support when interacting with network stack
Date: Sat, 23 Sep 2017 08:47:20 +0800	[thread overview]
Message-ID: <fdd8d8af-6d74-143a-adfa-502bd94a90d9@huawei.com> (raw)
In-Reply-To: <20170922160322.GB2005@nanopsycho.orion>

Hi, Jiri

On 2017/9/23 0:03, Jiri Pirko wrote:
> Fri, Sep 22, 2017 at 04:11:51PM CEST, linyunsheng@huawei.com wrote:
>> Hi, Jiri
>>
>>>> - if (!tc) {
>>>> + if (if_running) {
>>>> + (void)hns3_nic_net_stop(netdev);
>>>> + msleep(100);
>>>> + }
>>>> +
>>>> + ret = (kinfo->dcb_ops && kinfo->dcb_ops->>setup_tc) ?
>>>> + kinfo->dcb_ops->setup_tc(h, tc, prio_tc) : ->EOPNOTSUPP;
>>
>>> This is most odd. Why do you call dcb_ops from >ndo_setup_tc callback?
>>> Why are you mixing this together? prio->tc mapping >can be done
>>> directly in dcbnl
>>
>> Here is what we do in dcb_ops->setup_tc:
>> Firstly, if current tc num is different from the tc num
>> that user provide, then we setup the queues for each
>> tc.
>>
>> Secondly, we tell hardware the pri to tc mapping that
>> the stack is using. In rx direction, our hardware need
>> that mapping to put different packet into different tc'
>> queues according to the priority of the packet, then
>> rss decides which specific queue in the tc should the
>> packet goto.
>>
>> By mixing, I suppose you meant why we need the
>> pri to tc infomation?
> 
> by mixing, I mean what I wrote. You are calling dcb_ops callback from
> ndo_setup_tc callback. So you are mixing DCBNL subsystem and TC
> subsystem. Why? Why do you need sch_mqprio? Why DCBNL is not enough for
> all?

When using lldptool, dcbnl is involved.

But when using tc qdisc, dcbbl is not involved, below is the a few key
call graph in the kernel when tc qdisc cmd is executed.

cmd:
tc qdisc add dev eth0 root handle 1:0 mqprio num_tc 4 map 1 2 3 3 1 3 1 1 hw 1

call graph:
rtnetlink_rcv_msg -> tc_modify_qdisc -> qdisc_create -> mqprio_init ->
hns3_nic_setup_tc

When hns3_nic_setup_tc is called, we need to know how many tc num and
prio_tc mapping from the tc_mqprio_qopt which is provided in the paramter
in the ndo_setup_tc function, and dcb_ops is the our hardware specific
method to setup the tc related parameter to the hardware, so this is why
we call dcb_ops callback in ndo_setup_tc callback.

I hope this will answer your question, thanks for your time.

> 
> 
> 
>> I hope I did not misunderstand your question, thanks
>> for your time reviewing.
> 
> .
> 

  reply	other threads:[~2017-09-23  0:47 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-21 11:21 [PATCH net-next 00/10] Add support for DCB feature in hns3 driver Yunsheng Lin
2017-09-21 11:21 ` [PATCH net-next 01/10] net: hns3: Support for dynamically assigning tx buffer to TC Yunsheng Lin
2017-09-22  1:41   ` David Miller
2017-09-22  1:57     ` Yunsheng Lin
2017-09-22  3:43       ` David Miller
2017-09-21 11:21 ` [PATCH net-next 02/10] net: hns3: Add support for dynamically buffer reallocation Yunsheng Lin
2017-09-21 11:21 ` [PATCH net-next 03/10] net: hns3: Add support for PFC setting in TM module Yunsheng Lin
2017-09-21 11:21 ` [PATCH net-next 04/10] net: hns3: Add support for port shaper " Yunsheng Lin
2017-09-21 11:21 ` [PATCH net-next 05/10] net: hns3: Add tc-based TM support for sriov enabled port Yunsheng Lin
2017-09-21 11:21 ` [PATCH net-next 06/10] net: hns3: Add some interface for the support of DCB feature Yunsheng Lin
2017-09-21 11:21 ` [PATCH net-next 07/10] net: hns3: Add hclge_dcb module " Yunsheng Lin
2017-09-21 11:21 ` [PATCH net-next 08/10] net: hns3: Add dcb netlink interface " Yunsheng Lin
2017-09-21 11:21 ` [PATCH net-next 09/10] net: hns3: Setting for fc_mode and dcb enable flag in TM module Yunsheng Lin
2017-09-21 11:21 ` [PATCH net-next 10/10] net: hns3: Add mqprio support when interacting with network stack Yunsheng Lin
2017-09-22 12:55   ` Jiri Pirko
     [not found]     ` <59c51a37.a1c4df0a.ac4e2.8df0SMTPIN_ADDED_BROKEN@mx.google.com>
2017-09-22 16:03       ` Jiri Pirko
2017-09-23  0:47         ` Yunsheng Lin [this message]
2017-09-24 11:37           ` Jiri Pirko
2017-09-25  0:45             ` Yunsheng Lin
2017-09-25  6:57               ` Jiri Pirko
2017-09-25  7:22                 ` Yunsheng Lin

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=fdd8d8af-6d74-143a-adfa-502bd94a90d9@huawei.com \
    --to=linyunsheng@huawei.com \
    --cc=davem@davemloft.net \
    --cc=gabriele.paoloni@huawei.com \
    --cc=huangdaode@hisilicon.com \
    --cc=jiri@resnulli.us \
    --cc=john.garry@huawei.com \
    --cc=liguozhu@hisilicon.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=lipeng321@huawei.com \
    --cc=netdev@vger.kernel.org \
    --cc=salil.mehta@huawei.com \
    --cc=xuwei5@hisilicon.com \
    --cc=yisen.zhuang@huawei.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

all inboxes | Powered by JetHome®