forked from Minki/linux
block-5.18-2022-04-29
-----BEGIN PGP SIGNATURE----- iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmJsLZEQHGF4Ym9lQGtl cm5lbC5kawAKCRD301j7KXHgpgNMEADOGjr9Gp8/0TZDbOk2N+9Zj1MRCL2Ks6SZ DoId4Mt7GhidxfM4Fo0XvRWfACF73XQPvvh8A7qMzmvnjeYjPbNvzi/0dF9njZF0 NTLzr80q/WUZiI2F/lAjKrvXX6UheXHuPIIpVzwOQizD851erwTLkVfah06kosl5 JkK4pJuNCeI2o5StKTe0Q0p6OLIOhra86fc0eDwni7wM662d26gA0GQZdgqaSOUf 4Mh810+vDGjVGAf2opHWqcgl7uluGZs15rV9QY0v46nAUDjTdH6SksNWP9UjS9CF wcqiw+O4Tet4IEDCg31/OQE/QLRELscqw22izhry9xjoXpZdb1z557/rlUOKGH0o O9NhMHXF2ixgPa9SgOCQetMW+gRdyipbQrf7dpqZL8hJk7sD2EvWyYfE4i30n/1c IFWtmUx4X2sg3f+GYfbPxz4Wgz2ayctSd5kX2ctYb/JpuLR3CZxADfSiiF47LqMj d1jdzPcGGqors4s+/Wg/3bFpQXsxKzAjQEL87ACZ+PK9H/YB022hZphLsAqT5vXM /J/ObYYC2psd4XXhToxT2uGY1ZM8JjG0BUL63+SJRhuXfUrIW5G/cDwyTwrOpI4g Z6I/5JdeyXxiSaILN2zwTEAKvM+ooqstSwp2kWWxZun9xPn4aDl5PoNgY9nQzlfe Nv/jpdnGEw== =AMNh -----END PGP SIGNATURE----- Merge tag 'block-5.18-2022-04-29' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: - Revert of a patch that caused timestamp issues (Tejun) - iocost warning fix (Tejun) - bfq warning fix (Jan) * tag 'block-5.18-2022-04-29' of git://git.kernel.dk/linux-block: bfq: Fix warning in bfqq_request_over_limit() Revert "block: inherit request start time from bio for BLK_CGROUP" iocost: don't reset the inuse weight of under-weighted debtors
This commit is contained in:
commit
bd3d3adea9
@ -569,7 +569,7 @@ static bool bfqq_request_over_limit(struct bfq_queue *bfqq, int limit)
|
||||
struct bfq_entity *entity = &bfqq->entity;
|
||||
struct bfq_entity *inline_entities[BFQ_LIMIT_INLINE_DEPTH];
|
||||
struct bfq_entity **entities = inline_entities;
|
||||
int depth, level;
|
||||
int depth, level, alloc_depth = BFQ_LIMIT_INLINE_DEPTH;
|
||||
int class_idx = bfqq->ioprio_class - 1;
|
||||
struct bfq_sched_data *sched_data;
|
||||
unsigned long wsum;
|
||||
@ -578,15 +578,21 @@ static bool bfqq_request_over_limit(struct bfq_queue *bfqq, int limit)
|
||||
if (!entity->on_st_or_in_serv)
|
||||
return false;
|
||||
|
||||
retry:
|
||||
spin_lock_irq(&bfqd->lock);
|
||||
/* +1 for bfqq entity, root cgroup not included */
|
||||
depth = bfqg_to_blkg(bfqq_group(bfqq))->blkcg->css.cgroup->level + 1;
|
||||
if (depth > BFQ_LIMIT_INLINE_DEPTH) {
|
||||
if (depth > alloc_depth) {
|
||||
spin_unlock_irq(&bfqd->lock);
|
||||
if (entities != inline_entities)
|
||||
kfree(entities);
|
||||
entities = kmalloc_array(depth, sizeof(*entities), GFP_NOIO);
|
||||
if (!entities)
|
||||
return false;
|
||||
alloc_depth = depth;
|
||||
goto retry;
|
||||
}
|
||||
|
||||
spin_lock_irq(&bfqd->lock);
|
||||
sched_data = entity->sched_data;
|
||||
/* Gather our ancestors as we need to traverse them in reverse order */
|
||||
level = 0;
|
||||
|
@ -2322,7 +2322,17 @@ static void ioc_timer_fn(struct timer_list *timer)
|
||||
iocg->hweight_donating = hwa;
|
||||
iocg->hweight_after_donation = new_hwi;
|
||||
list_add(&iocg->surplus_list, &surpluses);
|
||||
} else {
|
||||
} else if (!iocg->abs_vdebt) {
|
||||
/*
|
||||
* @iocg doesn't have enough to donate. Reset
|
||||
* its inuse to active.
|
||||
*
|
||||
* Don't reset debtors as their inuse's are
|
||||
* owned by debt handling. This shouldn't affect
|
||||
* donation calculuation in any meaningful way
|
||||
* as @iocg doesn't have a meaningful amount of
|
||||
* share anyway.
|
||||
*/
|
||||
TRACE_IOCG_PATH(inuse_shortage, iocg, &now,
|
||||
iocg->inuse, iocg->active,
|
||||
iocg->hweight_inuse, new_hwi);
|
||||
|
@ -1131,14 +1131,7 @@ void blk_mq_start_request(struct request *rq)
|
||||
trace_block_rq_issue(rq);
|
||||
|
||||
if (test_bit(QUEUE_FLAG_STATS, &q->queue_flags)) {
|
||||
u64 start_time;
|
||||
#ifdef CONFIG_BLK_CGROUP
|
||||
if (rq->bio)
|
||||
start_time = bio_issue_time(&rq->bio->bi_issue);
|
||||
else
|
||||
#endif
|
||||
start_time = ktime_get_ns();
|
||||
rq->io_start_time_ns = start_time;
|
||||
rq->io_start_time_ns = ktime_get_ns();
|
||||
rq->stats_sectors = blk_rq_sectors(rq);
|
||||
rq->rq_flags |= RQF_STATS;
|
||||
rq_qos_issue(q, rq);
|
||||
|
Loading…
Reference in New Issue
Block a user