From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============8682831913906524090==" MIME-Version: 1.0 From: Harris, James R Subject: Re: [SPDK] Understanding io_channel Date: Tue, 10 Oct 2017 21:04:37 +0000 Message-ID: <7B4871DA-2818-4CC8-9784-D3EB693D798C@intel.com> In-Reply-To: CALOt4iftS3Ag6zXJ5A=Z9PC6sBjmp54+zz6bMe_Qca=o-_NKcQ@mail.gmail.com List-ID: To: spdk@lists.01.org --===============8682831913906524090== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable > On Oct 10, 2017, at 1:53 PM, Fenggang Wu wrote: > = > Hi Jim, > = > Thank you very much for the great answer! It makes perfect sense to me. = This saves so much time. > = > = > On Mon, Oct 9, 2017 at 7:04 PM Harris, James R wrote: > Hi Fenggang, > = > > On Oct 9, 2017, at 12:04 PM, Fenggang Wu wrote: > > > > Hi, > > > > I am new to SPDK and trying to develop an aggregated virtual block devi= ce module (vbdev_agg.c) that stripes across multiple base devices. I am hav= ing difficulty understanding > = > Welcome to SPDK! An aggregated virtual block device module is interestin= g - will this do striping and/or concatenation? > = > Current I am only considering striping. But I would expect an easy extens= ion from striping to concatenation. I think striping is the more interesting and common use case. > > = > Now I have learned from the nvme module and register my agg_disk struct a= s the void* io_device, or better named, the "unique pointer". Currenly, a s= pace with a size of a array of io_channel pointers is allocated after the i= o_channel struct. The io_channels pointers of the base devices are kept in = the array. They are got (get_io_channel(base_dev)) in the create_cb and put= (put_io_channel(base_dev)) in the destroy_cb. Yes - that sounds right. > = > = > > > > Any suggestions/hints will be appreciated. Thank you very much! > = > If you would like to post your module to GerritHub, I=E2=80=99m sure you= =E2=80=99d get some good review feedback from myself and others. Please no= te that this is a very active area of development right now. Your question= s are really appreciated and will help us clarify where we need to improve = on example code and documentation. > = > = > Personally I would like to share it or even make some contribution to the= community if possible. Yet I would have to double check with the industry = partner supporting my project to see their opinions. That would be fantastic. A striping module would be generally useful to SP= DK. Plus if the module is contributed to SPDK, the SPDK project will make = sure it gets tested automatically as part of the per-patch test suite to en= sure against regressions. This might be important to your industry partner. Thanks, -Jim --===============8682831913906524090==--