Re: [RFC] Passing stream to userspace

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux