From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vincent JARDIN Subject: Re: DPDK User Space: Session onUseability and Ease of Use Date: Wed, 14 Oct 2015 16:36:27 +0200 Message-ID: <561E686B.4050902@6wind.com> References: <5616B611.3070900@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit To: "Mcnamara, John" , Thomas F Herbert , "dev@dpdk.org" Return-path: Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by dpdk.org (Postfix) with ESMTP id 497708DA1 for ; Wed, 14 Oct 2015 16:36:50 +0200 (CEST) Received: by wijq8 with SMTP id q8so84780951wij.0 for ; Wed, 14 Oct 2015 07:36:50 -0700 (PDT) In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "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