Vivek Goyal wrote:
...
> }
> +#ifdef CONFIG-GROUP-IOSCHED
> +static ssize-t queue-group-requests-show(struct request-queue *q, char *page)
> +{
> + return queue-var-show(q->nr-group-requests, (page));
> +}
> +
> +static ssize-t
> +queue-group-requests-store(struct request-queue *q, const char *page,
> + size-t count)
> +{
> + unsigned long nr;
> + int ret = queue-var-store(&nr, page, count);
> + if (nr < BLKDEV-MIN-RQ)
> + nr = BLKDEV-MIN-RQ;
> +
> + spin-lock-irq(q->queue-lock);
> + q->nr-group-requests = nr;
> + spin-unlock-irq(q->queue-lock);
> + return ret;
> +}
> +#endif
Hi Vivek,
Do we need to update the congestion thresholds for allocated io groups?
Signed-off-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
-diff
+extern void elv-io-group-congestion-threshold(struct request-queue *q,
+ struct io-group *iog);
+
static ssize-t
queue-group-requests-store(struct request-queue *q, const char *page,
size-t count)
{
+ struct hlist-node *n;
+ struct io-group *iog;
+ struct elv-fq-data *efqd;
unsigned long nr;
int ret = queue-var-store(&nr, page, count);
+
if (nr < BLKDEV-MIN-RQ)
nr = BLKDEV-MIN-RQ;
spin-lock-irq(q->queue-lock);
+
q->nr-group-requests = nr;
+
+ efqd = &q->elevator->efqd;
+
+ hlist-for-each-entry(iog, n, &efqd->group-list, elv-data-node) {
+ elv-io-group-congestion-threshold(q, iog);
+ }
+
spin-unlock-irq(q->queue-lock);
return ret;
}