mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
blkcg: introduce common blkg association logic
There are 3 ways blkg association can happen: association with the current css, with the page css (swap), or from the wbc css (writeback). This patch handles how association is done for the first case where we are associating bsaed on the current css. If there is already a blkg associated, the css will be reused and association will be redone as the request_queue may have changed. Signed-off-by: Dennis Zhou <[email protected]> Reviewed-by: Josef Bacik <[email protected]> Acked-by: Tejun Heo <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
parent
beea9da07d
commit
2268c0feb0
4 changed files with 62 additions and 21 deletions
|
|
@ -472,21 +472,15 @@ static void check_scale_change(struct iolatency_grp *iolat)
|
|||
static void blkcg_iolatency_throttle(struct rq_qos *rqos, struct bio *bio)
|
||||
{
|
||||
struct blk_iolatency *blkiolat = BLKIOLATENCY(rqos);
|
||||
struct blkcg *blkcg;
|
||||
struct blkcg_gq *blkg;
|
||||
struct request_queue *q = rqos->q;
|
||||
bool issue_as_root = bio_issue_as_root_blkg(bio);
|
||||
|
||||
if (!blk_iolatency_enabled(blkiolat))
|
||||
return;
|
||||
|
||||
rcu_read_lock();
|
||||
bio_associate_blkcg(bio, NULL);
|
||||
blkcg = bio_blkcg(bio);
|
||||
blkg = blkg_lookup_create(blkcg, q);
|
||||
bio_associate_blkg(bio);
|
||||
blkg = bio->bi_blkg;
|
||||
bio_issue_init(&bio->bi_issue, bio_sectors(bio));
|
||||
bio_associate_blkg(bio, blkg);
|
||||
rcu_read_unlock();
|
||||
|
||||
while (blkg && blkg->parent) {
|
||||
struct iolatency_grp *iolat = blkg_to_lat(blkg);
|
||||
|
|
|
|||
Loading…
Reference in a new issue