Messages in this thread | | | Date | Thu, 12 Apr 2012 16:37:19 -0400 | From | Vivek Goyal <> | Subject | Re: [RFC] writeback and cgroup |
| |
On Wed, Apr 11, 2012 at 09:22:31PM +0200, Jan Kara wrote:
[..] > > > Well, btrfs plays tricks with bdi's but there is a special bdi called > > > "btrfs" which backs the whole filesystem and that is what's put in > > > sb->s_bdi or in each inode's i_mapping->backing_dev_info. So we have a > > > global bdi to work with. > > > > 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. > Where should be the backing device visible? Now it's me who is lost :)
I mean how are we supposed to put cgroup throttling rules using cgroup interface for network filesystems and for btrfs global bdi. Using "dev_t" associated with bdi? I see that all the bdi's are showing up in /sys/class/bdi, but how do I know which one I am intereste in or which one belongs to filesystem I am interestd in putting throttling rule on.
For block devices, we simply use "major:min limit" format to write to a cgroup file and this configuration will sit in one of the per queue per cgroup data structure.
I am assuming that when you say throttling should happen at bdi, you are thinking of maintaining per cgroup per bdi data structures and user is somehow supposed to pass "bdi_maj:bdi_min limit" through cgroup files? If yes, how does one map a filesystem's bdi we want to put rules on?
Also, at request queue level we have bios and we throttle bios. At bdi level, I think there are no bios yet. So somehow we got to deal with pages. Not sure how exactly will throttling happen.
Thanks Vivek
| |