From: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
To: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
Cc: linux-kernel@vger.kernel.org, peterz@infradead.org,
joe@perches.com, mingo@kernel.org, tglx@linutronix.de,
heiko.carstens@de.ibm.com
Subject: Re: [PATCH 08/17] ioprio: Add a macro named NICE_TO_IOPRIO.
Date: Wed, 12 Mar 2014 17:41:58 +0800 [thread overview]
Message-ID: <53202BE6.5030006@cn.fujitsu.com> (raw)
In-Reply-To: <73b55557223c09b0feb0979ac66340d162117555.1394532288.git.yangds.fnst@cn.fujitsu.com>
On 03/11/2014 06:09 PM, Dongsheng Yang wrote:
> As the task nice value is in [-20, 19] and the io priority is in [0, 7],
> and the convert method from niceval to ioprio is implemented with an
> opened code in task_nice_ioprio().
>
> This patch move the implementation to a macro NICE_TO_IOPRIO, making
> it more readable and modular.
>
> Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
> ---
> include/linux/ioprio.h | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/ioprio.h b/include/linux/ioprio.h
> index beb9ce1..c0faa0b 100644
> --- a/include/linux/ioprio.h
> +++ b/include/linux/ioprio.h
> @@ -18,6 +18,11 @@
> #define ioprio_valid(mask) (IOPRIO_PRIO_CLASS((mask)) != IOPRIO_CLASS_NONE)
>
> /*
> + * Convert the nice value [19,-20] to io priority value [0,7].
> + */
> +#define NICE_TO_IOPRIO(nice) (nice_to_rlimit(nice) / 5)
> +
Hi Peter,
As you asked, why I added this macro in ioprio.h? And why it is better?
IMO, there is a policy to convert a nice value to io priority, that
divide the nice
range into 8 parts by 5. I think this is a common requirement for lots
of io subsystem.
So I implement this policy with NICE_TO_IOPRIO.
About function task_nice_iopiro(), it is to get the iopriority of a
task. It should get the
nice value at first and then use the NICE_TO_IOPRIO to convert it to
ioprio in the policy.
When our policy changed, we need only update the center controller,
NICE_TO_IOPRIO.
Keep the others work well.
This is my point about this patch. I wish it explained better. Thanx.
> +/*
> * These are the io priority groups as implemented by CFQ. RT is the realtime
> * class, it always gets premium service. BE is the best-effort scheduling
> * class, the default for any process. IDLE is the idle scheduling class, it
> @@ -52,7 +57,7 @@ enum {
> */
> static inline int task_nice_ioprio(struct task_struct *task)
> {
> - return (task_nice(task) + 20) / 5;
> + return NICE_TO_IOPRIO(task_nice(task));
> }
>
> /*
next prev parent reply other threads:[~2014-03-12 10:32 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-11 10:09 [PATCH 00/17 for-tip V3] A series patches about sched priority Dongsheng Yang
2014-03-11 10:09 ` [PATCH 01/17] sched/prio: Add a inline function named nice_to_rlimit() in prio.h Dongsheng Yang
2014-03-11 10:09 ` [PATCH 02/17] kernel/sys: Fix the indent issue in switch Dongsheng Yang
2014-03-11 10:09 ` [PATCH 03/17] kernel/sys: Replace opened code implementation with nice_to_rlimit() Dongsheng Yang
2014-03-11 10:09 ` [PATCH 04/17] workqueue: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11 12:22 ` Tejun Heo
2014-03-11 12:55 ` Tejun Heo
2014-03-11 12:56 ` Dongsheng Yang
2014-04-18 13:06 ` [tip:sched/core] sched, treewide: Replace hardcoded nice values with MIN_NICE/MAX_NICE tip-bot for Dongsheng Yang
2014-03-11 10:09 ` [PATCH 05/17] locktorture: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
2014-03-11 10:09 ` [PATCH 06/17] tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11 10:09 ` [PATCH 07/17] mm: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
2014-03-11 10:09 ` [PATCH 08/17] ioprio: Add a macro named NICE_TO_IOPRIO Dongsheng Yang
2014-03-12 9:41 ` Dongsheng Yang [this message]
2014-03-19 8:26 ` Peter Zijlstra
2014-03-11 10:09 ` [PATCH 09/17] fs/hearbeat: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11 10:09 ` [PATCH 10/17] driver/block: " Dongsheng Yang
2014-03-11 10:09 ` [PATCH 11/17] driver/char: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
2014-03-11 10:09 ` [PATCH 12/17] drivers/s390: " Dongsheng Yang
2014-03-11 10:09 ` [PATCH 13/17] sched/prio: Add an inline function named rlimit_to_nice in prio.h Dongsheng Yang
2014-03-11 10:09 ` [PATCH 14/17] driver/staging/android: Use rlimit_to_nice to replace opened code implementation Dongsheng Yang
2014-03-11 10:09 ` [PATCH 15/17] driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11 10:09 ` [PATCH 16/17] driver/scsi: " Dongsheng Yang
2014-03-11 10:09 ` [PATCH 17/17] sched: Get rid of opened code implementation of funtion nice_to_rlimit() Dongsheng Yang
2014-04-18 10:01 ` Ingo Molnar
2014-04-18 9:15 ` Dongsheng Yang
2014-04-18 10:19 ` Ingo Molnar
2014-04-18 9:25 ` Dongsheng Yang
2014-03-12 9:45 ` [PATCH 00/17 for-tip V3] A series patches about sched priority Dongsheng Yang
2014-03-19 8:36 ` Peter Zijlstra
2014-03-19 9:21 ` Dongsheng Yang
2014-03-20 2:02 ` Dongsheng Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53202BE6.5030006@cn.fujitsu.com \
--to=yangds.fnst@cn.fujitsu.com \
--cc=heiko.carstens@de.ibm.com \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox