Re: [Lsf] [RFC] writeback and cgroup

From: Fengguang Wu
Date: Mon Apr 16 2012 - 10:25:25 EST


On Mon, Apr 16, 2012 at 09:07:07PM +0800, Fengguang Wu wrote:
> On Mon, Apr 16, 2012 at 08:54:32AM -0400, Vivek Goyal wrote:
> > On Sat, Apr 14, 2012 at 02:25:14PM +0200, Peter Zijlstra wrote:
> > > On Wed, 2012-04-11 at 11:40 -0400, Vivek Goyal wrote:
> > > >
> > > > Ok, that's good to know. How would we configure this special bdi? I am
> > > > assuming there is no backing device visible in /sys/block/<device>/queue/?
> > > > Same is true for network file systems.
> > >
> > > root@twins:/usr/src/linux-2.6# awk '/nfs/ {print $3}' /proc/self/mountinfo | while read bdi ; do ls -la /sys/class/bdi/${bdi}/ ; done
> > > ls: cannot access /sys/class/bdi/0:20/: No such file or directory
> > > total 0
> > > drwxr-xr-x 3 root root 0 2012-03-27 23:18 .
> > > drwxr-xr-x 35 root root 0 2012-03-27 23:02 ..
> > > -rw-r--r-- 1 root root 4096 2012-04-14 14:22 max_ratio
> > > -rw-r--r-- 1 root root 4096 2012-04-14 14:22 min_ratio
> > > drwxr-xr-x 2 root root 0 2012-04-14 14:22 power
> > > -rw-r--r-- 1 root root 4096 2012-04-14 14:22 read_ahead_kb
> > > lrwxrwxrwx 1 root root 0 2012-03-27 23:18 subsystem -> ../../../../class/bdi
> > > -rw-r--r-- 1 root root 4096 2012-03-27 23:18 uevent
> >
> > Ok, got it. So /proc/self/mountinfo has the information about st_dev and
> > one can use that to reach to associated bdi. Thanks Peter.
>
> Vivek, I noticed these lines in cfq code
>
> sscanf(dev_name(bdi->dev), "%u:%u", &major, &minor);
>
> Why not use bdi->dev->devt? The problem is that dev_name() will
> return "btrfs-X" for btrfs rather than "major:minor".

Sorry it's not that simple. btrfs reports its faked btrfs_fs_info.bdi
to upper layer which is different from the bdi's for
btrfs_fs_info.fs_devices.devices saw by cfq.

It's the faked btrfs bdi that is named "btrfs-X" by this function:

setup_bdi():
bdi_setup_and_register(bdi, "btrfs", BDI_CAP_MAP_COPY);

It does impose difficulties to interpret btrfs mountinfo, where you
cannot directly get the block device major/minor numbers:

35 16 0:26 / /fs/sda3 rw,relatime - btrfs /dev/sda3 rw,noacl

Thanks,
Fengguang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/