DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
@ 2015-10-08 18:29 Thomas F Herbert
  2015-10-13 16:36 ` Mcnamara, John
  0 siblings, 1 reply; 11+ messages in thread
From: Thomas F Herbert @ 2015-10-08 18:29 UTC (permalink / raw)
  To: dev

All:

Captured white board notes from Jim McNamara's session on Useability and 
Ease of Use at DPDK User Space today are here:

http://people.redhat.com/therbert/Useability_and_Ease_of_Use_DPDK_User_Space/

--Thomas F Herbert
Red Hat.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
  2015-10-08 18:29 [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use Thomas F Herbert
@ 2015-10-13 16:36 ` Mcnamara, John
  2015-10-13 20:06   ` Thomas Monjalon
                     ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Mcnamara, John @ 2015-10-13 16:36 UTC (permalink / raw)
  To: Thomas F Herbert, dev

> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas F Herbert
> Sent: Thursday, October 8, 2015 7:30 PM
> To: dev@dpdk.org
> Subject: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
> 
> All:
> 
> Captured white board notes from Jim McNamara's session on Useability and
> Ease of Use at DPDK User Space today are here:
> 
> http://people.redhat.com/therbert/Useability_and_Ease_of_Use_DPDK_User_Space/


Hi Tom,

Thanks for that. Here is my summary of the "Usability and Ease of
Use" session from memory and notes. Correction and additions welcome.

* Latest version of the DPDK docs

  - (From an earlier session). Add a doc/latest build of the docs
    to dpdk.org.

* PMD lite

  - Do we need a lighter PMD model? Perhaps based on the Mellanox
    model.

  - Vincent suggested be could remove 90% of the code. I'll leave
    Vincent explain this one.

* OvS issues with Usability

  - Discussion of the DPSK usability issues highlighted on the
    OvS mailing list.

  - http://openvswitch.org/pipermail/dev/2015-August/058814.html

* Distributed testing

  - There should be some form of distributed testing so patches
    can be tested on OSes and hardware that a dev doesn't have.

  - Suggestion to have an Open Lab/Pod similar to the OPNFV model
    that participants can use.

* Debuggability

  - User expectation for tools like tcpdump, ip, ipconfig to work
    with DPDK bound NICs.

  - Easier in a pipeline application where debug is added as a
    pipeline stage.

  - Maybe add debug hooks via rx/tx callbacks.

  - Add/extend a solution based on KNI.

  - Use systemd naming algorithm for KNI.

* Create a User Mailing List

  - An observation was made that the dev@dpdk.org list was very
    developer orientated and patch heavy.

  - Suggestion to add a user@dpdk.org mailing list for people
    with issues or subjects that aren't development related.

  - This seams easy to implement. It may not be well supported
    however resulting in users cross posting into dev@dpdk.org.

  - Probably worth trying anyway.

* Make the dpdk.org website patchable

  - There are already plans to host the dpdk.org code in a git
    repo.

* Add a Contributing Guide.

  - We are at the stage where we need one.

  - Suggestion to just use the Kernel guide.

  - Tailor it for DPDK.

  - Also explain the review process, acks, nacks, etc.

* Add a README .txt or .1st to the root dir.

  - This could just include links to the getting started guides
    and other docs. Either to the online docs or how to build the
    local html versions.

* EAL annoyances

  - Move the EAL to the kernel.

  - Have more/better/all default options. EAL figures out its own
    requirements.

  - Have a default for -n.

* Hugepage consumption

  - Do not allow DPDK applications to grab all available hugepages.

  - Issues with running DPDK apps in tandem with other hugepage
    hungry apps such as Java/Eclipse.

* rte_malloc()

  - Don't use rte_malloc() for non critical objects where
    malloc() would do.

  - Suggestion to allow the type of required memory to be
    specified by rte_malloc()-like function.

* The Build system

  - Make install needs to be improved. Doesn't so what the user expects.

  - Use autotools and configure. (There were some objections that
    this may not be an improvement.)

  - Use kconfig.

  - Keep going with what we have now until it gets too unwieldy
    and needs to be changed. Then use kconfig.

  - Add better support for cross compilation. Useful for arm target.

* Should DPDK applications be running as root

  - Clearly not a great option.

  - Currently required due to kernel.

* Mempool debugging

  - We need better tools to debug memory leaks in the mempools.

  - Suggestion to do this via a valgrind plugin.

* Kernel management of drivers

* Too much duplicated code in the PMDs

  - Duplicated code has crept in organically as PMDs have been
    added.

  - Should be moved up to moved up to the ethdev level

* Logging and debugging via a secondary process

  - Not a well known technique but very useful/powerful

* Run DPDK as a daemon.

* Issues with config files

  - Too many options turned off by default: code paths don't get
    compiled/tested.

* More sample apps

  - Some more examples of using secondary processes.



Of these we the following could be addressed in the near term:


* Latest version of the docs. - Needs support from 6Wind.

* Distributed testing. - Needs support from Intel initially.
  Some of this is already being rolled out on the
  test-report@dpdk.org list for Intel hardware:
  http://dpdk.org/ml/archives/test-report/. Other hardware
  vendors could use the same automated test framework to host
  something similar.

* Debuggability. - Need some volunteers or workable suggestions.

* Create a User Mailing List. - Needs support from 6Wind.

* Make the dpdk.org website patchable. - Needs support from
  6Wind.

* Add a Contributing Guide. - I will submit a doc patch.

* Add a README .txt or .1st to the root dir. - I will submit a
  doc patch.

* The Build system. - There are some patches on the list for an
  updated "make install". This could be a start point.

* Mempool debugging. - Any volunteers to add/improve valgrind
  support for DPDK? See also this patch from Brocade:
  https://bugs.kde.org/show_bug.cgi?id=350405

* Too much duplicated code in the PMDs. - Any volunteers to
  refactor common PMD code up into the ethdev layer?

* Logging and debugging via a secondary process. Any volunteers
  to add a sample app that demonstrates the technique?

John.
-- 






^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
  2015-10-13 16:36 ` Mcnamara, John
@ 2015-10-13 20:06   ` Thomas Monjalon
  2015-10-14  6:51     ` Dave Neary
  2015-10-14 13:16     ` Vincent JARDIN
  2015-10-14 10:25   ` Panu Matilainen
                     ` (3 subsequent siblings)
  4 siblings, 2 replies; 11+ messages in thread
From: Thomas Monjalon @ 2015-10-13 20:06 UTC (permalink / raw)
  To: Mcnamara, John; +Cc: dev

Thanks John for the summary.

2015-10-13 16:36, Mcnamara, John:
>   - Move the EAL to the kernel.

Please explain what you mean here.
It's difficult to imagine.

> * Latest version of the docs. - Needs support from 6Wind.

OK
It's as simple as a git hook.
Anybody to write and test one locally?
The script could be hosted in the future website git repo.

> * Distributed testing. - Needs support from Intel initially.
>   Some of this is already being rolled out on the
>   test-report@dpdk.org list for Intel hardware:
>   http://dpdk.org/ml/archives/test-report/. Other hardware
>   vendors could use the same automated test framework to host
>   something similar.

IBM has first started a daily compilation test.
Others are welcome.
We had a small session dedicated to this topic during the useability session.

> * Create a User Mailing List. - Needs support from 6Wind.

OK
Name: user@dpdk.org or other suggestion?

> * Make the dpdk.org website patchable. - Needs support from
>   6Wind.

OK
Needs a maintainer, a name for the git repo, the mailing list and the patchwork.

> * Add a Contributing Guide. - I will submit a doc patch.
> 
> * Add a README .txt or .1st to the root dir. - I will submit a
>   doc patch.

Thanks

> * Too much duplicated code in the PMDs. - Any volunteers to
>   refactor common PMD code up into the ethdev layer?

We need more details.
Please start a new thread or a RFC.

> * Logging and debugging via a secondary process. Any volunteers
>   to add a sample app that demonstrates the technique?

There is already one:
	http://dpdk.org/browse/dpdk/tree/app/proc_info/main.c#n289

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
  2015-10-13 20:06   ` Thomas Monjalon
@ 2015-10-14  6:51     ` Dave Neary
  2015-10-14 13:16     ` Vincent JARDIN
  1 sibling, 0 replies; 11+ messages in thread
From: Dave Neary @ 2015-10-14  6:51 UTC (permalink / raw)
  To: Thomas Monjalon, Mcnamara, John; +Cc: dev

Hi,

On 10/13/2015 10:06 PM, Thomas Monjalon wrote:
>> * Create a User Mailing List. - Needs support from 6Wind.
> 
> OK
> Name: user@dpdk.org or other suggestion?

Other pages seem to have standardised on "users" - I don't think it
matters much, either is fine.

Thanks,
Dave.

-- 
Dave Neary - NFV/SDN Community Strategy
Open Source and Standards, Red Hat - http://community.redhat.com
Ph: +1-978-399-2182 / Cell: +1-978-799-3338

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
  2015-10-13 16:36 ` Mcnamara, John
  2015-10-13 20:06   ` Thomas Monjalon
@ 2015-10-14 10:25   ` Panu Matilainen
  2015-10-14 13:21   ` Vincent JARDIN
                     ` (2 subsequent siblings)
  4 siblings, 0 replies; 11+ messages in thread
From: Panu Matilainen @ 2015-10-14 10:25 UTC (permalink / raw)
  To: Mcnamara, John, Thomas F Herbert, dev

On 10/13/2015 07:36 PM, Mcnamara, John wrote:
>> -----Original Message-----
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas F Herbert
>> Sent: Thursday, October 8, 2015 7:30 PM
>> To: dev@dpdk.org
>> Subject: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
>>
>> All:
>>
>> Captured white board notes from Jim McNamara's session on Useability and
>> Ease of Use at DPDK User Space today are here:
>>
>> http://people.redhat.com/therbert/Useability_and_Ease_of_Use_DPDK_User_Space/
>
>
> Hi Tom,
>
> Thanks for that. Here is my summary of the "Usability and Ease of
> Use" session from memory and notes. Correction and additions welcome.
>
[...]
> * EAL annoyances
>
>    - Move the EAL to the kernel.
>
>    - Have more/better/all default options. EAL figures out its own
>      requirements.
>
>    - Have a default for -n.

Heh, somebody agrees with me. Patch sent:
http://dpdk.org/ml/archives/dev/2015-October/025045.html

	- Panu -

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
  2015-10-13 20:06   ` Thomas Monjalon
  2015-10-14  6:51     ` Dave Neary
@ 2015-10-14 13:16     ` Vincent JARDIN
  1 sibling, 0 replies; 11+ messages in thread
From: Vincent JARDIN @ 2015-10-14 13:16 UTC (permalink / raw)
  To: Thomas Monjalon, Mcnamara, John; +Cc: dev, Martin.Horne

On 13/10/2015 22:06, Thomas Monjalon wrote:
> 2015-10-13 16:36, Mcnamara, John:
>> >   - Move the EAL to the kernel.
> Please explain what you mean here.
> It's difficult to imagine.
>
+Martin@ARM on it. We were rising this topic with him last week.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
  2015-10-13 16:36 ` Mcnamara, John
  2015-10-13 20:06   ` Thomas Monjalon
  2015-10-14 10:25   ` Panu Matilainen
@ 2015-10-14 13:21   ` Vincent JARDIN
  2015-10-14 14:36   ` Vincent JARDIN
  2015-10-19 13:55   ` Simon Kågström
  4 siblings, 0 replies; 11+ messages in thread
From: Vincent JARDIN @ 2015-10-14 13:21 UTC (permalink / raw)
  To: Mcnamara, John, Thomas F Herbert, dev

On 13/10/2015 18:36, Mcnamara, John wrote:
> * Should DPDK applications be running as root
>
>    - Clearly not a great option.
>
>    - Currently required due to kernel.

It is not 100% accurate. With some systems, it shall be possible to run 
DPDK application without running them as root.

It was commented that there is a solution when PMDs are designed 
differently (verbs API => memory registration of users). Moreover, it 
would ease the cleanup of resources when a DPDK application does a segfault.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
  2015-10-13 16:36 ` Mcnamara, John
                     ` (2 preceding siblings ...)
  2015-10-14 13:21   ` Vincent JARDIN
@ 2015-10-14 14:36   ` Vincent JARDIN
  2015-10-14 16:34     ` Bruce Richardson
  2015-10-19 13:55   ` Simon Kågström
  4 siblings, 1 reply; 11+ messages in thread
From: Vincent JARDIN @ 2015-10-14 14:36 UTC (permalink / raw)
  To: Mcnamara, John, Thomas F Herbert, dev

Thomas, John,

thanks for your notes.

Enclosed the contents of our chats,

On 13/10/2015 18:36, Mcnamara, John wrote:
> * PMD lite
>
>    - Do we need a lighter PMD model? Perhaps based on the Mellanox
>      model.
>    - Vincent suggested be could remove 90% of the code. I'll leave
>      Vincent explain this one.

benefits of 100% userland drivers:
   - no dependency on getting kernel patch upstreams first
   - it is possible to run on a latest HW even when the Linux host (or 
host OS) does not support the new NIC/boards supported by the DPDK

drawbacks of 100% userland drivers:
   - redundancy of source code (duplication into the kernel and userland)
       => more maintenance
   - DPDK PMDs are in fact outdated while kernel drivers are supporting 
latest HW (port management - optics - , latest HW revisions, managing 
firmware updates) more frequently
   - do not run when not root applications
   - cannot reuse port management tools from the kernels (ethtool, etc.)

ixgbe pmd
=========
    100% lines of userland
    must be run as root
    ~ 40K lines
    ~ kernel overlaps with 
http://dpdk.org/browse/dpdk/tree/drivers/net/ixgbe/base
    ~ mostly only 
http://dpdk.org/browse/dpdk/tree/drivers/net/ixgbe/ixgbe_rxtx[_vec].c is 
needed, other files are not needed (6k lines of code)

mlx4 pmd
========
    10% lines userland, then using kernel's ones
    could be run as a non root process
    ~ 5.2K lines of code
    ~ the rxtx.c file is http://dpdk.org/browse/dpdk/tree/drivers/net/mlx4/
    BUT using infiniband :( => should be cleand up to use bare minimum like,
     + /* Allocate protection domain. */
       http://dpdk.org/browse/dpdk/tree/drivers/net/mlx4/mlx4.c#n4828

     + Register memory regions -> ibv_reg_mr()
       http://dpdk.org/browse/dpdk/tree/drivers/net/mlx4/mlx4.c#n792

Best regards,
   Vincent

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
  2015-10-14 14:36   ` Vincent JARDIN
@ 2015-10-14 16:34     ` Bruce Richardson
  0 siblings, 0 replies; 11+ messages in thread
From: Bruce Richardson @ 2015-10-14 16:34 UTC (permalink / raw)
  To: Vincent JARDIN; +Cc: dev

On Wed, Oct 14, 2015 at 04:36:27PM +0200, Vincent JARDIN wrote:
> Thomas, John,
> 
> thanks for your notes.
> 
> Enclosed the contents of our chats,
> 
> On 13/10/2015 18:36, Mcnamara, John wrote:
> >* PMD lite
> >
> >   - Do we need a lighter PMD model? Perhaps based on the Mellanox
> >     model.
> >   - Vincent suggested be could remove 90% of the code. I'll leave
> >     Vincent explain this one.
> 
> benefits of 100% userland drivers:
>   - no dependency on getting kernel patch upstreams first
>   - it is possible to run on a latest HW even when the Linux host (or host
> OS) does not support the new NIC/boards supported by the DPDK
> 
> drawbacks of 100% userland drivers:
>   - redundancy of source code (duplication into the kernel and userland)
>       => more maintenance
>   - DPDK PMDs are in fact outdated while kernel drivers are supporting
> latest HW (port management - optics - , latest HW revisions, managing
> firmware updates) more frequently
>   - do not run when not root applications
>   - cannot reuse port management tools from the kernels (ethtool, etc.)
> 
> ixgbe pmd
> =========
>    100% lines of userland
>    must be run as root
>    ~ 40K lines
>    ~ kernel overlaps with
> http://dpdk.org/browse/dpdk/tree/drivers/net/ixgbe/base
>    ~ mostly only
> http://dpdk.org/browse/dpdk/tree/drivers/net/ixgbe/ixgbe_rxtx[_vec].c is
> needed, other files are not needed (6k lines of code)
> 
> mlx4 pmd
> ========
>    10% lines userland, then using kernel's ones
>    could be run as a non root process
>    ~ 5.2K lines of code
>    ~ the rxtx.c file is http://dpdk.org/browse/dpdk/tree/drivers/net/mlx4/
>    BUT using infiniband :( => should be cleand up to use bare minimum like,
>     + /* Allocate protection domain. */
>       http://dpdk.org/browse/dpdk/tree/drivers/net/mlx4/mlx4.c#n4828
> 
>     + Register memory regions -> ibv_reg_mr()
>       http://dpdk.org/browse/dpdk/tree/drivers/net/mlx4/mlx4.c#n792
> 
> Best regards,
>   Vincent

Hi Vincent,

is the approach described for the mlx4 driver not dependent upon the hardware
having support for infiniband verbs, in which case I don't see how it could be
used for other NICs. Has an attempt been made to create a driver for another
NIC family using this approach to prove it is generally applicable?

/Bruce

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
  2015-10-13 16:36 ` Mcnamara, John
                     ` (3 preceding siblings ...)
  2015-10-14 14:36   ` Vincent JARDIN
@ 2015-10-19 13:55   ` Simon Kågström
  4 siblings, 0 replies; 11+ messages in thread
From: Simon Kågström @ 2015-10-19 13:55 UTC (permalink / raw)
  To: Mcnamara, John, Thomas F Herbert, dev

On 2015-10-13 18:36, Mcnamara, John wrote:
> 
> * More sample apps
> 
>   - Some more examples of using secondary processes.

One thing I would appreciate is more basic samples for the more advanced
functionality. For example, the qos_sched example is (in my opimion)
quite hard to follow since it has both an integrated command line and a
config file.

I think it would be better to split the example to multiple smaller
samples, which uses static setups to more clearly illustrate some
particular functionality of the QoS framework.

// Simon

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use
@ 2015-10-08 16:38 Thomas Herbert
  0 siblings, 0 replies; 11+ messages in thread
From: Thomas Herbert @ 2015-10-08 16:38 UTC (permalink / raw)
  To: dev

[-- Attachment #1: Type: text/plain, Size: 186 bytes --]

All:

Captured notes from Jim McNamara's session on Useability and Ease of Use at DPDK User Space:

Jim will or someone will summarize these notes in more legible form.

Page 1


[-- Attachment #2: Type: text/plain, Size: 10 bytes --]



Page 2:

[-- Attachment #3: Type: text/plain, Size: 28 bytes --]



--Thomas F Herbert
Red Hat

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-10-19 13:55 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-08 18:29 [dpdk-dev] DPDK User Space: Session onUseability and Ease of Use Thomas F Herbert
2015-10-13 16:36 ` Mcnamara, John
2015-10-13 20:06   ` Thomas Monjalon
2015-10-14  6:51     ` Dave Neary
2015-10-14 13:16     ` Vincent JARDIN
2015-10-14 10:25   ` Panu Matilainen
2015-10-14 13:21   ` Vincent JARDIN
2015-10-14 14:36   ` Vincent JARDIN
2015-10-14 16:34     ` Bruce Richardson
2015-10-19 13:55   ` Simon Kågström
  -- strict thread matches above, loose matches on Subject: below --
2015-10-08 16:38 Thomas Herbert

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).