From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============3696212379269309704==" MIME-Version: 1.0 From: Walker, Benjamin Subject: Re: [SPDK] SPDK + user space appliance Date: Fri, 19 Jan 2018 17:28:38 +0000 Message-ID: <1516382916.25907.15.camel@intel.com> In-Reply-To: AM5PR04MB307489E0EB9C162E7F761E3D89150@AM5PR04MB3074.eurprd04.prod.outlook.com List-ID: To: spdk@lists.01.org --===============3696212379269309704== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Sun, 2018-01-14 at 09:09 +0000, Shahar Salzman wrote: > We have been integrating spdk into our system using a blockdev module, > currently only a POC version. > Our use case is a user space appliance processing IOs, with an SPDK front= end > to do the NVMeF. > = > Currently all of the user bdevs are created via configuration file, but w= e are > working to add functions + rpc's which allow creation/deletion of these > namespaces. Ok - so you have our NVMe-oF target in front and it routes I/Os to your sys= tem via a custom bdev module that you wrote. This is exactly how we intended fo= r you to use it, so it looks good to me. > IO is sent to user space via callback, implementation is up to user space= , but > obviously the longer it lingers there the lower the performance, we use a= set > of rings + threads processing them, so that the time spent in the applian= ce is > minimal. > Going back from user space we use a single ring (multiple producers single > consumer) onto which the completions are inserted, and the ring poll func= tion > is registered with spdk core (spdk_poller_register). What do you mean by I/O is sent to user space via callback? When was the I/O ever in kernel space? Is your storage system running in the kernel? --===============3696212379269309704==--