public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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));
>   }
>   
>   /*


  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