Messages in this thread | | | Date | Wed, 24 Jul 2013 13:22:54 +1000 | From | Dave Chinner <> | Subject | Re: Linux 3.11-rc2 |
| |
On Mon, Jul 22, 2013 at 05:06:01AM +0100, Al Viro wrote: > On Mon, Jul 22, 2013 at 11:25:17AM +1000, Dave Chinner wrote: > > > I'll just point out that it can make the whole thing worse, too. > > For example, for ext3/4, the tmpfile being created has to be added > > to the orphan inode list which is protected by a filesystem global > > mutex. Hence scalability of O_TMPFILE is massively limited on > > ext3/ext4 due to architectural issues within ext3/4. Other > > filesystems will be more efficient, but because they have more > > scalable/complex orphan inode handling it's going to take longer to > > implement O_TMPFILE support for them.... > > Um... You do realize that the same architectural issues there will > create exactly the same serialization when you are unlinking the > sucker? I.e. with the "pick the name, create and open, unlink" sequence > ext[34] will insert that inode into the same orphan list, creating > the same contention...
Yup.
But that is assuming that the unlink of the tmpfile happens immediately after the open() and that's not necessarily the case for all users of tmp files that might get converted to use O_TMPFILE, and so a saying it is more efficient than traditional tmpfiles is not necessarily correct.
Let's set expectations appropriately at the start, rather than have people complain a year down the track that O_TMPFILE causes them performance problems because they don't understand the limitations of the implementations underlying it......
Cheers,
Dave. -- Dave Chinner david@fromorbit.com
| |