lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 13 Nov 2009 11:46:49 +0100
From:	Corrado Zoccolo <czoccolo@...il.com>
To:	Vivek Goyal <vgoyal@...hat.com>
Cc:	linux-kernel@...r.kernel.org, jens.axboe@...cle.com,
	nauman@...gle.com, dpshah@...gle.com, lizf@...fujitsu.com,
	ryov@...inux.co.jp, fernando@....ntt.co.jp, s-uchida@...jp.nec.com,
	taka@...inux.co.jp, guijianfeng@...fujitsu.com, jmoyer@...hat.com,
	balbir@...ux.vnet.ibm.com, righi.andrea@...il.com,
	m-ikeda@...jp.nec.com, akpm@...ux-foundation.org, riel@...hat.com,
	kamezawa.hiroyu@...fujitsu.com
Subject: Re: [PATCH 05/16] blkio: Implement per cfq group latency target and 
	busy queue avg

On Fri, Nov 13, 2009 at 12:32 AM, Vivek Goyal <vgoyal@...hat.com> wrote:
>  static inline void
> @@ -441,10 +445,13 @@ cfq_set_prio_slice(struct cfq_data *cfqd, struct cfq_queue *cfqq)
>        if (cfqd->cfq_latency) {
>                /* interested queues (we consider only the ones with the same
>                 * priority class) */
This comment needs to be updated
> -               unsigned iq = cfq_get_avg_queues(cfqd, cfq_class_rt(cfqq));
> +               unsigned iq = cfq_group_get_avg_queues(cfqd, cfqq->cfqg,
> +                                               cfq_class_rt(cfqq));
>                unsigned sync_slice = cfqd->cfq_slice[1];
>                unsigned expect_latency = sync_slice * iq;
> -               if (expect_latency > cfq_target_latency) {
> +               unsigned group_target_lat = cfq_target_latency/cfqd->nr_groups;

I'm not sure that we should divide the target latency evenly among groups.
Groups with different weights will have different percentage of time
in each 300ms round, so probably we should consider it here.

> +
> +               if (expect_latency > group_target_lat) {
>                        unsigned base_low_slice = 2 * cfqd->cfq_slice_idle;
>                        /* scale low_slice according to IO priority
>                         * and sync vs async */
> @@ -452,7 +459,7 @@ cfq_set_prio_slice(struct cfq_data *cfqd, struct cfq_queue *cfqq)
>                                min(slice, base_low_slice * slice / sync_slice);
>                        /* the adapted slice value is scaled to fit all iqs
>                         * into the target latency */
> -                       slice = max(slice * cfq_target_latency / expect_latency,
> +                       slice = max(slice * group_target_lat / expect_latency,
>                                    low_slice);
>                }
>        }

Thanks,
Corrado

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ