All of lore.kernel.org
 help / color / mirror / Atom feed
From: Milosz Tanski <milosz@adfin.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: James Bottomley <James.Bottomley@hansenpartnership.com>,
	Jeremy Allison <jra@samba.org>,
	Volker Lendecke <Volker.Lendecke@sernet.de>,
	Jan Kara <jack@suse.cz>, Christoph Hellwig <hch@infradead.org>,
	linux-mm@kvack.org,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
	lsf-pc@lists.linux-foundation.org
Subject: Re: [Lsf-pc] [LSF/MM TOPIC] async buffered diskio read for userspace apps
Date: Tue, 20 Jan 2015 18:07:51 -0500	[thread overview]
Message-ID: <CANP1eJG36DYG8xezydcuWAw6d-Khz9ULr9WMuJ6kfpPzJEoOXw@mail.gmail.com> (raw)
In-Reply-To: <54BEAD82.3070501@kernel.dk>

Great, I'll pull into my branch. I'm already using FIO with the cifs
engine to test and help me debug preadv2 changes to smbd and it works
without issues for me today. I'm going to work on the async cifs
engine but that will take longer because I need to expose build the
async SMB2 support into libsmbclient. I'm going to leave that work
till after I get further with preadv2 in samba (hopefully this week).

I think the biggest issue with the changes is the configure part of my
changes (as seen here:
http://git.kernel.dk/?p=fio.git;a=blobdiff;f=configure;h=d4502095250cdf5187b24276c327b727d3d87288;hp=33d1327ebbba5b70a001e422bb5ad9b24d7c7b49;hb=7fd35359259b409ed023b924cb2758e9efb9950c;hpb=5fb4b36674b194ae6c6756314dc0c665fcaea06d
).

The way samba packages the client libraries beyond just smbclient-raw
requiring me to pull in other libraries and then mess with rpath to
guess the distro location is far for ideal. I haven't reported it yet
mostly because I was interested it making progress and making it work.
Ideally samba folks would fix the pkgconfig file for smbclient-raw to
set right LDPATH (including all the depending libraries and rpath) so
that stuff is not needed.

Additionally, there's a few things not exported in the header files
(but used) like:
http://git.kernel.dk/?p=fio.git;a=blob;f=engines/cifs.c;h=67c23fac0c70cfc75932c758f44dd377fc3f2608;hb=7fd35359259b409ed023b924cb2758e9efb9950c#l16
. It looks like lpcfg_resolve_context() is the only way to create a
struct resolve_context which is used in the cliraw hreads, but
lpcfg_resolve_context() is not exported via the header files.

Some of this might be not using the library correctly... there really
wasn't any documentation so I just guessed by looking the torture code
in samba and the smbclient and to see what order to punch the
lpcfg_stuff to make smbcli_full_connection() not fail.

On Tue, Jan 20, 2015 at 2:33 PM, Jens Axboe <axboe@kernel.dk> wrote:
> On 01/19/2015 08:31 AM, Jens Axboe wrote:
>>
>> I didn't look at your code yet, but I'm assuming it's a self contained
>> IO engine. So we should be able to make that work, by only linking the
>> engine itself against libsmbclient. But sheesh, what a pain in the butt,
>> why can't we just all be friends.
>
>
> I pulled it in for testing, and came up with this patch [1]. If you don't do
> anything, it'll build cifs into fio as before. If you add --cifs-external to
> the configure arguments, it'll build cifs.so as an externally loadable
> module. You'd then use:
>
> ioengine=/path/to/cifs.so
>
> to use that module. I did not add an install target, I'll leave that to
> distros...
>
> Let me know how that works for you. And let me know how far along you are
> with the cifs engine, I'd like to pull it in.
>
> http://git.kernel.dk/?p=fio.git;a=shortlog;h=refs/heads/cifs
>
> [1]
> http://git.kernel.dk/?p=fio.git;a=commit;h=c2c05e33b753ae686e24b43d1034d0c474203729
>
> --
> Jens Axboe
>



-- 
Milosz Tanski
CTO
16 East 34th Street, 15th floor
New York, NY 10016

p: 646-253-9055
e: milosz@adfin.com

WARNING: multiple messages have this Message-ID (diff)
From: Milosz Tanski <milosz@adfin.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: James Bottomley <James.Bottomley@hansenpartnership.com>,
	Jeremy Allison <jra@samba.org>,
	Volker Lendecke <Volker.Lendecke@sernet.de>,
	Jan Kara <jack@suse.cz>, Christoph Hellwig <hch@infradead.org>,
	linux-mm@kvack.org,
	"linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>,
	lsf-pc@lists.linux-foundation.org
Subject: Re: [Lsf-pc] [LSF/MM TOPIC] async buffered diskio read for userspace apps
Date: Tue, 20 Jan 2015 18:07:51 -0500	[thread overview]
Message-ID: <CANP1eJG36DYG8xezydcuWAw6d-Khz9ULr9WMuJ6kfpPzJEoOXw@mail.gmail.com> (raw)
In-Reply-To: <54BEAD82.3070501@kernel.dk>

Great, I'll pull into my branch. I'm already using FIO with the cifs
engine to test and help me debug preadv2 changes to smbd and it works
without issues for me today. I'm going to work on the async cifs
engine but that will take longer because I need to expose build the
async SMB2 support into libsmbclient. I'm going to leave that work
till after I get further with preadv2 in samba (hopefully this week).

I think the biggest issue with the changes is the configure part of my
changes (as seen here:
http://git.kernel.dk/?p=fio.git;a=blobdiff;f=configure;h=d4502095250cdf5187b24276c327b727d3d87288;hp=33d1327ebbba5b70a001e422bb5ad9b24d7c7b49;hb=7fd35359259b409ed023b924cb2758e9efb9950c;hpb=5fb4b36674b194ae6c6756314dc0c665fcaea06d
).

The way samba packages the client libraries beyond just smbclient-raw
requiring me to pull in other libraries and then mess with rpath to
guess the distro location is far for ideal. I haven't reported it yet
mostly because I was interested it making progress and making it work.
Ideally samba folks would fix the pkgconfig file for smbclient-raw to
set right LDPATH (including all the depending libraries and rpath) so
that stuff is not needed.

Additionally, there's a few things not exported in the header files
(but used) like:
http://git.kernel.dk/?p=fio.git;a=blob;f=engines/cifs.c;h=67c23fac0c70cfc75932c758f44dd377fc3f2608;hb=7fd35359259b409ed023b924cb2758e9efb9950c#l16
. It looks like lpcfg_resolve_context() is the only way to create a
struct resolve_context which is used in the cliraw hreads, but
lpcfg_resolve_context() is not exported via the header files.

Some of this might be not using the library correctly... there really
wasn't any documentation so I just guessed by looking the torture code
in samba and the smbclient and to see what order to punch the
lpcfg_stuff to make smbcli_full_connection() not fail.

On Tue, Jan 20, 2015 at 2:33 PM, Jens Axboe <axboe@kernel.dk> wrote:
> On 01/19/2015 08:31 AM, Jens Axboe wrote:
>>
>> I didn't look at your code yet, but I'm assuming it's a self contained
>> IO engine. So we should be able to make that work, by only linking the
>> engine itself against libsmbclient. But sheesh, what a pain in the butt,
>> why can't we just all be friends.
>
>
> I pulled it in for testing, and came up with this patch [1]. If you don't do
> anything, it'll build cifs into fio as before. If you add --cifs-external to
> the configure arguments, it'll build cifs.so as an externally loadable
> module. You'd then use:
>
> ioengine=/path/to/cifs.so
>
> to use that module. I did not add an install target, I'll leave that to
> distros...
>
> Let me know how that works for you. And let me know how far along you are
> with the cifs engine, I'd like to pull it in.
>
> http://git.kernel.dk/?p=fio.git;a=shortlog;h=refs/heads/cifs
>
> [1]
> http://git.kernel.dk/?p=fio.git;a=commit;h=c2c05e33b753ae686e24b43d1034d0c474203729
>
> --
> Jens Axboe
>



-- 
Milosz Tanski
CTO
16 East 34th Street, 15th floor
New York, NY 10016

p: 646-253-9055
e: milosz@adfin.com

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2015-01-20 23:07 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-15 17:43 [LSF/MM TOPIC] async buffered diskio read for userspace apps Milosz Tanski
2015-01-15 18:30 ` Jeff Moyer
2015-01-15 18:30   ` Jeff Moyer
2015-01-16 15:40   ` Milosz Tanski
2015-01-15 22:31 ` [Lsf-pc] " Jan Kara
2015-01-16 15:44   ` Milosz Tanski
2015-01-16 16:55     ` Jeremy Allison
2015-01-16 16:55       ` Jeremy Allison
2015-01-19  3:49       ` Milosz Tanski
2015-01-19  7:12         ` Jeremy Allison
2015-01-19  7:12           ` Jeremy Allison
2015-01-19  7:34           ` James Bottomley
2015-01-19  7:34             ` James Bottomley
2015-01-19 14:18             ` Milosz Tanski
2015-01-19 15:31               ` Jens Axboe
2015-01-19 15:31                 ` Jens Axboe
2015-01-19 15:49                 ` James Bottomley
2015-01-19 15:49                   ` James Bottomley
2015-01-19 16:48                   ` Jeremy Allison
2015-01-19 16:48                     ` Jeremy Allison
2015-01-19 17:26                     ` James Bottomley
2015-01-19 17:26                       ` James Bottomley
2015-01-19 17:32                       ` Jeremy Allison
2015-01-19 17:36                       ` Richard Sharpe
2015-01-19 20:00                     ` Jens Axboe
2015-01-19 20:00                       ` Jens Axboe
2015-01-19 16:10                 ` Volker Lendecke
2015-01-19 16:10                   ` Volker Lendecke
2015-01-19 16:20                   ` Milosz Tanski
2015-01-19 16:20                     ` Milosz Tanski
2015-01-19 16:50                     ` Jeremy Allison
2015-01-19 16:50                       ` Jeremy Allison
2015-01-23 23:15                     ` Steve French
2015-01-23 23:15                       ` Steve French
2015-01-24  2:17                       ` Jens Axboe
2015-01-24  2:17                         ` Jens Axboe
2015-01-24  5:53                         ` Jeremy Allison
2015-01-24  5:53                           ` Jeremy Allison
2015-01-24 23:00                           ` Jens Axboe
2015-01-24 23:00                             ` Jens Axboe
2015-01-20 19:33                 ` Jens Axboe
2015-01-20 19:33                   ` Jens Axboe
2015-01-20 23:07                   ` Milosz Tanski [this message]
2015-01-20 23:07                     ` Milosz Tanski
2015-01-20 23:22                     ` Milosz Tanski
2015-01-20 23:26                       ` Jens Axboe
2015-01-20 23:26                         ` Jens Axboe
2015-01-20 23:30                         ` Jens Axboe
2015-01-20 23:30                           ` Jens Axboe
2015-01-20 23:53                           ` Milosz Tanski
2015-01-20 23:53                             ` Milosz Tanski
2015-01-21 21:17                             ` Jens Axboe
2015-01-23  0:03                               ` Milosz Tanski
2015-01-23  0:10                               ` Milosz Tanski
2015-01-19 17:04               ` Jeremy Allison
2015-01-19 17:04                 ` Jeremy Allison
2015-01-19 17:18                 ` Richard Sharpe
2015-01-19 17:20                   ` Jeremy Allison
2015-01-19 17:20                     ` Jeremy Allison

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CANP1eJG36DYG8xezydcuWAw6d-Khz9ULr9WMuJ6kfpPzJEoOXw@mail.gmail.com \
    --to=milosz@adfin.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=Volker.Lendecke@sernet.de \
    --cc=axboe@kernel.dk \
    --cc=hch@infradead.org \
    --cc=jack@suse.cz \
    --cc=jra@samba.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lsf-pc@lists.linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.