[RFC] Passing stream to userspace

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

 



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-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