History

blk-cgroup: increase number of supported policies

After merging the iolatency policy, we potentially now have 4 policies being registered, but only support 3. This causes one of them to fail loading. Takashi reports that BFQ no longer works for him, because it fails to load due to policy registration failure. Bump to 5 policies, and also add a warning for when we have exceeded the global amount. If we have to touch this again, we should switch to a dynamic scheme instead.

Jens Axboe committed 8 years ago

Commit 01c5f851 parent bf935852 files · +4 −2Browse files

Unified · Split

2 files
  1. block/blk-cgroup.c +3 −1
  2. include/linux/blkdev.h +1 −1
block/blk-cgroup.c+3−1
@@ -1510,8 +1510,10 @@ int blkcg_policy_register(struct blkcg_policy *pol) · 1509 unmodified lines
15101510 for (i = 0; i < BLKCG_MAX_POLS; i++)
15111511 if (!blkcg_policy[i])
15121512 break;
1513− if (i >= BLKCG_MAX_POLS)
1513+ if (i >= BLKCG_MAX_POLS) {
1514+ pr_warn("blkcg_policy_register: BLKCG_MAX_POLS too small\n");
15141515 goto err_unlock;
1516+ }
15151517
15161518 /* Make sure cpd/pd_alloc_fn and cpd/pd_free_fn in pairs */
15171519 if ((!pol->cpd_alloc_fn ^ !pol->cpd_free_fn) ||
include/linux/blkdev.h+1−1
@@ -54,7 +54,7 @@ struct blk_stat_callback; · 53 unmodified lines
5454 * Maximum number of blkcg policies allowed to be registered concurrently.
5555 * Defined here to simplify include dependency.
5656 */
57−#define BLKCG_MAX_POLS 3
57+#define BLKCG_MAX_POLS 5
5858
5959 typedef void (rq_end_io_fn)(struct request *, blk_status_t);
6060