Thread (3 messages) 3 messages, 3 authors, 2008-01-31

Re: [patch 2/6] mm: bdi: export BDI attributes in sysfs

From: Peter Zijlstra <hidden>
Date: 2008-01-31 10:08:46
Also in: linux-fsdevel, lkml

On Thu, 2008-01-31 at 01:54 -0800, Andrew Morton wrote:
On Thu, 31 Jan 2008 10:39:02 +0100 Miklos Szeredi [off-list ref] wrote:
quoted
quoted
On Tue, 29 Jan 2008 16:49:02 +0100
Miklos Szeredi [off-list ref] wrote:
quoted
From: Peter Zijlstra <redacted>

Provide a place in sysfs (/sys/class/bdi) for the backing_dev_info
object.  This allows us to see and set the various BDI specific
variables.

In particular this properly exposes the read-ahead window for all
relevant users and /sys/block/<block>/queue/read_ahead_kb should be
deprecated.
This description is not complete.  It implies that the readahead window is
not "properly" exposed for some "relevant" users.  The reader is left
wondering what on earth this is referring to.  I certainly don't know.
Perhaps when this information is revealed, we can work out what was
wrong with per-queue readahead tuning.
I think Peter meant, that the readahead window was only exposed for
block devices, and not things like NFS or FUSE.
OK.
And queue-less block devices like loop-back md/dm and whatnot.
quoted
quoted
quoted
+blk-NAME
+
+	Block devices, NAME is 'sda', 'loop0', etc...
But if I've done `mknod /dev/pizza-party 8 0', I'm looking for
blk-pizza-party, not blk-sda.

But I might still have /dev/sda, too.
An alternative would be to uniformly use MAJOR:MINOR in there.  It
would work for block devices and anonymous devices (NFS/FUSE) as well.

Would that be any better?
I suppose so.  sysfs likes to use symlinks to point over at related
things in different directories...
Yeah, I think that would work best. Its more consistent as well.
quoted
quoted
quoted
+FSTYPE-MAJOR:MINOR
+
+	Non-block device backed filesystems which provide their own
+	BDI, such as NFS and FUSE.  MAJOR:MINOR is the value of st_dev
+	for files on this filesystem.
+
+default
+
+	The default backing dev, used for non-block device backed
+	filesystems which do not provide their own BDI.
+
+Files under /sys/class/bdi/<bdi>/
+---------------------------------
+
+read_ahead_kb (read-write)
+
+	Size of the read-ahead window in kilobytes
+
+reclaimable_kb (read-only)
+
+	Reclaimable (dirty or unstable) memory destined for writeback
+	to this device
+
+writeback_kb (read-only)
+
+	Memory currently under writeback to this device
+
+dirty_kb (read-only)
+
+	Global threshold for reclaimable + writeback memory
+
+bdi_dirty_kb (read-only)
+
+	Current threshold on this BDI for reclaimable + writeback
+	memory
+
I dunno.  A number of the things which you're exposing are closely tied to
present-day kernel implementation and may be irrelevant or even
unimplementable in a few years' time.
Which ones?
I don't know - I misplaced my copy of linux-2.6.44 :)

The whole concept of a BDI might go away, who knows?  Progress in
non-volatile semiconductor storage might make the whole
rotating-platter-with-a-seek-head thing obsolete.

read_ahead_kb is likely to be stable.  writeback_kb is a stable concept
too, although we might lose the ability to keep track of it some time in
the future.

Suppose that /dev/sda and /dev/sdb share the same queue - we lose the ability
to track some of these things?
quoted
 They could possibly be moved to debugfs, or something.

I agree, that sysfs should be relatively stable.
This does look more like a debugging feature than a permanently-offered,
support-it-forever part of the kernel ABI.
Agreed, all except the read_ahead tunable are debugish. The min/max
things are real tunables though. (writing up a little text on the
why/how of those as we speak - well, write)

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help