Hi, this patch set introduces accounting aio_nr and aio_max_nr per blkio cgroup. It may be used to limit number of aio requests, which are available for a cgroup, and could be useful for containers. The accounting is hierarchical, and aio contexts, allocated in child cgroup, are accounted in parent cgroups too. Also, new cgroup file "io.aio_nr" is introduced. It's used to set cgroup aio requests limit, to show current limit and number of currenly occupied requests. Patches 1-3 are refactoring. Patch 4 is the place where the accounting actually introduced. Patch 5 adds "io.aio_nr" file. --- Kirill Tkhai (5): aio: Move aio_nr increment to separate function aio: Export aio_nr_lock and aio_max_nr initial value to include/linux/aio.h blkcg: Add blkcg::blkg_aio_nr and blkcg::blkg_aio_max_nr blkcg: Charge aio requests in blkio cgroup hierarchy blkcg: Add cgroup file to configure blkcg::blkg_aio_max_nr block/blk-cgroup.c | 88 +++++++++++++++++++++++++- fs/aio.c | 151 ++++++++++++++++++++++++++++++++++++++++---- include/linux/aio.h | 21 ++++++ include/linux/blk-cgroup.h | 4 + 4 files changed, 247 insertions(+), 17 deletions(-) -- Signed-off-by: Kirill Tkhai <ktkhai@xxxxxxxxxxxxx>