From: Anand Jain <Anand.Jain@oracle.com>
To: Jan Schmidt <list.btrfs@jan-o-sch.net>
Cc: Al Viro <viro@ZenIV.linux.org.uk>,
Christoph Hellwig <hch@infradead.org>,
Chris Mason <chris.mason@oracle.com>,
Matthew Wilcox <matthew@wil.cx>,
linux-btrfs <linux-btrfs@vger.kernel.org>,
linux-fsdevel@vger.kernel.org
Subject: Re: [RFC] Passing stream to userspace
Date: Tue, 16 Aug 2011 10:49:31 +0800 [thread overview]
Message-ID: <4E49DABB.5000404@oracle.com> (raw)
In-Reply-To: <4E454718.6000206@jan-o-sch.net>
Jan,
I personally like the way we interact with the kernel using the
/sys or /proc that's a cool way, mainly because no C code is required.
A generic interface like that (or btrfs-control with more commands
supported) will enhance troubleshooting and debugging, application
interface.
or did I miss anything ?
Cheers, Anand
On 08/12/2011 11:30 PM, Jan Schmidt wrote:
> Hi there,
>
> I was promised you (viro, hch) have a decided opinion on this topic. The
> original mail ("Getting a lot of fs-generated information to user
> space") contains a lot of background and is way too long. Point is: I
> want to get a bunch of data generated by the kernel (btrfs) to userland
> (really).
>
> Matthew Wilcox suggested to use an ioctl changing f_ops.read. Userland
> would be like:
>
>> int fd = open("/mnt/btrfs");
>> ioctl(fd, BTRFS_IOC_STREAM);
>> while (...) {
>> read(fd, buf, 4096);
>> ...
>> }
>> close(fd);
>
> To avoid doing buffering myself, I suggested passing a fd to the kernel
> where it is expected to dump the generated information, like:
>
>> int fd;
>> int pipefd[2];
>> struct io_args io_args;
>>
>> fd = open("/mnt/btrfs");
>> pipe(pipefd);
>> io_agrs.dest = pipefd[0];
>>
>> /* thread 1 */
>> ioctl(fd, BTRFS_IOC_STREAM,&io_args);
>> /* thread 2 */
>> while (...) {
>> read(pipefd[1], buf, 4096);
>> ...
>> }
>
> Any opinions on those or different suggestions? Thanks,
> -Jan
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2011-08-16 2:49 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-08-12 15:30 [RFC] Passing stream to userspace Jan Schmidt
2011-08-16 2:49 ` Anand Jain [this message]
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=4E49DABB.5000404@oracle.com \
--to=anand.jain@oracle.com \
--cc=chris.mason@oracle.com \
--cc=hch@infradead.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=list.btrfs@jan-o-sch.net \
--cc=matthew@wil.cx \
--cc=viro@ZenIV.linux.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).