R&D Team Lead
1 Haotsma st. Yokneam, Israel
From: Walker, Benjamin <benjamin.walker(a)intel.com>
Sent: 19 January 2018 7:28 PM
Cc: Yael Shavit; Amir Sasson; Ilan Steinberg
Subject: Re: [SPDK] SPDK + user space appliance
On Sun, 2018-01-14 at 09:09 +0000, Shahar Salzman wrote:
We have been integrating spdk into our system using a blockdev
currently only a POC version.
Our use case is a user space appliance processing IOs, with an SPDK frontend
to do the NVMeF.
Currently all of the user bdevs are created via configuration file, but we are
working to add functions + rpc's which allow creation/deletion of these
Ok - so you have our NVMe-oF target in front and it routes I/Os to your system
via a custom bdev module that you wrote. This is exactly how we intended for you
to use it, so it looks good to me.
IO is sent to user space via callback, implementation is up to user
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 appliance is
Going back from user space we use a single ring (multiple producers single
consumer) onto which the completions are inserted, and the ring poll function
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?