[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-01-29 Thread Wojciech Andralojc
EAL extension allows CAT and CDP technologies to be
configured via "--l3ca*" parameters.
Reworking existing applications to make use of DPDK PQoS library is
a heavy lift. This EAL extension is to make it easier by adding
new command line options. These new options allow to leverage CAT and
CDP technologies with existing code base without any additional
development effort.

Signed-off-by: Wojciech Andralojc 
---

Adds EAL "--l3ca*" parameters to configure Intel CAT and CDP features
--l3ca-dump - lists current CAT configuration
--l3ca-reset=[cdp-on|cdp-off] - performs CAT reset.
  It can switch CDP on or off.

--l3ca=bitmask@
--l3ca=(code_bitmask,data_bitmask)@
- makes selected cores use specified CAT bitmasks

Known issues:
- checkpatches.sh LONG_LINE warnings;

 config/common_linuxapp|   4 +
 config/defconfig_i686-native-linuxapp-gcc |   3 +-
 config/defconfig_i686-native-linuxapp-icc |   3 +-
 config/defconfig_x86_64-native-linuxapp-clang |   3 +-
 config/defconfig_x86_64-native-linuxapp-gcc   |   3 +-
 config/defconfig_x86_64-native-linuxapp-icc   |   3 +-
 config/defconfig_x86_x32-native-linuxapp-gcc  |   3 +-
 lib/librte_eal/common/eal_common_lcore.c  |   4 +
 lib/librte_eal/common/eal_common_options.c| 354 ++--
 lib/librte_eal/common/eal_common_pqos.c   | 590 ++
 lib/librte_eal/common/eal_internal_cfg.h  |  34 ++
 lib/librte_eal/common/eal_options.h   |  11 +
 lib/librte_eal/common/eal_private.h   |  12 +
 lib/librte_eal/common/include/rte_lcore.h |   3 +
 lib/librte_eal/linuxapp/eal/Makefile  |  10 +
 lib/librte_eal/linuxapp/eal/eal.c |   5 +
 16 files changed, 1009 insertions(+), 36 deletions(-)
 create mode 100644 lib/librte_eal/common/eal_common_pqos.c

diff --git a/config/common_linuxapp b/config/common_linuxapp
index 553e640..bf30f1e 100644
--- a/config/common_linuxapp
+++ b/config/common_linuxapp
@@ -520,6 +520,10 @@ CONFIG_RTE_LIBRTE_VHOST_DEBUG=n
 # LIBRTE_PQOS is for librte_pqos only
 CONFIG_RTE_LIBRTE_PQOS=n
 CONFIG_RTE_LIBRTE_PQOS_DEBUG=n
+# LIBRTE_PQOS_OPTS is for enabling PQoS in EAL
+# (initialization, configuration and cmd line options)
+CONFIG_RTE_LIBRTE_PQOS_OPTS=n
+

 #
 #Compile Xen domain0 support
diff --git a/config/defconfig_i686-native-linuxapp-gcc 
b/config/defconfig_i686-native-linuxapp-gcc
index a73b999..ee8ff9f 100644
--- a/config/defconfig_i686-native-linuxapp-gcc
+++ b/config/defconfig_i686-native-linuxapp-gcc
@@ -51,4 +51,5 @@ CONFIG_RTE_LIBRTE_KNI=n
 CONFIG_RTE_IXGBE_INC_VECTOR=n

 # Enable PQoS
-CONFIG_RTE_LIBRTE_PQOS=y
\ No newline at end of file
+CONFIG_RTE_LIBRTE_PQOS=y
+CONFIG_RTE_LIBRTE_PQOS_OPTS=y
\ No newline at end of file
diff --git a/config/defconfig_i686-native-linuxapp-icc 
b/config/defconfig_i686-native-linuxapp-icc
index f454955..85d1f53 100644
--- a/config/defconfig_i686-native-linuxapp-icc
+++ b/config/defconfig_i686-native-linuxapp-icc
@@ -51,4 +51,5 @@ CONFIG_RTE_LIBRTE_KNI=n
 CONFIG_RTE_IXGBE_INC_VECTOR=n

 # Enable PQoS
-CONFIG_RTE_LIBRTE_PQOS=y
\ No newline at end of file
+CONFIG_RTE_LIBRTE_PQOS=y
+CONFIG_RTE_LIBRTE_PQOS_OPTS=y
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linuxapp-clang 
b/config/defconfig_x86_64-native-linuxapp-clang
index 57a7ad5..a93f7d9 100644
--- a/config/defconfig_x86_64-native-linuxapp-clang
+++ b/config/defconfig_x86_64-native-linuxapp-clang
@@ -42,4 +42,5 @@ CONFIG_RTE_TOOLCHAIN="clang"
 CONFIG_RTE_TOOLCHAIN_CLANG=y

 # Enable PQoS
-CONFIG_RTE_LIBRTE_PQOS=y
\ No newline at end of file
+CONFIG_RTE_LIBRTE_PQOS=y
+CONFIG_RTE_LIBRTE_PQOS_OPTS=y
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linuxapp-gcc 
b/config/defconfig_x86_64-native-linuxapp-gcc
index d4ba885..66621a5 100644
--- a/config/defconfig_x86_64-native-linuxapp-gcc
+++ b/config/defconfig_x86_64-native-linuxapp-gcc
@@ -42,4 +42,5 @@ CONFIG_RTE_TOOLCHAIN="gcc"
 CONFIG_RTE_TOOLCHAIN_GCC=y

 # Enable PQoS
-CONFIG_RTE_LIBRTE_PQOS=y
\ No newline at end of file
+CONFIG_RTE_LIBRTE_PQOS=y
+CONFIG_RTE_LIBRTE_PQOS_OPTS=y
\ No newline at end of file
diff --git a/config/defconfig_x86_64-native-linuxapp-icc 
b/config/defconfig_x86_64-native-linuxapp-icc
index 829b8f3..49b2062 100644
--- a/config/defconfig_x86_64-native-linuxapp-icc
+++ b/config/defconfig_x86_64-native-linuxapp-icc
@@ -42,4 +42,5 @@ CONFIG_RTE_TOOLCHAIN="icc"
 CONFIG_RTE_TOOLCHAIN_ICC=y

 # Enable PQoS
-CONFIG_RTE_LIBRTE_PQOS=y
\ No newline at end of file
+CONFIG_RTE_LIBRTE_PQOS=y
+CONFIG_RTE_LIBRTE_PQOS_OPTS=y
\ No newline at end of file
diff --git a/config/defconfig_x86_x32-native-linuxapp-gcc 
b/config/defconfig_x86_x32-native-linuxapp-gcc
index 4140a95..98df235 100644
--- a/config/defconfig_x86_x32-native-linuxapp-gcc
+++ b/config/defconfig_x86_x32-native-linuxapp-gcc
@@ -46,4 +46,5 @@ CONFIG_RTE_TOOLCHAIN_GCC=y
 CONFIG_RTE_LIBRTE_KNI=n

 # Enable PQoS
-CONFIG_RTE_LIBRTE_PQOS=y
\ No newline at end of file
+CONFIG_RTE_LIBRTE_PQO

[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-16 Thread Thomas Monjalon
2016-01-29 13:29, Wojciech Andralojc:
> EAL extension allows CAT and CDP technologies to be
> configured via "--l3ca*" parameters.

EAL should not depend on the PQoS library.
Please could you hook the command line parsing and help to
add these new options from outside?

> Reworking existing applications to make use of DPDK PQoS library is
> a heavy lift. This EAL extension is to make it easier by adding
> new command line options. These new options allow to leverage CAT and
> CDP technologies with existing code base without any additional
> development effort.

The command line options may be convenient in some cases but not
straightforward for some applications.
>From now, the runtime options must be also configurable with an API.
Please consider a clean configuration API first in the library.
Then it can be hooked in the EAL command line.
A thought: should we move the EAL command line in a separate library
with a hook API?


[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-22 Thread Kantecki, Tomasz
> EAL should not depend on the PQoS library.
> Please could you hook the command line parsing and help to add these new
> options from outside?

Thanks for the feedback - we heard about dependency problem from a few sources.

> The command line options may be convenient in some cases but not
> straightforward for some applications.
> >From now, the runtime options must be also configurable with an API.
> Please consider a clean configuration API first in the library.
> Then it can be hooked in the EAL command line.
> A thought: should we move the EAL command line in a separate library with a
> hook API?

Thanks for the suggestion and the feedback.

Off the mail list, we received feedback that extending EAL commands is not an 
option due to Intel Architecture nature of CAT.
Consequently, we changed direction when working on V2 PQoS patches in roder to: 
- reduce DPDK PQoS code print and reuse existing open source code
- remove IA specific options from EAL

Current V2 patch, yet to be shared on the mail-list in a few days, implements a 
sample code (reuse of skeleton) that links against existing 01.org PQoS 
library. This eliminates need for code included in V1 librte_pqos patch.
The same sample code implements a C module that parses application specific 
part of the command line with CAT configuration options (same format as V1 EAL 
command). The module is easy to re-use in other applications as needed.
In the future, if there is a need to change this C module into a regular DPDK 
library then we'll be happy to do so.

Are you OK with concept behind V2 PQoS patch as described above?

Thanks,
Tomasz 
--
Intel Research and Development Ireland Limited
Registered in Ireland
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
Registered Number: 308263


This e-mail and any attachments may contain confidential material for the sole
use of the intended recipient(s). Any review or distribution by others is
strictly prohibited. If you are not the intended recipient, please contact the
sender and delete all copies.



[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-22 Thread Thomas Monjalon
2016-02-22 13:12, Kantecki, Tomasz:
> Off the mail list, we received feedback that extending EAL commands is not an 
> option due to Intel Architecture nature of CAT.
> Consequently, we changed direction when working on V2 PQoS patches in roder 
> to: 
> - reduce DPDK PQoS code print and reuse existing open source code
> - remove IA specific options from EAL
> 
> Current V2 patch, yet to be shared on the mail-list in a few days, implements 
> a sample code (reuse of skeleton) that links against existing 01.org PQoS 
> library. This eliminates need for code included in V1 librte_pqos patch.
> The same sample code implements a C module that parses application specific 
> part of the command line with CAT configuration options (same format as V1 
> EAL command). The module is easy to re-use in other applications as needed.
> In the future, if there is a need to change this C module into a regular DPDK 
> library then we'll be happy to do so.
> 
> Are you OK with concept behind V2 PQoS patch as described above?

So you mean that PQoS don't really need some DPDK integration?
You just want to show how to use it with DPDK?



[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-23 Thread Kantecki, Tomasz
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > Are you OK with concept behind V2 PQoS patch as described above?
> 
> So you mean that PQoS don't really need some DPDK integration?
> You just want to show how to use it with DPDK?

You are correct. The technology can be used without tight DPDK integration but 
will require users to reach out to existing open source code.
Based on received feedback about EAL PQoS extensions we backed off to sort of a 
sample code.

--
Intel Research and Development Ireland Limited
Registered in Ireland
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
Registered Number: 308263


This e-mail and any attachments may contain confidential material for the sole
use of the intended recipient(s). Any review or distribution by others is
strictly prohibited. If you are not the intended recipient, please contact the
sender and delete all copies.



[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-23 Thread Thomas Monjalon
2016-02-23 10:03, Kantecki, Tomasz:
> > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > Are you OK with concept behind V2 PQoS patch as described above?
> > 
> > So you mean that PQoS don't really need some DPDK integration?
> > You just want to show how to use it with DPDK?
> 
> You are correct. The technology can be used without tight DPDK integration 
> but will require users to reach out to existing open source code.
> Based on received feedback about EAL PQoS extensions we backed off to sort of 
> a sample code.

If there is nothing specific in DPDK for PQos, why writing an example in DPDK?
Maybe the example should be better in the library itself.
I suggest to mention the library in 
doc/guides/linux_gsg/nic_perf_intel_platform.rst


[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-23 Thread Kantecki, Tomasz
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> If there is nothing specific in DPDK for PQos, why writing an example in
> DPDK?
The example makes it much easier to use the technology with DPDK.

> Maybe the example should be better in the library itself.
The library in question (https://github.com/01org/intel-cmt-cat) has a couple 
of examples but none of them refers to DPDK.

> I suggest to mention the library in
> doc/guides/linux_gsg/nic_perf_intel_platform.rst
Ok it can be added to this document. Does it imply -1 for the sample code idea?

--
Intel Research and Development Ireland Limited
Registered in Ireland
Registered Office: Collinstown Industrial Park, Leixlip, County Kildare
Registered Number: 308263


This e-mail and any attachments may contain confidential material for the sole
use of the intended recipient(s). Any review or distribution by others is
strictly prohibited. If you are not the intended recipient, please contact the
sender and delete all copies.



[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Thomas Monjalon
2016-02-23 23:03, Kantecki, Tomasz:
> > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > If there is nothing specific in DPDK for PQos, why writing an example in
> > DPDK?
> The example makes it much easier to use the technology with DPDK.
> 
> > Maybe the example should be better in the library itself.
> The library in question (https://github.com/01org/intel-cmt-cat) has a couple 
> of examples but none of them refers to DPDK.
> 
> > I suggest to mention the library in
> > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> Ok it can be added to this document. Does it imply -1 for the sample code 
> idea?

I may be wrong but I have the feeling the example is more about PQoS than DPDK.
So yes, I would vote -1.



[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Bruce Richardson
On Wed, Feb 24, 2016 at 09:24:33AM +0100, Thomas Monjalon wrote:
> 2016-02-23 23:03, Kantecki, Tomasz:
> > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > If there is nothing specific in DPDK for PQos, why writing an example in
> > > DPDK?
> > The example makes it much easier to use the technology with DPDK.
> > 
> > > Maybe the example should be better in the library itself.
> > The library in question (https://github.com/01org/intel-cmt-cat) has a 
> > couple of examples but none of them refers to DPDK.
> > 
> > > I suggest to mention the library in
> > > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> > Ok it can be added to this document. Does it imply -1 for the sample code 
> > idea?
> 
> I may be wrong but I have the feeling the example is more about PQoS than 
> DPDK.
> So yes, I would vote -1.
> 
Well, the intersection of DPDK and PQoS is what the example is really all about,
and as such it is relevant to both DPDK and the library itself. Platform QoS
can be of great use to packet processing applications for helping to ensure that
the app gets the resources it needed - especially in a virtualised world - and
so we believe that having an example in DPDK showing how to use PQoS with DPDK
is well worthwhile having. It's more effective than a simple doc update in
raising awareness of the existence of the feature, and also provides for DPDK
users a readily available app for the user to start playing with to evaluate
PQoS for their own use-cases.
I also fail to see what the downside of having the sample app is - it won't add
significantly to the project maintenance overhead.

Regards,
/Bruce


[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Ananyev, Konstantin


> -Original Message-
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce Richardson
> Sent: Wednesday, February 24, 2016 10:10 AM
> To: Thomas Monjalon
> Cc: dev at dpdk.org; Kantecki, Tomasz
> Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL 
> extension
> 
> On Wed, Feb 24, 2016 at 09:24:33AM +0100, Thomas Monjalon wrote:
> > 2016-02-23 23:03, Kantecki, Tomasz:
> > > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > If there is nothing specific in DPDK for PQos, why writing an example in
> > > > DPDK?
> > > The example makes it much easier to use the technology with DPDK.
> > >
> > > > Maybe the example should be better in the library itself.
> > > The library in question (https://github.com/01org/intel-cmt-cat) has a 
> > > couple of examples but none of them refers to DPDK.
> > >
> > > > I suggest to mention the library in
> > > > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> > > Ok it can be added to this document. Does it imply -1 for the sample code 
> > > idea?
> >
> > I may be wrong but I have the feeling the example is more about PQoS than 
> > DPDK.
> > So yes, I would vote -1.
> >
> Well, the intersection of DPDK and PQoS is what the example is really all 
> about,
> and as such it is relevant to both DPDK and the library itself. Platform QoS
> can be of great use to packet processing applications for helping to ensure 
> that
> the app gets the resources it needed - especially in a virtualised world - and
> so we believe that having an example in DPDK showing how to use PQoS with DPDK
> is well worthwhile having. It's more effective than a simple doc update in
> raising awareness of the existence of the feature, and also provides for DPDK
> users a readily available app for the user to start playing with to evaluate
> PQoS for their own use-cases.

+1 
I also think it is a good thing to have.
Again user don't have to trust the whitepapers - instead he can run the app 
and measure performance gain on his particular platform.
Konstantin   

> I also fail to see what the downside of having the sample app is - it won't 
> add
> significantly to the project maintenance overhead.
> 
> Regards,
> /Bruce


[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Thomas Monjalon
2016-02-24 10:10, Bruce Richardson:
> On Wed, Feb 24, 2016 at 09:24:33AM +0100, Thomas Monjalon wrote:
> > 2016-02-23 23:03, Kantecki, Tomasz:
> > > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > If there is nothing specific in DPDK for PQos, why writing an example in
> > > > DPDK?
> > > The example makes it much easier to use the technology with DPDK.
> > > 
> > > > Maybe the example should be better in the library itself.
> > > The library in question (https://github.com/01org/intel-cmt-cat) has a 
> > > couple of examples but none of them refers to DPDK.
> > > 
> > > > I suggest to mention the library in
> > > > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> > > Ok it can be added to this document. Does it imply -1 for the sample code 
> > > idea?
> > 
> > I may be wrong but I have the feeling the example is more about PQoS than 
> > DPDK.
> > So yes, I would vote -1.
> > 
> Well, the intersection of DPDK and PQoS is what the example is really all 
> about,
> and as such it is relevant to both DPDK and the library itself. Platform QoS
> can be of great use to packet processing applications for helping to ensure 
> that
> the app gets the resources it needed - especially in a virtualised world - and
> so we believe that having an example in DPDK showing how to use PQoS with DPDK
> is well worthwhile having. It's more effective than a simple doc update in
> raising awareness of the existence of the feature, and also provides for DPDK
> users a readily available app for the user to start playing with to evaluate
> PQoS for their own use-cases.
> I also fail to see what the downside of having the sample app is - it won't 
> add
> significantly to the project maintenance overhead.

We need to draw a line in the sand to decide what can go in DPDK examples 
because
any code using some DPDK functions could require to be integrated.
Until now, the examples were used to demonstrate some DPDK API.
Here you are advocating that examples are "marketing tools" to bring awareness 
on
a library.
I have no strong opinion, except that we cannot host and maintain 100 examples.
Other opinions are welcome.


[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Thomas Monjalon
2016-02-24 10:22, Ananyev, Konstantin:
> 
> > -Original Message-
> > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce Richardson
> > Sent: Wednesday, February 24, 2016 10:10 AM
> > To: Thomas Monjalon
> > Cc: dev at dpdk.org; Kantecki, Tomasz
> > Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL 
> > extension
> > 
> > On Wed, Feb 24, 2016 at 09:24:33AM +0100, Thomas Monjalon wrote:
> > > 2016-02-23 23:03, Kantecki, Tomasz:
> > > > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > > If there is nothing specific in DPDK for PQos, why writing an example 
> > > > > in
> > > > > DPDK?
> > > > The example makes it much easier to use the technology with DPDK.
> > > >
> > > > > Maybe the example should be better in the library itself.
> > > > The library in question (https://github.com/01org/intel-cmt-cat) has a 
> > > > couple of examples but none of them refers to DPDK.
> > > >
> > > > > I suggest to mention the library in
> > > > > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> > > > Ok it can be added to this document. Does it imply -1 for the sample 
> > > > code idea?
> > >
> > > I may be wrong but I have the feeling the example is more about PQoS than 
> > > DPDK.
> > > So yes, I would vote -1.
> > >
> > Well, the intersection of DPDK and PQoS is what the example is really all 
> > about,
> > and as such it is relevant to both DPDK and the library itself. Platform QoS
> > can be of great use to packet processing applications for helping to ensure 
> > that
> > the app gets the resources it needed - especially in a virtualised world - 
> > and
> > so we believe that having an example in DPDK showing how to use PQoS with 
> > DPDK
> > is well worthwhile having. It's more effective than a simple doc update in
> > raising awareness of the existence of the feature, and also provides for 
> > DPDK
> > users a readily available app for the user to start playing with to evaluate
> > PQoS for their own use-cases.
> 
> +1 
> I also think it is a good thing to have.
> Again user don't have to trust the whitepapers - instead he can run the app 
> and measure performance gain on his particular platform.

I totally agree the example is good to have.
Konstantin, are you thinking it must be hosted in the PQoS lib repository?


[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Bruce Richardson
On Wed, Feb 24, 2016 at 11:31:47AM +0100, Thomas Monjalon wrote:
> 2016-02-24 10:10, Bruce Richardson:
> > On Wed, Feb 24, 2016 at 09:24:33AM +0100, Thomas Monjalon wrote:
> > > 2016-02-23 23:03, Kantecki, Tomasz:
> > > > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > > If there is nothing specific in DPDK for PQos, why writing an example 
> > > > > in
> > > > > DPDK?
> > > > The example makes it much easier to use the technology with DPDK.
> > > > 
> > > > > Maybe the example should be better in the library itself.
> > > > The library in question (https://github.com/01org/intel-cmt-cat) has a 
> > > > couple of examples but none of them refers to DPDK.
> > > > 
> > > > > I suggest to mention the library in
> > > > > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> > > > Ok it can be added to this document. Does it imply -1 for the sample 
> > > > code idea?
> > > 
> > > I may be wrong but I have the feeling the example is more about PQoS than 
> > > DPDK.
> > > So yes, I would vote -1.
> > > 
> > Well, the intersection of DPDK and PQoS is what the example is really all 
> > about,
> > and as such it is relevant to both DPDK and the library itself. Platform QoS
> > can be of great use to packet processing applications for helping to ensure 
> > that
> > the app gets the resources it needed - especially in a virtualised world - 
> > and
> > so we believe that having an example in DPDK showing how to use PQoS with 
> > DPDK
> > is well worthwhile having. It's more effective than a simple doc update in
> > raising awareness of the existence of the feature, and also provides for 
> > DPDK
> > users a readily available app for the user to start playing with to evaluate
> > PQoS for their own use-cases.
> > I also fail to see what the downside of having the sample app is - it won't 
> > add
> > significantly to the project maintenance overhead.
> 
> We need to draw a line in the sand to decide what can go in DPDK examples 
> because
> any code using some DPDK functions could require to be integrated.
> Until now, the examples were used to demonstrate some DPDK API.
> Here you are advocating that examples are "marketing tools" to bring 
> awareness on
> a library.
> I have no strong opinion, except that we cannot host and maintain 100 
> examples.
> Other opinions are welcome.

I think it comes down to whether it contributes something that would be useful
and appreciated by the users. 

[While the majority of sample apps have been for showing off DPDK APIs, that's
not exclusively the case. There is the DPDK-QAT example, and also the
exception_path example showing how to use DPDK with TUN/TAP. I believe both
these add value for DPDK users and these examples, and others like them,
are worth having.]

So, in summary, I honestly think that having an example that shows platform 
QoS functionality being used with DPDK is worth having as it is something that
would be useful to DPDK users.

/Bruce


[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Ananyev, Konstantin


> -Original Message-
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> Sent: Wednesday, February 24, 2016 10:35 AM
> To: Ananyev, Konstantin
> Cc: Richardson, Bruce; dev at dpdk.org; Kantecki, Tomasz
> Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL 
> extension
> 
> 2016-02-24 10:22, Ananyev, Konstantin:
> >
> > > -Original Message-
> > > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce Richardson
> > > Sent: Wednesday, February 24, 2016 10:10 AM
> > > To: Thomas Monjalon
> > > Cc: dev at dpdk.org; Kantecki, Tomasz
> > > Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL 
> > > extension
> > >
> > > On Wed, Feb 24, 2016 at 09:24:33AM +0100, Thomas Monjalon wrote:
> > > > 2016-02-23 23:03, Kantecki, Tomasz:
> > > > > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > > > If there is nothing specific in DPDK for PQos, why writing an 
> > > > > > example in
> > > > > > DPDK?
> > > > > The example makes it much easier to use the technology with DPDK.
> > > > >
> > > > > > Maybe the example should be better in the library itself.
> > > > > The library in question (https://github.com/01org/intel-cmt-cat) has 
> > > > > a couple of examples but none of them refers to DPDK.
> > > > >
> > > > > > I suggest to mention the library in
> > > > > > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> > > > > Ok it can be added to this document. Does it imply -1 for the sample 
> > > > > code idea?
> > > >
> > > > I may be wrong but I have the feeling the example is more about PQoS 
> > > > than DPDK.
> > > > So yes, I would vote -1.
> > > >
> > > Well, the intersection of DPDK and PQoS is what the example is really all 
> > > about,
> > > and as such it is relevant to both DPDK and the library itself. Platform 
> > > QoS
> > > can be of great use to packet processing applications for helping to 
> > > ensure that
> > > the app gets the resources it needed - especially in a virtualised world 
> > > - and
> > > so we believe that having an example in DPDK showing how to use PQoS with 
> > > DPDK
> > > is well worthwhile having. It's more effective than a simple doc update in
> > > raising awareness of the existence of the feature, and also provides for 
> > > DPDK
> > > users a readily available app for the user to start playing with to 
> > > evaluate
> > > PQoS for their own use-cases.
> >
> > +1
> > I also think it is a good thing to have.
> > Again user don't have to trust the whitepapers - instead he can run the app
> > and measure performance gain on his particular platform.
> 
> I totally agree the example is good to have.
> Konstantin, are you thinking it must be hosted in the PQoS lib repository?

Personally I prefer it to be part of dpdk samples.
DPDK IO code path is a bit different from what the 'classical' user app usually 
does -
a lot of polling, avoid system calls, etc.
Also it would probably have much better visibility here.
Again, as Bruce already mentioned,  we have QAT & TAP samples, why we can't 
have PQoS too.
Konstantin



[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Thomas Monjalon
2016-02-24 11:21, Ananyev, Konstantin:
> 
> > -Original Message-
> > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > Sent: Wednesday, February 24, 2016 10:35 AM
> > To: Ananyev, Konstantin
> > Cc: Richardson, Bruce; dev at dpdk.org; Kantecki, Tomasz
> > Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL 
> > extension
> > 
> > 2016-02-24 10:22, Ananyev, Konstantin:
> > >
> > > > -Original Message-
> > > > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce Richardson
> > > > Sent: Wednesday, February 24, 2016 10:10 AM
> > > > To: Thomas Monjalon
> > > > Cc: dev at dpdk.org; Kantecki, Tomasz
> > > > Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL 
> > > > extension
> > > >
> > > > On Wed, Feb 24, 2016 at 09:24:33AM +0100, Thomas Monjalon wrote:
> > > > > 2016-02-23 23:03, Kantecki, Tomasz:
> > > > > > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > > > > If there is nothing specific in DPDK for PQos, why writing an 
> > > > > > > example in
> > > > > > > DPDK?
> > > > > > The example makes it much easier to use the technology with DPDK.
> > > > > >
> > > > > > > Maybe the example should be better in the library itself.
> > > > > > The library in question (https://github.com/01org/intel-cmt-cat) 
> > > > > > has a couple of examples but none of them refers to DPDK.
> > > > > >
> > > > > > > I suggest to mention the library in
> > > > > > > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> > > > > > Ok it can be added to this document. Does it imply -1 for the 
> > > > > > sample code idea?
> > > > >
> > > > > I may be wrong but I have the feeling the example is more about PQoS 
> > > > > than DPDK.
> > > > > So yes, I would vote -1.
> > > > >
> > > > Well, the intersection of DPDK and PQoS is what the example is really 
> > > > all about,
> > > > and as such it is relevant to both DPDK and the library itself. 
> > > > Platform QoS
> > > > can be of great use to packet processing applications for helping to 
> > > > ensure that
> > > > the app gets the resources it needed - especially in a virtualised 
> > > > world - and
> > > > so we believe that having an example in DPDK showing how to use PQoS 
> > > > with DPDK
> > > > is well worthwhile having. It's more effective than a simple doc update 
> > > > in
> > > > raising awareness of the existence of the feature, and also provides 
> > > > for DPDK
> > > > users a readily available app for the user to start playing with to 
> > > > evaluate
> > > > PQoS for their own use-cases.
> > >
> > > +1
> > > I also think it is a good thing to have.
> > > Again user don't have to trust the whitepapers - instead he can run the 
> > > app
> > > and measure performance gain on his particular platform.
> > 
> > I totally agree the example is good to have.
> > Konstantin, are you thinking it must be hosted in the PQoS lib repository?
> 
> Personally I prefer it to be part of dpdk samples.
> DPDK IO code path is a bit different from what the 'classical' user app 
> usually does -
> a lot of polling, avoid system calls, etc.
> Also it would probably have much better visibility here.
> Again, as Bruce already mentioned,  we have QAT & TAP samples, why we can't 
> have PQoS too.

Indeed the DPDK policies are really flexible.
How would you suggest to decide which examples can enter in DPDK?
Examples: what about a zip compression in the forwarding plane?
What about a VM2VM failover synchronization?


[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Ananyev, Konstantin

> > > 2016-02-24 10:22, Ananyev, Konstantin:
> > > >
> > > > > -Original Message-
> > > > > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce 
> > > > > Richardson
> > > > > Sent: Wednesday, February 24, 2016 10:10 AM
> > > > > To: Thomas Monjalon
> > > > > Cc: dev at dpdk.org; Kantecki, Tomasz
> > > > > Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS 
> > > > > EAL extension
> > > > >
> > > > > On Wed, Feb 24, 2016 at 09:24:33AM +0100, Thomas Monjalon wrote:
> > > > > > 2016-02-23 23:03, Kantecki, Tomasz:
> > > > > > > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > > > > > If there is nothing specific in DPDK for PQos, why writing an 
> > > > > > > > example in
> > > > > > > > DPDK?
> > > > > > > The example makes it much easier to use the technology with DPDK.
> > > > > > >
> > > > > > > > Maybe the example should be better in the library itself.
> > > > > > > The library in question (https://github.com/01org/intel-cmt-cat) 
> > > > > > > has a couple of examples but none of them refers to
> DPDK.
> > > > > > >
> > > > > > > > I suggest to mention the library in
> > > > > > > > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> > > > > > > Ok it can be added to this document. Does it imply -1 for the 
> > > > > > > sample code idea?
> > > > > >
> > > > > > I may be wrong but I have the feeling the example is more about 
> > > > > > PQoS than DPDK.
> > > > > > So yes, I would vote -1.
> > > > > >
> > > > > Well, the intersection of DPDK and PQoS is what the example is really 
> > > > > all about,
> > > > > and as such it is relevant to both DPDK and the library itself. 
> > > > > Platform QoS
> > > > > can be of great use to packet processing applications for helping to 
> > > > > ensure that
> > > > > the app gets the resources it needed - especially in a virtualised 
> > > > > world - and
> > > > > so we believe that having an example in DPDK showing how to use PQoS 
> > > > > with DPDK
> > > > > is well worthwhile having. It's more effective than a simple doc 
> > > > > update in
> > > > > raising awareness of the existence of the feature, and also provides 
> > > > > for DPDK
> > > > > users a readily available app for the user to start playing with to 
> > > > > evaluate
> > > > > PQoS for their own use-cases.
> > > >
> > > > +1
> > > > I also think it is a good thing to have.
> > > > Again user don't have to trust the whitepapers - instead he can run the 
> > > > app
> > > > and measure performance gain on his particular platform.
> > >
> > > I totally agree the example is good to have.
> > > Konstantin, are you thinking it must be hosted in the PQoS lib repository?
> >
> > Personally I prefer it to be part of dpdk samples.
> > DPDK IO code path is a bit different from what the 'classical' user app 
> > usually does -
> > a lot of polling, avoid system calls, etc.
> > Also it would probably have much better visibility here.
> > Again, as Bruce already mentioned,  we have QAT & TAP samples, why we can't 
> > have PQoS too.
> 
> Indeed the DPDK policies are really flexible.
> How would you suggest to decide which examples can enter in DPDK?

That's a good question, for which I don't have an exact answer.
Probably a good opportunity for the TB to show itself :)
My input would be - to justify new sample for dpdk+third-party-lib it has to 
demonstrate one of:
a) clear performance gain for the existing dpdk application,
i.e under scenario X with library Y dpdk app Z shows N% better performance.
(PQos example).
b) how to integrate dpdk based app with some well-known and widely used 
technology.
(tap example, using fuse to implement vhost example).
c) How to expand packet processing with the functionality that is not part of 
dpdk project. 
So yes, if tomorrow someone will come up with example that does packet 
compression,
or encryption or DPI using some third party library, I think we at least have 
to consider to
include it inside dpdk.org/examples.

 As a restriction I would put that the example has to be relatively small and 
simple 
and demonstrate particular feature usage. 
Plus I think that this third-party library has to be freely available and 
open-sourced. 

Konstantin

> Examples: what about a zip compression in the forwarding plane?
> What about a VM2VM failover synchronization?


[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Ananyev, Konstantin


> -Original Message-
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> Sent: Wednesday, February 24, 2016 11:46 AM
> To: Ananyev, Konstantin
> Cc: Richardson, Bruce; dev at dpdk.org; Kantecki, Tomasz
> Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL 
> extension
> 
> 2016-02-24 11:21, Ananyev, Konstantin:
> >
> > > -Original Message-
> > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > Sent: Wednesday, February 24, 2016 10:35 AM
> > > To: Ananyev, Konstantin
> > > Cc: Richardson, Bruce; dev at dpdk.org; Kantecki, Tomasz
> > > Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL 
> > > extension
> > >
> > > 2016-02-24 10:22, Ananyev, Konstantin:
> > > >
> > > > > -Original Message-
> > > > > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce 
> > > > > Richardson
> > > > > Sent: Wednesday, February 24, 2016 10:10 AM
> > > > > To: Thomas Monjalon
> > > > > Cc: dev at dpdk.org; Kantecki, Tomasz
> > > > > Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS 
> > > > > EAL extension
> > > > >
> > > > > On Wed, Feb 24, 2016 at 09:24:33AM +0100, Thomas Monjalon wrote:
> > > > > > 2016-02-23 23:03, Kantecki, Tomasz:
> > > > > > > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > > > > > If there is nothing specific in DPDK for PQos, why writing an 
> > > > > > > > example in
> > > > > > > > DPDK?
> > > > > > > The example makes it much easier to use the technology with DPDK.
> > > > > > >
> > > > > > > > Maybe the example should be better in the library itself.
> > > > > > > The library in question (https://github.com/01org/intel-cmt-cat) 
> > > > > > > has a couple of examples but none of them refers to
> DPDK.
> > > > > > >
> > > > > > > > I suggest to mention the library in
> > > > > > > > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> > > > > > > Ok it can be added to this document. Does it imply -1 for the 
> > > > > > > sample code idea?
> > > > > >
> > > > > > I may be wrong but I have the feeling the example is more about 
> > > > > > PQoS than DPDK.
> > > > > > So yes, I would vote -1.
> > > > > >
> > > > > Well, the intersection of DPDK and PQoS is what the example is really 
> > > > > all about,
> > > > > and as such it is relevant to both DPDK and the library itself. 
> > > > > Platform QoS
> > > > > can be of great use to packet processing applications for helping to 
> > > > > ensure that
> > > > > the app gets the resources it needed - especially in a virtualised 
> > > > > world - and
> > > > > so we believe that having an example in DPDK showing how to use PQoS 
> > > > > with DPDK
> > > > > is well worthwhile having. It's more effective than a simple doc 
> > > > > update in
> > > > > raising awareness of the existence of the feature, and also provides 
> > > > > for DPDK
> > > > > users a readily available app for the user to start playing with to 
> > > > > evaluate
> > > > > PQoS for their own use-cases.
> > > >
> > > > +1
> > > > I also think it is a good thing to have.
> > > > Again user don't have to trust the whitepapers - instead he can run the 
> > > > app
> > > > and measure performance gain on his particular platform.
> > >
> > > I totally agree the example is good to have.
> > > Konstantin, are you thinking it must be hosted in the PQoS lib repository?
> >
> > Personally I prefer it to be part of dpdk samples.
> > DPDK IO code path is a bit different from what the 'classical' user app 
> > usually does -
> > a lot of polling, avoid system calls, etc.
> > Also it would probably have much better visibility here.
> > Again, as Bruce already mentioned,  we have QAT & TAP samples, why we can't 
> > have PQoS too.
> 
> Indeed the DPDK policies are really flexible.
> How would you suggest to decide which examples can en

[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension

2016-02-24 Thread Thomas Monjalon
2016-02-24 15:14, Ananyev, Konstantin:
> 
> > > > 2016-02-24 10:22, Ananyev, Konstantin:
> > > > >
> > > > > > -Original Message-
> > > > > > From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce 
> > > > > > Richardson
> > > > > > Sent: Wednesday, February 24, 2016 10:10 AM
> > > > > > To: Thomas Monjalon
> > > > > > Cc: dev at dpdk.org; Kantecki, Tomasz
> > > > > > Subject: Re: [dpdk-dev] [PATCH] eal: Initial implementation of PQoS 
> > > > > > EAL extension
> > > > > >
> > > > > > On Wed, Feb 24, 2016 at 09:24:33AM +0100, Thomas Monjalon wrote:
> > > > > > > 2016-02-23 23:03, Kantecki, Tomasz:
> > > > > > > > > From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> > > > > > > > > If there is nothing specific in DPDK for PQos, why writing an 
> > > > > > > > > example in
> > > > > > > > > DPDK?
> > > > > > > > The example makes it much easier to use the technology with 
> > > > > > > > DPDK.
> > > > > > > >
> > > > > > > > > Maybe the example should be better in the library itself.
> > > > > > > > The library in question 
> > > > > > > > (https://github.com/01org/intel-cmt-cat) has a couple of 
> > > > > > > > examples but none of them refers to
> > DPDK.
> > > > > > > >
> > > > > > > > > I suggest to mention the library in
> > > > > > > > > doc/guides/linux_gsg/nic_perf_intel_platform.rst
> > > > > > > > Ok it can be added to this document. Does it imply -1 for the 
> > > > > > > > sample code idea?
> > > > > > >
> > > > > > > I may be wrong but I have the feeling the example is more about 
> > > > > > > PQoS than DPDK.
> > > > > > > So yes, I would vote -1.
> > > > > > >
> > > > > > Well, the intersection of DPDK and PQoS is what the example is 
> > > > > > really all about,
> > > > > > and as such it is relevant to both DPDK and the library itself. 
> > > > > > Platform QoS
> > > > > > can be of great use to packet processing applications for helping 
> > > > > > to ensure that
> > > > > > the app gets the resources it needed - especially in a virtualised 
> > > > > > world - and
> > > > > > so we believe that having an example in DPDK showing how to use 
> > > > > > PQoS with DPDK
> > > > > > is well worthwhile having. It's more effective than a simple doc 
> > > > > > update in
> > > > > > raising awareness of the existence of the feature, and also 
> > > > > > provides for DPDK
> > > > > > users a readily available app for the user to start playing with to 
> > > > > > evaluate
> > > > > > PQoS for their own use-cases.
> > > > >
> > > > > +1
> > > > > I also think it is a good thing to have.
> > > > > Again user don't have to trust the whitepapers - instead he can run 
> > > > > the app
> > > > > and measure performance gain on his particular platform.
> > > >
> > > > I totally agree the example is good to have.
> > > > Konstantin, are you thinking it must be hosted in the PQoS lib 
> > > > repository?
> > >
> > > Personally I prefer it to be part of dpdk samples.
> > > DPDK IO code path is a bit different from what the 'classical' user app 
> > > usually does -
> > > a lot of polling, avoid system calls, etc.
> > > Also it would probably have much better visibility here.
> > > Again, as Bruce already mentioned,  we have QAT & TAP samples, why we 
> > > can't have PQoS too.
> > 
> > Indeed the DPDK policies are really flexible.
> > How would you suggest to decide which examples can enter in DPDK?
> 
> That's a good question, for which I don't have an exact answer.
> Probably a good opportunity for the TB to show itself :)
> My input would be - to justify new sample for dpdk+third-party-lib it has to 
> demonstrate one of:
> a) clear performance gain for the existing dpdk application,
> i.e under scenario X with library Y dpdk app Z shows N% better performance.
> (PQos example).
> b) how to integrate dpdk based app with some well-known and widely used 
> technology.
> (tap example, using fuse to implement vhost example).
> c) How to expand packet processing with the functionality that is not part of 
> dpdk project. 
> So yes, if tomorrow someone will come up with example that does packet 
> compression,
> or encryption or DPI using some third party library, I think we at least have 
> to consider to
> include it inside dpdk.org/examples.
> 
>  As a restriction I would put that the example has to be relatively small and 
> simple 
> and demonstrate particular feature usage. 
> Plus I think that this third-party library has to be freely available and 
> open-sourced. 

It looks reasonnable.
I'd like we have such description in the doc (doc/guides/sample_app_ug/).
If everybody agree on such doc patch, we would have an official policy.