lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 15 Sep 2014 17:58:44 -0400 From: Jeff Moyer <jmoyer@...hat.com> To: Milosz Tanski <milosz@...in.com> Cc: linux-kernel@...r.kernel.org, Christoph Hellwig <hch@...radead.org>, linux-fsdevel@...r.kernel.org, linux-aio@...ck.org, Mel Gorman <mgorman@...e.de>, Volker Lendecke <Volker.Lendecke@...net.de>, Tejun Heo <tj@...nel.org>, michael.kerrisk@...il.com Subject: Re: [RFC PATCH 0/7] Non-blockling buffered fs read (page cache only) Hi, Milosz, I CC'd Michael Kerrisk, in case he has any opinions on the matter. Milosz Tanski <milosz@...in.com> writes: > This patcheset introduces an ability to perform a non-blocking read from > regular files in buffered IO mode. This works by only for those filesystems > that have data in the page cache. > > It does this by introducing new syscalls new syscalls readv2/writev2 and > preadv2/pwritev2. These new syscalls behave like the network sendmsg, recvmsg > syscalls that accept an extra flag argument (O_NONBLOCK). I thought you were going to introduce a new flag instead of using O_NONBLOCK for this. I dug up an old email that suggested that enabling O_NONBLOCK for regular files (well, a device node in this case) broke a cd ripping or burning application. I also found this old bugzilla, which states that squid would fail to start, and that gqview was also broken: https://bugzilla.redhat.com/show_bug.cgi?id=136057 More generally, do you expect the open(2) of a regular file with O_NONBLOCK to perform the same way as a pipe, fifo, or device (namely, that the open itself won't block)? Should O_NONBLOCK affect writes to regular files? What do you think the return value from poll and friends should be when a file is opened in this manner (probably not important, as poll always returns data ready on regular files)? Also consider whether you want the O_NONBLOCK behaviour for mandatory file locks in your use case (or any other, for that matter). If you issue a read and it returns -EAGAIN, should it be up to the application to kick off I/O to ensure it makes progress? I don't think O_NONBLOCK is the right flag. What you're really specifying is a flag that prevents I/O in the read path, and nowhere else. As such, I'd feel much better about this if we defined a new flag (O_NONBLOCK_READ maybe? No, that's too verbose.). In summary, I like the idea, but I worry about overloading O_NONBLOCK. Cheers, Jeff -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists