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 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html