public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/16 for-tip V2] A series patches about sched priority.
@ 2014-03-11  9:20 Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 01/16] sched/prio: Add a inline function named nice_to_rlimit() in prio.h Dongsheng Yang
                   ` (15 more replies)
  0 siblings, 16 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang

Hi all,
	This patchset is all about priority. 

1. Add two inline functions in prio.h named nice_to_rlimit and rlimit_to_nice.
   They are converting the value between nice value [-20, 19] and 
   rlimit style value [1, 40].
2. Add a macro in ioprio.h named NICE_TO_IOPRIO.
   It convert nice value [-20, 19] to io priority [0, 7].
3. Others are all about replace hardcoding value about nice to MIN_NICE or MAX_NICE.

Changelog:
	-v1:
	  *Implement nice_to_rlimit and rlimit_to_nice with inline functions
	   rather than macro.
	  *Add a patch[16/16] to replace opened code implement with nice_to_rlimit().

Dongsheng Yang (15):
  sched/prio: Add a inline function named nice_to_rlimit() in prio.h.
  workqueue: Replace hardcoding of -20 with MIN_NICE.
  locktorture: Replace hardcoding of 19 with MAX_NICE.
  tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE.
  mm: Replace hardcoding of 19 with MAX_NICE.
  ioprio: Add a macro named NICE_TO_IOPRIO.
  fs/hearbeat: Replace hardcoding of -20 with MIN_NICE.
  driver/block: Replace hardcoding of -20 with MIN_NICE.
  driver/char: Replace hardcoding of 19 with MAX_NICE.
  drivers/s390: Replace hardcoding of 19 with MAX_NICE.
  sched/prio: Add an inline function named rlimit_to_nice in prio.h.
  driver/staging/android: Use rlimit_to_nice to replace opened code
    implementation.
  driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE.
  driver/scsi: Replace hardcoding of -20 with MIN_NICE.
  sched: Get rid of opened code implementation of funtion
    nice_to_rlimit().

Joe Perches (1):
  kernel/sys: Replace opened code implementation with nice_to_rlimit().

 drivers/block/loop.c                           |   2 +-
 drivers/block/nbd.c                            |   2 +-
 drivers/block/pktcdvd.c                        |   2 +-
 drivers/char/ipmi/ipmi_si_intf.c               |   2 +-
 drivers/s390/crypto/ap_bus.c                   |   2 +-
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c              |   4 +-
 drivers/scsi/bnx2i/bnx2i_hwi.c                 |   2 +-
 drivers/scsi/fcoe/fcoe.c                       |   2 +-
 drivers/scsi/ibmvscsi/ibmvfc.c                 |   2 +-
 drivers/scsi/ibmvscsi/ibmvscsi.c               |   2 +-
 drivers/scsi/lpfc/lpfc_hbadisc.c               |   2 +-
 drivers/scsi/qla2xxx/qla_os.c                  |   2 +-
 drivers/staging/android/binder.c               |   4 +-
 drivers/staging/lustre/lustre/llite/lloop.c    |   2 +-
 fs/ocfs2/cluster/heartbeat.c                   |   2 +-
 include/linux/ioprio.h                         |   7 +-
 include/linux/sched/prio.h                     |  16 ++
 kernel/locking/locktorture.c                   |   2 +-
 kernel/sched/core.c                            |   2 +-
 kernel/sys.c                                   | 206 ++++++++++++-------------
 kernel/workqueue.c                             |   6 +-
 mm/huge_memory.c                               |   2 +-
 tools/testing/selftests/mqueue/mq_perf_tests.c |   4 +-
 23 files changed, 150 insertions(+), 129 deletions(-)

-- 
1.8.2.1


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 01/16] sched/prio: Add a inline function named nice_to_rlimit() in prio.h.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 02/16] kernel/sys: Replace opened code implementation with nice_to_rlimit() Dongsheng Yang
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang

This patch add an inline function named nice_to_rlimit() in prio.h to
convert nice value [19,-20] to rlimit style value [1,40].

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
---
 include/linux/sched/prio.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/linux/sched/prio.h b/include/linux/sched/prio.h
index ac32258..c15cbda 100644
--- a/include/linux/sched/prio.h
+++ b/include/linux/sched/prio.h
@@ -41,4 +41,12 @@
 #define TASK_USER_PRIO(p)	USER_PRIO((p)->static_prio)
 #define MAX_USER_PRIO		(USER_PRIO(MAX_PRIO))
 
+/*
+ * Convert nice value [19,-20] to rlimit style value [1,40].
+ */
+static inline nice_to_rlimit(long nice)
+{
+	return (MAX_NICE - nice + 1);
+}
+
 #endif /* _SCHED_PRIO_H */
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 02/16] kernel/sys: Replace opened code implementation with nice_to_rlimit().
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 01/16] sched/prio: Add a inline function named nice_to_rlimit() in prio.h Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:26   ` Peter Zijlstra
  2014-03-11  9:20 ` [PATCH 03/16] workqueue: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
                   ` (13 subsequent siblings)
  15 siblings, 1 reply; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang,
	Eric W. Biederman, Robin Holt, Oleg Nesterov, Andrew Morton

From: Joe Perches <joe@perches.com>

Convert 20 - task_nice(p) to nice_to_rlimit(task_nice(p)).

Reduce the indent the switch case labels while there.

git diff -w shows 3 lines changed and a /* fall-through */ comment added

  $ git diff -w -U0 kernel/sys.c
  @@ -253 +253 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
  -                               niceval = 20 - task_nice(p);
  +                       niceval = nice_to_rlimit(task_nice(p));
  @@ -264 +264 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
  -                               niceval = 20 - task_nice(p);
  +                       niceval = nice_to_rlimit(task_nice(p));
  @@ -280 +280 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
  -                                       niceval = 20 - task_nice(p);
  +                               niceval = nice_to_rlimit(task_nice(p));
  @@ -1558 +1558 @@ static void k_getrusage(struct task_struct *p, int who, struct rusage *r)
  -
  +               /* fall-through */

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
cc: "Eric W. Biederman" <ebiederm@xmission.com>
cc: Robin Holt <holt@sgi.com>
cc: Oleg Nesterov <oleg@redhat.com>
cc: Andrew Morton <akpm@linux-foundation.org>
---
 kernel/sys.c | 206 +++++++++++++++++++++++++++++------------------------------
 1 file changed, 103 insertions(+), 103 deletions(-)

diff --git a/kernel/sys.c b/kernel/sys.c
index adaeab6..1bfe79a 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -182,39 +182,39 @@ SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval)
 	rcu_read_lock();
 	read_lock(&tasklist_lock);
 	switch (which) {
-		case PRIO_PROCESS:
-			if (who)
-				p = find_task_by_vpid(who);
-			else
-				p = current;
-			if (p)
-				error = set_one_prio(p, niceval, error);
-			break;
-		case PRIO_PGRP:
-			if (who)
-				pgrp = find_vpid(who);
-			else
-				pgrp = task_pgrp(current);
-			do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
+	case PRIO_PROCESS:
+		if (who)
+			p = find_task_by_vpid(who);
+		else
+			p = current;
+		if (p)
+			error = set_one_prio(p, niceval, error);
+		break;
+	case PRIO_PGRP:
+		if (who)
+			pgrp = find_vpid(who);
+		else
+			pgrp = task_pgrp(current);
+		do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
+			error = set_one_prio(p, niceval, error);
+		} while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
+		break;
+	case PRIO_USER:
+		uid = make_kuid(cred->user_ns, who);
+		user = cred->user;
+		if (!who)
+			uid = cred->uid;
+		else if (!uid_eq(uid, cred->uid) &&
+			 !(user = find_user(uid)))
+			goto out_unlock;	/* No processes for this user */
+
+		do_each_thread(g, p) {
+			if (uid_eq(task_uid(p), uid))
 				error = set_one_prio(p, niceval, error);
-			} while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
-			break;
-		case PRIO_USER:
-			uid = make_kuid(cred->user_ns, who);
-			user = cred->user;
-			if (!who)
-				uid = cred->uid;
-			else if (!uid_eq(uid, cred->uid) &&
-				 !(user = find_user(uid)))
-				goto out_unlock;	/* No processes for this user */
-
-			do_each_thread(g, p) {
-				if (uid_eq(task_uid(p), uid))
-					error = set_one_prio(p, niceval, error);
-			} while_each_thread(g, p);
-			if (!uid_eq(uid, cred->uid))
-				free_uid(user);		/* For find_user() */
-			break;
+		} while_each_thread(g, p);
+		if (!uid_eq(uid, cred->uid))
+			free_uid(user);		/* For find_user() */
+		break;
 	}
 out_unlock:
 	read_unlock(&tasklist_lock);
@@ -244,47 +244,47 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
 	rcu_read_lock();
 	read_lock(&tasklist_lock);
 	switch (which) {
-		case PRIO_PROCESS:
-			if (who)
-				p = find_task_by_vpid(who);
-			else
-				p = current;
-			if (p) {
-				niceval = 20 - task_nice(p);
+	case PRIO_PROCESS:
+		if (who)
+			p = find_task_by_vpid(who);
+		else
+			p = current;
+		if (p) {
+			niceval = nice_to_rlimit(task_nice(p));
+			if (niceval > retval)
+				retval = niceval;
+		}
+		break;
+	case PRIO_PGRP:
+		if (who)
+			pgrp = find_vpid(who);
+		else
+			pgrp = task_pgrp(current);
+		do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
+			niceval = nice_to_rlimit(task_nice(p));
+			if (niceval > retval)
+				retval = niceval;
+		} while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
+		break;
+	case PRIO_USER:
+		uid = make_kuid(cred->user_ns, who);
+		user = cred->user;
+		if (!who)
+			uid = cred->uid;
+		else if (!uid_eq(uid, cred->uid) &&
+			 !(user = find_user(uid)))
+			goto out_unlock;	/* No processes for this user */
+
+		do_each_thread(g, p) {
+			if (uid_eq(task_uid(p), uid)) {
+				niceval = nice_to_rlimit(task_nice(p));
 				if (niceval > retval)
 					retval = niceval;
 			}
-			break;
-		case PRIO_PGRP:
-			if (who)
-				pgrp = find_vpid(who);
-			else
-				pgrp = task_pgrp(current);
-			do_each_pid_thread(pgrp, PIDTYPE_PGID, p) {
-				niceval = 20 - task_nice(p);
-				if (niceval > retval)
-					retval = niceval;
-			} while_each_pid_thread(pgrp, PIDTYPE_PGID, p);
-			break;
-		case PRIO_USER:
-			uid = make_kuid(cred->user_ns, who);
-			user = cred->user;
-			if (!who)
-				uid = cred->uid;
-			else if (!uid_eq(uid, cred->uid) &&
-				 !(user = find_user(uid)))
-				goto out_unlock;	/* No processes for this user */
-
-			do_each_thread(g, p) {
-				if (uid_eq(task_uid(p), uid)) {
-					niceval = 20 - task_nice(p);
-					if (niceval > retval)
-						retval = niceval;
-				}
-			} while_each_thread(g, p);
-			if (!uid_eq(uid, cred->uid))
-				free_uid(user);		/* for find_user() */
-			break;
+		} while_each_thread(g, p);
+		if (!uid_eq(uid, cred->uid))
+			free_uid(user);		/* for find_user() */
+		break;
 	}
 out_unlock:
 	read_unlock(&tasklist_lock);
@@ -1541,41 +1541,41 @@ static void k_getrusage(struct task_struct *p, int who, struct rusage *r)
 		return;
 
 	switch (who) {
-		case RUSAGE_BOTH:
-		case RUSAGE_CHILDREN:
-			utime = p->signal->cutime;
-			stime = p->signal->cstime;
-			r->ru_nvcsw = p->signal->cnvcsw;
-			r->ru_nivcsw = p->signal->cnivcsw;
-			r->ru_minflt = p->signal->cmin_flt;
-			r->ru_majflt = p->signal->cmaj_flt;
-			r->ru_inblock = p->signal->cinblock;
-			r->ru_oublock = p->signal->coublock;
-			maxrss = p->signal->cmaxrss;
-
-			if (who == RUSAGE_CHILDREN)
-				break;
-
-		case RUSAGE_SELF:
-			thread_group_cputime_adjusted(p, &tgutime, &tgstime);
-			utime += tgutime;
-			stime += tgstime;
-			r->ru_nvcsw += p->signal->nvcsw;
-			r->ru_nivcsw += p->signal->nivcsw;
-			r->ru_minflt += p->signal->min_flt;
-			r->ru_majflt += p->signal->maj_flt;
-			r->ru_inblock += p->signal->inblock;
-			r->ru_oublock += p->signal->oublock;
-			if (maxrss < p->signal->maxrss)
-				maxrss = p->signal->maxrss;
-			t = p;
-			do {
-				accumulate_thread_rusage(t, r);
-			} while_each_thread(p, t);
+	case RUSAGE_BOTH:
+	case RUSAGE_CHILDREN:
+		utime = p->signal->cutime;
+		stime = p->signal->cstime;
+		r->ru_nvcsw = p->signal->cnvcsw;
+		r->ru_nivcsw = p->signal->cnivcsw;
+		r->ru_minflt = p->signal->cmin_flt;
+		r->ru_majflt = p->signal->cmaj_flt;
+		r->ru_inblock = p->signal->cinblock;
+		r->ru_oublock = p->signal->coublock;
+		maxrss = p->signal->cmaxrss;
+
+		if (who == RUSAGE_CHILDREN)
 			break;
+		/* fall-through */
+	case RUSAGE_SELF:
+		thread_group_cputime_adjusted(p, &tgutime, &tgstime);
+		utime += tgutime;
+		stime += tgstime;
+		r->ru_nvcsw += p->signal->nvcsw;
+		r->ru_nivcsw += p->signal->nivcsw;
+		r->ru_minflt += p->signal->min_flt;
+		r->ru_majflt += p->signal->maj_flt;
+		r->ru_inblock += p->signal->inblock;
+		r->ru_oublock += p->signal->oublock;
+		if (maxrss < p->signal->maxrss)
+			maxrss = p->signal->maxrss;
+		t = p;
+		do {
+			accumulate_thread_rusage(t, r);
+		} while_each_thread(p, t);
+		break;
 
-		default:
-			BUG();
+	default:
+		BUG();
 	}
 	unlock_task_sighand(p, &flags);
 
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 03/16] workqueue: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 01/16] sched/prio: Add a inline function named nice_to_rlimit() in prio.h Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 02/16] kernel/sys: Replace opened code implementation with nice_to_rlimit() Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 04/16] locktorture: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang,
	Tejun Heo

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
cc: Tejun Heo <tj@kernel.org>
---
 kernel/workqueue.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 3fa5b8f..7528bec 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -100,10 +100,10 @@ enum {
 
 	/*
 	 * Rescue workers are used only on emergencies and shared by
-	 * all cpus.  Give -20.
+	 * all cpus.  Give MIN_NICE.
 	 */
-	RESCUER_NICE_LEVEL	= -20,
-	HIGHPRI_NICE_LEVEL	= -20,
+	RESCUER_NICE_LEVEL	= MIN_NICE,
+	HIGHPRI_NICE_LEVEL	= MIN_NICE,
 
 	WQ_NAME_LEN		= 24,
 };
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 04/16] locktorture: Replace hardcoding of 19 with MAX_NICE.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (2 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 03/16] workqueue: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 05/16] tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
---
 kernel/locking/locktorture.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/locking/locktorture.c b/kernel/locking/locktorture.c
index f26b1a1..23343be 100644
--- a/kernel/locking/locktorture.c
+++ b/kernel/locking/locktorture.c
@@ -216,7 +216,7 @@ static int lock_torture_writer(void *arg)
 	static DEFINE_TORTURE_RANDOM(rand);
 
 	VERBOSE_TOROUT_STRING("lock_torture_writer task started");
-	set_user_nice(current, 19);
+	set_user_nice(current, MAX_NICE);
 
 	do {
 		schedule_timeout_uninterruptible(1);
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 05/16] tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (3 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 04/16] locktorture: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 06/16] mm: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
---
 tools/testing/selftests/mqueue/mq_perf_tests.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/mqueue/mq_perf_tests.c b/tools/testing/selftests/mqueue/mq_perf_tests.c
index 2fadd4b..09dce51 100644
--- a/tools/testing/selftests/mqueue/mq_perf_tests.c
+++ b/tools/testing/selftests/mqueue/mq_perf_tests.c
@@ -527,9 +527,9 @@ void increase_limits(void)
 	while (try_set(max_msgsize, cur_max_msgsize += 1024))
 		;
 	cur_max_msgsize = get(max_msgsize);
-	if (setpriority(PRIO_PROCESS, 0, -20) != 0)
+	if (setpriority(PRIO_PROCESS, 0, MIN_NICE) != 0)
 		shutdown(2, "setpriority()", __LINE__);
-	cur_nice = -20;
+	cur_nice = MIN_NICE;
 }
 
 int main(int argc, char *argv[])
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 06/16] mm: Replace hardcoding of 19 with MAX_NICE.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (4 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 05/16] tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 07/16] ioprio: Add a macro named NICE_TO_IOPRIO Dongsheng Yang
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang,
	linux-mm, Bob Liu, Aneesh Kumar K.V, Kirill A. Shutemov,
	Mel Gorman, Rik van Riel, Andrew Morton

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
cc: linux-mm@kvack.org
cc: Bob Liu <lliubbo@gmail.com>
cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
cc: Mel Gorman <mgorman@suse.de>
cc: Rik van Riel <riel@redhat.com>
cc: Andrew Morton <akpm@linux-foundation.org>
---
 mm/huge_memory.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 1546655..dcdb6f9 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -2803,7 +2803,7 @@ static int khugepaged(void *none)
 	struct mm_slot *mm_slot;
 
 	set_freezable();
-	set_user_nice(current, 19);
+	set_user_nice(current, MAX_NICE);
 
 	while (!kthread_should_stop()) {
 		khugepaged_do_scan();
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 07/16] ioprio: Add a macro named NICE_TO_IOPRIO.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (5 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 06/16] mm: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:28   ` Peter Zijlstra
  2014-03-11  9:20 ` [PATCH 08/16] fs/hearbeat: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
                   ` (8 subsequent siblings)
  15 siblings, 1 reply; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang

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)
+
+/*
  * 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));
 }
 
 /*
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 08/16] fs/hearbeat: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (6 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 07/16] ioprio: Add a macro named NICE_TO_IOPRIO Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 09/16] driver/block: " Dongsheng Yang
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang,
	ocfs2-devel, Dong Fang

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
cc: ocfs2-devel@oss.oracle.com
cc: Dong Fang <yp.fangdong@gmail.com>
---
 fs/ocfs2/cluster/heartbeat.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c
index bf482df..7303929 100644
--- a/fs/ocfs2/cluster/heartbeat.c
+++ b/fs/ocfs2/cluster/heartbeat.c
@@ -1107,7 +1107,7 @@ static int o2hb_thread(void *data)
 
 	mlog(ML_HEARTBEAT|ML_KTHREAD, "hb thread running\n");
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 
 	/* Pin node */
 	o2nm_depend_this_node();
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 09/16] driver/block: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (7 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 08/16] fs/hearbeat: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 10/16] driver/char: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang,
	nbd-general, Wei Yongjun, Tejun Heo

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
cc: nbd-general@lists.sourceforge.net
cc: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
cc: Tejun Heo <tj@kernel.org>
---
 drivers/block/loop.c    | 2 +-
 drivers/block/nbd.c     | 2 +-
 drivers/block/pktcdvd.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 66e8c3b..c8bf270 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -548,7 +548,7 @@ static int loop_thread(void *data)
 	struct loop_device *lo = data;
 	struct bio *bio;
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 
 	while (!kthread_should_stop() || !bio_list_empty(&lo->lo_bio_list)) {
 
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 55298db..2a1f26b 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -533,7 +533,7 @@ static int nbd_thread(void *data)
 	struct nbd_device *nbd = data;
 	struct request *req;
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 	while (!kthread_should_stop() || !list_empty(&nbd->waiting_queue)) {
 		/* wait for something to do */
 		wait_event_interruptible(nbd->waiting_wq,
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index a2af73d..ef166ad 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -1463,7 +1463,7 @@ static int kcdrwd(void *foobar)
 	struct packet_data *pkt;
 	long min_sleep_time, residue;
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 	set_freezable();
 
 	for (;;) {
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 10/16] driver/char: Replace hardcoding of 19 with MAX_NICE.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (8 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 09/16] driver/block: " Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 11/16] drivers/s390: " Dongsheng Yang
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang,
	openipmi-developer, Corey Minyard

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
cc: openipmi-developer@lists.sourceforge.net
cc: Corey Minyard <minyard@acm.org>
---
 drivers/char/ipmi/ipmi_si_intf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index 03f4189..03c0eed 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -999,7 +999,7 @@ static int ipmi_thread(void *data)
 	struct timespec busy_until;
 
 	ipmi_si_set_not_busy(&busy_until);
-	set_user_nice(current, 19);
+	set_user_nice(current, MAX_NICE);
 	while (!kthread_should_stop()) {
 		int busy_wait;
 
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 11/16] drivers/s390: Replace hardcoding of 19 with MAX_NICE.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (9 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 10/16] driver/char: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 12/16] sched/prio: Add an inline function named rlimit_to_nice in prio.h Dongsheng Yang
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang,
	linux-s390, Martin Schwidefsky, Ingo Tuchscherer

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
cc: linux-s390@vger.kernel.org
cc: Heiko Carstens <heiko.carstens@de.ibm.com>
cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
cc: Ingo Tuchscherer <ingo.tuchscherer@de.ibm.com>
---
 drivers/s390/crypto/ap_bus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/s390/crypto/ap_bus.c b/drivers/s390/crypto/ap_bus.c
index ab3baa7..8eec165 100644
--- a/drivers/s390/crypto/ap_bus.c
+++ b/drivers/s390/crypto/ap_bus.c
@@ -1803,7 +1803,7 @@ static int ap_poll_thread(void *data)
 	int requests;
 	struct ap_device *ap_dev;
 
-	set_user_nice(current, 19);
+	set_user_nice(current, MAX_NICE);
 	while (1) {
 		if (ap_suspend_flag)
 			return 0;
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 12/16] sched/prio: Add an inline function named rlimit_to_nice in prio.h.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (10 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 11/16] drivers/s390: " Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 13/16] driver/staging/android: Use rlimit_to_nice to replace opened code implementation Dongsheng Yang
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang

This patch add an inline function named rlimit_to_nice to convert
rlimit style value in [1, 40] to nice value in [-20, 19].

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
---
 include/linux/sched/prio.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/include/linux/sched/prio.h b/include/linux/sched/prio.h
index c15cbda..b8d729e 100644
--- a/include/linux/sched/prio.h
+++ b/include/linux/sched/prio.h
@@ -49,4 +49,12 @@ static inline nice_to_rlimit(long nice)
 	return (MAX_NICE - nice + 1);
 }
 
+/*
+ * Convert rlimit style value [1,40] to nice value [-20, 19].
+ */
+static inline rlimit_to_nice(long prio)
+{
+	return (MAX_NICE - prio + 1);
+}
+
 #endif /* _SCHED_PRIO_H */
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 13/16] driver/staging/android: Use rlimit_to_nice to replace opened code implementation.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (11 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 12/16] sched/prio: Add an inline function named rlimit_to_nice in prio.h Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 14/16] driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang, devel,
	Masanari Iida, Bojan Prtvar, Serban Constantinescu

There is a macro rlimit_to_nice in linux/sched/prio.h to convert priority in rlimit
to nice value.

This patch replace the opened implementation with rlimit_to_nice.

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
cc: devel@driverdev.osuosl.org
cc: Masanari Iida <standby24x7@gmail.com>
cc: Bojan Prtvar <prtvar.b@gmail.com>
cc: Serban Constantinescu <serban.constantinescu@arm.com>
Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
---
 drivers/staging/android/binder.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c
index 1432d95..19e844b 100644
--- a/drivers/staging/android/binder.c
+++ b/drivers/staging/android/binder.c
@@ -436,12 +436,12 @@ static void binder_set_nice(long nice)
 		set_user_nice(current, nice);
 		return;
 	}
-	min_nice = 20 - current->signal->rlim[RLIMIT_NICE].rlim_cur;
+	min_nice = rlimit_to_nice(current->signal->rlim[RLIMIT_NICE].rlim_cur);
 	binder_debug(BINDER_DEBUG_PRIORITY_CAP,
 		     "%d: nice value %ld not allowed use %ld instead\n",
 		      current->pid, nice, min_nice);
 	set_user_nice(current, min_nice);
-	if (min_nice < 20)
+	if (min_nice <= MAX_NICE)
 		return;
 	binder_user_error("%d RLIMIT_NICE not set\n", current->pid);
 }
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 14/16] driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (12 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 13/16] driver/staging/android: Use rlimit_to_nice to replace opened code implementation Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 15/16] driver/scsi: " Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 16/16] sched: Get rid of opened code implementation of funtion nice_to_rlimit() Dongsheng Yang
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang, devel,
	Xiong Zhou, Andreas Dilger, Cyril Roelandt, Kent Overstreet,
	Peng Tao

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
cc: devel@driverdev.osuosl.org
cc: Xiong Zhou <jencce.kernel@gmail.com>
cc: Andreas Dilger <andreas.dilger@intel.com>
cc: Cyril Roelandt <tipecaml@gmail.com>
cc: Kent Overstreet <kmo@daterainc.com>
cc: Peng Tao <bergwolf@gmail.com>
---
 drivers/staging/lustre/lustre/llite/lloop.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/lustre/lustre/llite/lloop.c b/drivers/staging/lustre/lustre/llite/lloop.c
index 0718905..e40fc84 100644
--- a/drivers/staging/lustre/lustre/llite/lloop.c
+++ b/drivers/staging/lustre/lustre/llite/lloop.c
@@ -407,7 +407,7 @@ static int loop_thread(void *data)
 	int refcheck;
 	int ret = 0;
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 
 	lo->lo_state = LLOOP_BOUND;
 
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 15/16] driver/scsi: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (13 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 14/16] driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  2014-03-11  9:20 ` [PATCH 16/16] sched: Get rid of opened code implementation of funtion nice_to_rlimit() Dongsheng Yang
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang,
	fcoe-devel, James Smart, Robert Jennings, Robert Love

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
cc: fcoe-devel@open-fcoe.org
cc: James Smart <james.smart@emulex.com>
cc: Robert Jennings <rcj@linux.vnet.ibm.com>
cc: Robert Love <robert.w.love@intel.com>
---
 drivers/scsi/bnx2fc/bnx2fc_fcoe.c | 4 ++--
 drivers/scsi/bnx2i/bnx2i_hwi.c    | 2 +-
 drivers/scsi/fcoe/fcoe.c          | 2 +-
 drivers/scsi/ibmvscsi/ibmvfc.c    | 2 +-
 drivers/scsi/ibmvscsi/ibmvscsi.c  | 2 +-
 drivers/scsi/lpfc/lpfc_hbadisc.c  | 2 +-
 drivers/scsi/qla2xxx/qla_os.c     | 2 +-
 7 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
index 9b94850..d24067a 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
@@ -464,7 +464,7 @@ static int bnx2fc_l2_rcv_thread(void *arg)
 	struct fcoe_percpu_s *bg = arg;
 	struct sk_buff *skb;
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 	set_current_state(TASK_INTERRUPTIBLE);
 	while (!kthread_should_stop()) {
 		schedule();
@@ -602,7 +602,7 @@ int bnx2fc_percpu_io_thread(void *arg)
 	struct bnx2fc_work *work, *tmp;
 	LIST_HEAD(work_list);
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 	set_current_state(TASK_INTERRUPTIBLE);
 	while (!kthread_should_stop()) {
 		schedule();
diff --git a/drivers/scsi/bnx2i/bnx2i_hwi.c b/drivers/scsi/bnx2i/bnx2i_hwi.c
index e4cf23d..9aaa325 100644
--- a/drivers/scsi/bnx2i/bnx2i_hwi.c
+++ b/drivers/scsi/bnx2i/bnx2i_hwi.c
@@ -1870,7 +1870,7 @@ int bnx2i_percpu_io_thread(void *arg)
 	struct bnx2i_work *work, *tmp;
 	LIST_HEAD(work_list);
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 
 	while (!kthread_should_stop()) {
 		spin_lock_bh(&p->p_work_lock);
diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c
index f317000..843a679 100644
--- a/drivers/scsi/fcoe/fcoe.c
+++ b/drivers/scsi/fcoe/fcoe.c
@@ -1872,7 +1872,7 @@ static int fcoe_percpu_receive_thread(void *arg)
 
 	skb_queue_head_init(&tmp);
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 
 retry:
 	while (!kthread_should_stop()) {
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
index 23f5ba5..8dd4768 100644
--- a/drivers/scsi/ibmvscsi/ibmvfc.c
+++ b/drivers/scsi/ibmvscsi/ibmvfc.c
@@ -4515,7 +4515,7 @@ static int ibmvfc_work(void *data)
 	struct ibmvfc_host *vhost = data;
 	int rc;
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 
 	while (1) {
 		rc = wait_event_interruptible(vhost->work_wait_q,
diff --git a/drivers/scsi/ibmvscsi/ibmvscsi.c b/drivers/scsi/ibmvscsi/ibmvscsi.c
index fa76440..2ebfb2b 100644
--- a/drivers/scsi/ibmvscsi/ibmvscsi.c
+++ b/drivers/scsi/ibmvscsi/ibmvscsi.c
@@ -2213,7 +2213,7 @@ static int ibmvscsi_work(void *data)
 	struct ibmvscsi_host_data *hostdata = data;
 	int rc;
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 
 	while (1) {
 		rc = wait_event_interruptible(hostdata->work_wait_q,
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 883ea2d..1f8f4a7 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -733,7 +733,7 @@ lpfc_do_work(void *p)
 	struct lpfc_hba *phba = p;
 	int rc;
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 	current->flags |= PF_NOFREEZE;
 	phba->data_flags = 0;
 
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 89a5300..0e45568 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -4756,7 +4756,7 @@ qla2x00_do_dpc(void *data)
 	ha = (struct qla_hw_data *)data;
 	base_vha = pci_get_drvdata(ha->pdev);
 
-	set_user_nice(current, -20);
+	set_user_nice(current, MIN_NICE);
 
 	set_current_state(TASK_INTERRUPTIBLE);
 	while (!kthread_should_stop()) {
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 16/16] sched: Get rid of opened code implementation of funtion nice_to_rlimit().
  2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
                   ` (14 preceding siblings ...)
  2014-03-11  9:20 ` [PATCH 15/16] driver/scsi: " Dongsheng Yang
@ 2014-03-11  9:20 ` Dongsheng Yang
  15 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:20 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, heiko.carstens, Dongsheng Yang

Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
---
 kernel/sched/core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index ee8004c..d2735eb 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3046,7 +3046,7 @@ EXPORT_SYMBOL(set_user_nice);
 int can_nice(const struct task_struct *p, const int nice)
 {
 	/* convert nice value [19,-20] to rlimit style value [1,40] */
-	int nice_rlim = 20 - nice;
+	int nice_rlim = nice_to_rlimit(nice);
 
 	return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
 		capable(CAP_SYS_NICE));
-- 
1.8.2.1


^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH 02/16] kernel/sys: Replace opened code implementation with nice_to_rlimit().
  2014-03-11  9:20 ` [PATCH 02/16] kernel/sys: Replace opened code implementation with nice_to_rlimit() Dongsheng Yang
@ 2014-03-11  9:26   ` Peter Zijlstra
  2014-03-11  9:27     ` Dongsheng Yang
  0 siblings, 1 reply; 21+ messages in thread
From: Peter Zijlstra @ 2014-03-11  9:26 UTC (permalink / raw)
  To: Dongsheng Yang
  Cc: linux-kernel, joe, mingo, tglx, heiko.carstens, Eric W. Biederman,
	Robin Holt, Oleg Nesterov, Andrew Morton

On Tue, Mar 11, 2014 at 05:20:23PM +0800, Dongsheng Yang wrote:
> From: Joe Perches <joe@perches.com>
> 
> Convert 20 - task_nice(p) to nice_to_rlimit(task_nice(p)).
> 
> Reduce the indent the switch case labels while there.
> 
> git diff -w shows 3 lines changed and a /* fall-through */ comment added
> 
>   $ git diff -w -U0 kernel/sys.c
>   @@ -253 +253 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
>   -                               niceval = 20 - task_nice(p);
>   +                       niceval = nice_to_rlimit(task_nice(p));
>   @@ -264 +264 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
>   -                               niceval = 20 - task_nice(p);
>   +                       niceval = nice_to_rlimit(task_nice(p));
>   @@ -280 +280 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
>   -                                       niceval = 20 - task_nice(p);
>   +                               niceval = nice_to_rlimit(task_nice(p));
>   @@ -1558 +1558 @@ static void k_getrusage(struct task_struct *p, int who, struct rusage *r)
>   -
>   +               /* fall-through */
> 

I would really like to see the whitespace changes separated. I can push
a scheduler related change into other subsystems, but massive surgery
like this should not come through the scheduler tree.



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 02/16] kernel/sys: Replace opened code implementation with nice_to_rlimit().
  2014-03-11  9:26   ` Peter Zijlstra
@ 2014-03-11  9:27     ` Dongsheng Yang
  0 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:27 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: linux-kernel, joe, mingo, tglx, heiko.carstens, Eric W. Biederman,
	Robin Holt, Oleg Nesterov, Andrew Morton

On 03/11/2014 05:26 PM, Peter Zijlstra wrote:
> On Tue, Mar 11, 2014 at 05:20:23PM +0800, Dongsheng Yang wrote:
>> From: Joe Perches <joe@perches.com>
>>
>> Convert 20 - task_nice(p) to nice_to_rlimit(task_nice(p)).
>>
>> Reduce the indent the switch case labels while there.
>>
>> git diff -w shows 3 lines changed and a /* fall-through */ comment added
>>
>>    $ git diff -w -U0 kernel/sys.c
>>    @@ -253 +253 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
>>    -                               niceval = 20 - task_nice(p);
>>    +                       niceval = nice_to_rlimit(task_nice(p));
>>    @@ -264 +264 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
>>    -                               niceval = 20 - task_nice(p);
>>    +                       niceval = nice_to_rlimit(task_nice(p));
>>    @@ -280 +280 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)
>>    -                                       niceval = 20 - task_nice(p);
>>    +                               niceval = nice_to_rlimit(task_nice(p));
>>    @@ -1558 +1558 @@ static void k_getrusage(struct task_struct *p, int who, struct rusage *r)
>>    -
>>    +               /* fall-through */
>>
> I would really like to see the whitespace changes separated. I can push
> a scheduler related change into other subsystems, but massive surgery
> like this should not come through the scheduler tree.

Okey, Peter, I will send a single patch about the whitespace changes and 
update
this patch in this thread soon.

Thanx
>
>


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 07/16] ioprio: Add a macro named NICE_TO_IOPRIO.
  2014-03-11  9:20 ` [PATCH 07/16] ioprio: Add a macro named NICE_TO_IOPRIO Dongsheng Yang
@ 2014-03-11  9:28   ` Peter Zijlstra
  2014-03-11  9:34     ` Dongsheng Yang
  0 siblings, 1 reply; 21+ messages in thread
From: Peter Zijlstra @ 2014-03-11  9:28 UTC (permalink / raw)
  To: Dongsheng Yang; +Cc: linux-kernel, joe, mingo, tglx, heiko.carstens, Jens Axboe

On Tue, Mar 11, 2014 at 05:20:28PM +0800, 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)
> +
> +/*
>   * 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));
>  }

How exactly is adding a macro and code complexity making this code
better?

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 07/16] ioprio: Add a macro named NICE_TO_IOPRIO.
  2014-03-11  9:28   ` Peter Zijlstra
@ 2014-03-11  9:34     ` Dongsheng Yang
  0 siblings, 0 replies; 21+ messages in thread
From: Dongsheng Yang @ 2014-03-11  9:34 UTC (permalink / raw)
  To: Peter Zijlstra; +Cc: linux-kernel, joe, mingo, tglx, heiko.carstens, Jens Axboe

On 03/11/2014 05:28 PM, Peter Zijlstra wrote:
> On Tue, Mar 11, 2014 at 05:20:28PM +0800, 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)
>> +
>> +/*
>>    * 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));
>>   }
> How exactly is adding a macro and code complexity making this code
> better?

About this patch, I think convert a nice value in [-20, 19] to ioprio in 
[0, 7]
is a common requirement. So I add a macro NICE_TO_IOPRIO to achieve it.

> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2014-03-11  9:36 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-11  9:20 [PATCH 00/16 for-tip V2] A series patches about sched priority Dongsheng Yang
2014-03-11  9:20 ` [PATCH 01/16] sched/prio: Add a inline function named nice_to_rlimit() in prio.h Dongsheng Yang
2014-03-11  9:20 ` [PATCH 02/16] kernel/sys: Replace opened code implementation with nice_to_rlimit() Dongsheng Yang
2014-03-11  9:26   ` Peter Zijlstra
2014-03-11  9:27     ` Dongsheng Yang
2014-03-11  9:20 ` [PATCH 03/16] workqueue: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11  9:20 ` [PATCH 04/16] locktorture: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
2014-03-11  9:20 ` [PATCH 05/16] tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11  9:20 ` [PATCH 06/16] mm: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
2014-03-11  9:20 ` [PATCH 07/16] ioprio: Add a macro named NICE_TO_IOPRIO Dongsheng Yang
2014-03-11  9:28   ` Peter Zijlstra
2014-03-11  9:34     ` Dongsheng Yang
2014-03-11  9:20 ` [PATCH 08/16] fs/hearbeat: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11  9:20 ` [PATCH 09/16] driver/block: " Dongsheng Yang
2014-03-11  9:20 ` [PATCH 10/16] driver/char: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
2014-03-11  9:20 ` [PATCH 11/16] drivers/s390: " Dongsheng Yang
2014-03-11  9:20 ` [PATCH 12/16] sched/prio: Add an inline function named rlimit_to_nice in prio.h Dongsheng Yang
2014-03-11  9:20 ` [PATCH 13/16] driver/staging/android: Use rlimit_to_nice to replace opened code implementation Dongsheng Yang
2014-03-11  9:20 ` [PATCH 14/16] driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11  9:20 ` [PATCH 15/16] driver/scsi: " Dongsheng Yang
2014-03-11  9:20 ` [PATCH 16/16] sched: Get rid of opened code implementation of funtion nice_to_rlimit() Dongsheng Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox