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-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
