[dpdk-dev] [PATCH] eal: Initial implementation of PQoS EAL extension
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-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
> 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 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
> 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 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
> 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-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
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
> -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 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 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
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
> -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 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 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
> -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 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.