From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 53BAD58EC for ; Wed, 8 Feb 2017 04:30:06 +0100 (CET) Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by orsmga105.jf.intel.com with ESMTP; 07 Feb 2017 19:30:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.33,346,1477983600"; d="scan'208";a="62456377" Received: from shwdeisgchi017.ccr.corp.intel.com (HELO [10.239.66.156]) ([10.239.66.156]) by fmsmga005.fm.intel.com with ESMTP; 07 Feb 2017 19:30:04 -0800 To: dev@dpdk.org References: <1484882498-18653-1-git-send-email-jing.d.chen@intel.com> <1484882498-18653-2-git-send-email-jing.d.chen@intel.com> Cc: "keith.wiles@intel.com; Chen Jing D(Mark)" , gerald.rogers@intel.com From: "Liang, Cunming" Message-ID: <65b7c8b3-0638-5f8e-ad8f-3a4c5eaaa096@intel.com> Date: Wed, 8 Feb 2017 11:30:02 +0800 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <1484882498-18653-2-git-send-email-jing.d.chen@intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [RFC 1/2] doc: introduction to prgdev X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Feb 2017 03:30:06 -0000 On 1/20/2017 11:21 AM, Chen Jing D(Mark) wrote: > This is the documentation to describe what prgdev is, how to use > prgdev API and accomplish an image download. > > Signed-off-by: Chen Jing D(Mark) > --- > doc/guides/prog_guide/prgdev_lib.rst | 457 ++++++++++++++++++++++++++++++++++ > 1 files changed, 457 insertions(+), 0 deletions(-) > create mode 100644 doc/guides/prog_guide/prgdev_lib.rst > > diff --git a/doc/guides/prog_guide/prgdev_lib.rst b/doc/guides/prog_guide/prgdev_lib.rst > new file mode 100644 > index 0000000..3917c18 > --- /dev/null > +++ b/doc/guides/prog_guide/prgdev_lib.rst > @@ -0,0 +1,457 @@ > +Overview > +======== > + [...] > +When the set of APIs is introduced, a general question is why we need it in > +DPDK community? Why we can't use offline tool to perform same thing? The answer > +is the prgdev provide a generic, online API to applications, in the meanwile, > +offers a capability to switch driver dynamically when downloaded image changed > +personality and a new driver is required. Comparing offline tool, it have online > +programmability (see below examples); Comparing online tool, it provides a > +generic API for many HWs; Comparing generic online tool/API for many products, > +it provides a capability to switch driver dynamically. > + > +There are various means to reach same goal, we'll try to find the best/better > +way to approach. All above advantages will help prgdev to be a 'better choice'. > + > One more notes. DPDK takes over the devices in user space. The legacy tools usually download the personality by kernel driver. They runs out of DPDK context. When a DPDK process is running on top of the device, operation to the device by the solo tool during the time causes resource conflict. It's one of the motivations to have the native API allowing programming the personality within DPDK context. Otherwise, it has to exit the process if any personality change is required. Manually detaching the device before using the solo tool may ease the conflict. However it still limits the situation if the device allows multiple programmable instances(e.g. AFUs in FPGA) which are working independently and shouldn't be impact by each other. [...]