DPDK patches and discussions
 help / color / mirror / Atom feed
From: Ferruh Yigit <ferruh.yigit@intel.com>
To: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>,
	"dev@dpdk.org" <dev@dpdk.org>
Cc: Ajit Khaparde <ajit.khaparde@broadcom.com>,
	Jerin Jacob <jerin.jacob@caviumnetworks.com>,
	Shijith Thotton <shijith.thotton@cavium.com>,
	Santosh Shukla <santosh.shukla@caviumnetworks.com>,
	Rahul Lakkireddy <rahul.lakkireddy@chelsio.com>,
	John Daley <johndale@cisco.com>,
	"Lu, Wenzhuo" <wenzhuo.lu@intel.com>,
	"Xing, Beilei" <beilei.xing@intel.com>,
	"Zhang, Qi Z" <qi.z.zhang@intel.com>,
	"Wu, Jingjing" <jingjing.wu@intel.com>,
	Adrien Mazarguil <adrien.mazarguil@6wind.com>,
	Nelio Laranjeiro <nelio.laranjeiro@6wind.com>,
	Yongseok Koh <yskoh@mellanox.com>,
	Shahaf Shuler <shahafs@mellanox.com>,
	Tomasz Duszynski <tdu@semihalf.com>,
	Jianbo Liu <jianbo.liu@arm.com>,
	Alejandro Lucero <alejandro.lucero@netronome.com>,
	Hemant Agrawal <hemant.agrawal@nxp.com>,
	Shreyansh Jain <shreyansh.jain@nxp.com>,
	Harish Patil <harish.patil@cavium.com>,
	Rasesh Mody <rasesh.mody@cavium.com>,
	Andrew Rybchenko <arybchenko@solarflare.com>,
	Shrikrishna Khare <skhare@vmware.com>,
	Maxime Coquelin <maxime.coquelin@redhat.com>,
	"Legacy, Allain (Wind River)" <allain.legacy@windriver.com>,
	"Richardson, Bruce" <bruce.richardson@intel.com>,
	Gaetan Rivet <gaetan.rivet@6wind.com>,
	Olivier Matz <olivier.matz@6wind.com>
Subject: Re: [dpdk-dev] Survey for final decision about per-port offload API
Date: Tue, 24 Apr 2018 13:27:35 +0100	[thread overview]
Message-ID: <f23ab2a8-ff76-5e69-f815-a3000855fa23@intel.com> (raw)
In-Reply-To: <2601191342CEEE43887BDE71AB977258AEA520B2@IRSMSX102.ger.corp.intel.com>

On 4/24/2018 12:08 PM, Ananyev, Konstantin wrote:
> Hi Ferruh,
> 
>>
>> On 3/30/2018 2:47 PM, Thomas Monjalon wrote:
>>> There are some discussions about a specific part of the offload API:
>>> 	"To enable per-port offload, the offload should be set on both
>>> 	device configuration and queue setup."
>>>
>>> It means the application must repeat the port offload flags
>>> in rte_eth_conf.[rt]xmode.offloads and rte_eth_[rt]xconf.offloads,
>>> when calling respectively rte_eth_dev_configure() and
>>> rte_eth_[rt]x_queue_setup for each queue.
>>>
>>> The PMD must check if there is mismatch, i.e. a port offload not
>>> repeated in queue setup.
>>> There is a proposal to do this check at ethdev level:
>>> 	http://dpdk.org/ml/archives/dev/2018-March/094023.html
>>>
>>> It was also proposed to relax the API and allow "forgetting" port
>>> offloads in queue offloads:
>>> 	http://dpdk.org/ml/archives/dev/2018-March/092978.html
>>>
>>> It would mean the offloads applied to a queue result of OR operation:
>>> 	rte_eth_conf.[rt]xmode.offloads | rte_eth_[rt]xconf.offloads
>>>
>>> 1/ Do you agree with above API change?
>>
>> There is a detail of ability to disabling queue level offloads in queue_setup()
>> function, I want to discuss here.
>>
>> Prolog:
>> port level offload: An offload only can be applied port level, to all queues.
>> queue level offload: An offload can be applied into individual queues of the port
>>
>> PMD reports port offload capability: port level offload + queue level offload
>> PMD reports queue offload capability: queue level offload
>>
>>
>> Above suggested change to API:
>> - Application will be limited in configure() to set only an offload within "port
>> offload capability"
>> - Application will be limited in queue_setup() to set only an offload within
>> "queue offload capability"
>>
>>
>> This doesn't say much about disabling an offload in queue_setup(), as a rule:
>> - An "port level offload" can't be disabled in queue_setup()
>>
>>
>> There are two cases of disable:
>> 1- Disabling a "queue level offload" enabled queue_setup() previously
>> 2- Disabling a "queue level offload" enabled in configure()
>>
>> If second is not supported, to disable the offload, applications should
>> stop->re-configure()->re-queue_setup()->start the port. But having this
>> capability makes the offloading parameters more confusing for applications.
>>
>>
>> I suggest adding disable support to fist one but not second one.
> 
> Not sure why to introduce such limitation?

Not supporting second one?

To differentiate disable request for that case is harder. How can we say to
disable a "queue level offloads" enabled by configure()?

It may be by setting these offloads in queue_setup() as well and when any
offload is missing in queue_setup() it can be taken as disable request. This
forces applications to duplicate/set "queue level offloads" enabled by
configure() in the queue_setup() function by default.

This is an option, but my concern was to this may be harder to manage by
applications.
An application will have to remove "port level offload" from port_offloads and
feed it into each queue_setup().

Also this is closer to existing API but not same, the difference is
queue_setup() doesn't get "port level offload"

We can go with this one if there is a requirement for it.

And if we prefer to go with this option, perhaps we can think twice about
changing exiting API because this will be very close the existing API. Only
logically it is not correct to force application to set some offloads in
queue_setup() for the PMD that doesn't support queue offload at all, this can be
handled in PMD, and saves us of all the trouble of the change.


> Konstantin
> 

  reply	other threads:[~2018-04-24 12:27 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-30 13:47 Thomas Monjalon
2018-03-30 15:13 ` Andrew Rybchenko
2018-03-30 15:46   ` Thomas Monjalon
2018-04-01  1:51 ` Zhang, Qi Z
2018-04-02 15:44   ` Thomas Monjalon
2018-04-01  4:44 ` Shahaf Shuler
2018-04-02 15:53   ` Thomas Monjalon
2018-04-03  5:19     ` Shahaf Shuler
2018-04-02  1:27 ` Lu, Wenzhuo
2018-04-02  3:18 ` Xing, Beilei
2018-04-02 17:23 ` Wu, Jingjing
2018-04-02 17:39 ` Patil, Harish
2018-04-02 20:10   ` Thomas Monjalon
2018-04-02 20:45     ` Patil, Harish
2018-04-03  0:53 ` Zhang, Qi Z
2018-04-03 19:59 ` John Daley (johndale)
2018-04-04  0:25 ` Yongseok Koh
2018-04-11 14:42 ` Olivier Matz
2018-04-11 15:17 ` Alejandro Lucero
2018-04-12  5:41 ` Jerin Jacob
2018-04-12  7:03 ` Maxime Coquelin
2018-04-12  9:08 ` Shreyansh Jain
2018-04-24 10:39 ` Ferruh Yigit
2018-04-24 11:08   ` Ananyev, Konstantin
2018-04-24 12:27     ` Ferruh Yigit [this message]
2018-04-24 15:20       ` Ananyev, Konstantin
2018-04-24 16:18         ` Ferruh Yigit
2018-04-24 12:56   ` Shahaf Shuler
2018-04-24 22:00   ` Thomas Monjalon
2018-04-25 13:32     ` Ferruh Yigit
2018-04-25 15:21       ` Thomas Monjalon
2018-04-25 16:45       ` Ferruh Yigit

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=f23ab2a8-ff76-5e69-f815-a3000855fa23@intel.com \
    --to=ferruh.yigit@intel.com \
    --cc=adrien.mazarguil@6wind.com \
    --cc=ajit.khaparde@broadcom.com \
    --cc=alejandro.lucero@netronome.com \
    --cc=allain.legacy@windriver.com \
    --cc=arybchenko@solarflare.com \
    --cc=beilei.xing@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=gaetan.rivet@6wind.com \
    --cc=harish.patil@cavium.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=jerin.jacob@caviumnetworks.com \
    --cc=jianbo.liu@arm.com \
    --cc=jingjing.wu@intel.com \
    --cc=johndale@cisco.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=nelio.laranjeiro@6wind.com \
    --cc=olivier.matz@6wind.com \
    --cc=qi.z.zhang@intel.com \
    --cc=rahul.lakkireddy@chelsio.com \
    --cc=rasesh.mody@cavium.com \
    --cc=santosh.shukla@caviumnetworks.com \
    --cc=shahafs@mellanox.com \
    --cc=shijith.thotton@cavium.com \
    --cc=shreyansh.jain@nxp.com \
    --cc=skhare@vmware.com \
    --cc=tdu@semihalf.com \
    --cc=thomas@monjalon.net \
    --cc=wenzhuo.lu@intel.com \
    --cc=yskoh@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).