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