Thread (32 messages) 32 messages, 14 authors, 2012-04-24

Re: [PATCH, RFC 0/3] Introduce new O_HOT and O_COLD flags

From: Boaz Harrosh <hidden>
Date: 2012-04-20 09:12:32
Also in: linux-fsdevel

On 04/19/2012 10:20 PM, Theodore Ts'o wrote:
As I had brought up during one of the lightning talks at the Linux
Storage and Filesystem workshop, I am interested in introducing two new
open flags, O_HOT and O_COLD.  These flags are passed down to the
individual file system's inode operations' create function, and the file
system can use these flags as a hint regarding whether the file is
likely to be accessed frequently or not.

In the future I plan to do further work on how ext4 would use these
flags, but I want to first get the ability to pass these flags plumbed
into the VFS layer and the code points for O_HOT and O_COLD reserved.


Theodore Ts'o (3):
  fs: add new open flags O_HOT and O_COLD
  fs: propagate the open_flags structure down to the low-level fs's
    create()
  ext4: use the O_HOT and O_COLD open flags to influence inode
    allocation

I would expect that the first, and most important patch to this
set would be the man page which would define the new API. 
What do you mean by cold/normal/hot? what is expected if supported?
how can we know if supported? ....

I presume you mean 3 levels (not even 2 bits) of what T10 called
"read-frequency" or is that "write-frequency", or some other metrics
you defined?

Well in the patchset you supplied it means closer to outer-edge.
What ever that means? so in the case of ext4 on SSD or DM/MD or
loop or thin provisioned LUN. How do I stop it. The code is already
there in Kernel and the application is setting that flag at create,
how do I make the FS not do that stupid, for me, thing?

I wish you'd be transparent, call it O_OUTER_DISK and be honest
about it. The "undefined API" never ever worked in the past,
why would it work now?

And Yes an fctrl is a much better match, and with delayed allocation
that should not matter, right?

And one last thing. We would like to see numbers. Please show us where/how
it matters. Are there down sides?. If it's so good we'd like to implement
it too.

Thanks
Boaz
 fs/9p/vfs_inode.c           |    2 +-
 fs/affs/affs.h              |    2 +-
 fs/affs/namei.c             |    3 ++-
 fs/bfs/dir.c                |    2 +-
 fs/btrfs/inode.c            |    3 ++-
 fs/cachefiles/namei.c       |    3 ++-
 fs/ceph/dir.c               |    2 +-
 fs/cifs/dir.c               |    2 +-
 fs/coda/dir.c               |    3 ++-
 fs/ecryptfs/inode.c         |    5 +++--
 fs/exofs/namei.c            |    2 +-
 fs/ext2/namei.c             |    4 +++-
 fs/ext3/namei.c             |    5 +++--
 fs/ext4/ext4.h              |    8 +++++++-
 fs/ext4/ialloc.c            |   33 +++++++++++++++++++++++++++------
 fs/ext4/migrate.c           |    2 +-
 fs/ext4/namei.c             |   17 ++++++++++++-----
 fs/fat/namei_msdos.c        |    2 +-
 fs/fat/namei_vfat.c         |    2 +-
 fs/fcntl.c                  |    5 +++--
 fs/fuse/dir.c               |    2 +-
 fs/gfs2/inode.c             |    3 ++-
 fs/hfs/dir.c                |    2 +-
 fs/hfsplus/dir.c            |    5 +++--
 fs/hostfs/hostfs_kern.c     |    2 +-
 fs/hugetlbfs/inode.c        |    4 +++-
 fs/internal.h               |    6 ------
 fs/jffs2/dir.c              |    5 +++--
 fs/jfs/namei.c              |    2 +-
 fs/logfs/dir.c              |    2 +-
 fs/minix/namei.c            |    2 +-
 fs/namei.c                  |    9 +++++----
 fs/ncpfs/dir.c              |    5 +++--
 fs/nfs/dir.c                |    6 ++++--
 fs/nfsd/vfs.c               |    4 ++--
 fs/nilfs2/namei.c           |    2 +-
 fs/ocfs2/namei.c            |    3 ++-
 fs/omfs/dir.c               |    2 +-
 fs/ramfs/inode.c            |    3 ++-
 fs/reiserfs/namei.c         |    5 +++--
 fs/sysv/namei.c             |    4 +++-
 fs/ubifs/dir.c              |    2 +-
 fs/udf/namei.c              |    2 +-
 fs/ufs/namei.c              |    2 +-
 fs/xfs/xfs_iops.c           |    3 ++-
 include/asm-generic/fcntl.h |    7 +++++++
 include/linux/fs.h          |   14 ++++++++++++--
 ipc/mqueue.c                |    2 +-
 48 files changed, 143 insertions(+), 74 deletions(-)
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help