public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/15] A series patch for priority.
@ 2014-03-11  4:59 Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 01/15] sched/prio: Add a macro named NICE_TO_RLIMIT in prio.h Dongsheng Yang
                   ` (14 more replies)
  0 siblings, 15 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, Dongsheng Yang

Hi all,
	This patchset is all about priority. 

1. Add two macros 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.

Dongsheng Yang (14):
  sched/prio: Add a macro 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.
  driver/staging/android: Use RLIMIT_TO_NICE to replace opened code
    implementation.
  sched/prio: Add a macro named RLIMIT_TO_NICE in prio.h.
  driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE.
  driver/scsi: Replace hardcoding of 20 with MIN_NICE.

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

 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                     |   6 +
 kernel/locking/locktorture.c                   |   2 +-
 kernel/sys.c                                   | 206 ++++++++++++-------------
 kernel/workqueue.c                             |   6 +-
 mm/huge_memory.c                               |   2 +-
 tools/testing/selftests/mqueue/mq_perf_tests.c |   4 +-
 22 files changed, 139 insertions(+), 128 deletions(-)

-- 
1.8.2.1


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

* [PATCH 01/15] sched/prio: Add a macro named NICE_TO_RLIMIT in prio.h.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  8:17   ` Heiko Carstens
  2014-03-11  4:59 ` [PATCH 02/15] kernel/sys: Replace opened code implementation with NICE_TO_RLIMIT macro Dongsheng Yang
                   ` (13 subsequent siblings)
  14 siblings, 1 reply; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, Dongsheng Yang

This patch add a macro 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 | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/include/linux/sched/prio.h b/include/linux/sched/prio.h
index ac32258..8e78c47 100644
--- a/include/linux/sched/prio.h
+++ b/include/linux/sched/prio.h
@@ -41,4 +41,9 @@
 #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].
+ */
+#define NICE_TO_RLIMIT(nice)	(MAX_NICE - nice + 1)
+
 #endif /* _SCHED_PRIO_H */
-- 
1.8.2.1


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

* [PATCH 02/15] kernel/sys: Replace opened code implementation with NICE_TO_RLIMIT macro.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 01/15] sched/prio: Add a macro named NICE_TO_RLIMIT in prio.h Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 03/15] workqueue: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, 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..b03aba3 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] 20+ messages in thread

* [PATCH 03/15] workqueue: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 01/15] sched/prio: Add a macro named NICE_TO_RLIMIT in prio.h Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 02/15] kernel/sys: Replace opened code implementation with NICE_TO_RLIMIT macro Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 04/15] locktorture: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, 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] 20+ messages in thread

* [PATCH 04/15] locktorture: Replace hardcoding of 19 with MAX_NICE.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (2 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 03/15] workqueue: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 05/15] tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, 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] 20+ messages in thread

* [PATCH 05/15] tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (3 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 04/15] locktorture: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 06/15] mm: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, 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] 20+ messages in thread

* [PATCH 06/15] mm: Replace hardcoding of 19 with MAX_NICE.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (4 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 05/15] tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 07/15] ioprio: Add a macro named NICE_TO_IOPRIO Dongsheng Yang
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, 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] 20+ messages in thread

* [PATCH 07/15] ioprio: Add a macro named NICE_TO_IOPRIO.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (5 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 06/15] mm: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 08/15] fs/hearbeat: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, 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..0164584 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] 20+ messages in thread

* [PATCH 08/15] fs/hearbeat: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (6 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 07/15] ioprio: Add a macro named NICE_TO_IOPRIO Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 09/15] driver/block: " Dongsheng Yang
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, 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] 20+ messages in thread

* [PATCH 09/15] driver/block: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (7 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 08/15] fs/hearbeat: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 10/15] driver/char: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, 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] 20+ messages in thread

* [PATCH 10/15] driver/char: Replace hardcoding of 19 with MAX_NICE.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (8 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 09/15] driver/block: " Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 11/15] drivers/s390: " Dongsheng Yang
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, 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] 20+ messages in thread

* [PATCH 11/15] drivers/s390: Replace hardcoding of 19 with MAX_NICE.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (9 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 10/15] driver/char: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 12/15] driver/staging/android: Use RLIMIT_TO_NICE to replace opened code implementation Dongsheng Yang
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, Dongsheng Yang, linux-s390,
	Heiko Carstens, 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] 20+ messages in thread

* [PATCH 12/15] driver/staging/android: Use RLIMIT_TO_NICE to replace opened code implementation.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (10 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 11/15] drivers/s390: " Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 13/15] sched/prio: Add a macro named RLIMIT_TO_NICE in prio.h Dongsheng Yang
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, Dongsheng Yang, devel, Masanari Iida,
	Bojan Prtvar, Serban Constantinescu

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

This patch replace the opened implementation with RLINIT_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>
---
 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..0cf5a49 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] 20+ messages in thread

* [PATCH 13/15] sched/prio: Add a macro named RLIMIT_TO_NICE in prio.h.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (11 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 12/15] driver/staging/android: Use RLIMIT_TO_NICE to replace opened code implementation Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 14/15] driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 15/15] driver/scsi: Replace hardcoding of 20 " Dongsheng Yang
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: joe, peterz, mingo, tglx, Dongsheng Yang

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

diff --git a/include/linux/sched/prio.h b/include/linux/sched/prio.h
index 8e78c47..e34bf0a 100644
--- a/include/linux/sched/prio.h
+++ b/include/linux/sched/prio.h
@@ -45,5 +45,6 @@
  * Convert nice value [19,-20] to rlimit style value [1,40].
  */
 #define NICE_TO_RLIMIT(nice)	(MAX_NICE - nice + 1)
+#define RLIMIT_TO_NICE(prio)	(MAX_NICE - prio + 1)
 
 #endif /* _SCHED_PRIO_H */
-- 
1.8.2.1


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

* [PATCH 14/15] driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (12 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 13/15] sched/prio: Add a macro named RLIMIT_TO_NICE in prio.h Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  2014-03-11  4:59 ` [PATCH 15/15] driver/scsi: Replace hardcoding of 20 " Dongsheng Yang
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, 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] 20+ messages in thread

* [PATCH 15/15] driver/scsi: Replace hardcoding of 20 with MIN_NICE.
  2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
                   ` (13 preceding siblings ...)
  2014-03-11  4:59 ` [PATCH 14/15] driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
@ 2014-03-11  4:59 ` Dongsheng Yang
  14 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  4:59 UTC (permalink / raw)
  To: linux-kernel
  Cc: joe, peterz, mingo, tglx, 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] 20+ messages in thread

* Re: [PATCH 01/15] sched/prio: Add a macro named NICE_TO_RLIMIT in prio.h.
  2014-03-11  4:59 ` [PATCH 01/15] sched/prio: Add a macro named NICE_TO_RLIMIT in prio.h Dongsheng Yang
@ 2014-03-11  8:17   ` Heiko Carstens
  2014-03-11  8:20     ` Dongsheng Yang
  0 siblings, 1 reply; 20+ messages in thread
From: Heiko Carstens @ 2014-03-11  8:17 UTC (permalink / raw)
  To: Dongsheng Yang; +Cc: linux-kernel, joe, peterz, mingo, tglx

On Tue, Mar 11, 2014 at 12:59:16PM +0800, Dongsheng Yang wrote:
> This patch add a macro 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 | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/include/linux/sched/prio.h b/include/linux/sched/prio.h
> index ac32258..8e78c47 100644
> --- a/include/linux/sched/prio.h
> +++ b/include/linux/sched/prio.h
> @@ -41,4 +41,9 @@
>  #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].
> + */
> +#define NICE_TO_RLIMIT(nice)	(MAX_NICE - nice + 1)

Where is MAX_NICE defined? The s390 patch fails to compile.

Also you probably want at least extra braces around the 'nice' usage to
avoid subtle side effects. (or make NICE_TO.. a function, whatever).


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

* Re: [PATCH 01/15] sched/prio: Add a macro named NICE_TO_RLIMIT in prio.h.
  2014-03-11  8:17   ` Heiko Carstens
@ 2014-03-11  8:20     ` Dongsheng Yang
  2014-03-11  8:36       ` Heiko Carstens
  0 siblings, 1 reply; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  8:20 UTC (permalink / raw)
  To: Heiko Carstens; +Cc: linux-kernel, joe, peterz, mingo, tglx

On 03/11/2014 04:17 PM, Heiko Carstens wrote:
> On Tue, Mar 11, 2014 at 12:59:16PM +0800, Dongsheng Yang wrote:
>> This patch add a macro 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 | 5 +++++
>>   1 file changed, 5 insertions(+)
>>
>> diff --git a/include/linux/sched/prio.h b/include/linux/sched/prio.h
>> index ac32258..8e78c47 100644
>> --- a/include/linux/sched/prio.h
>> +++ b/include/linux/sched/prio.h
>> @@ -41,4 +41,9 @@
>>   #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].
>> + */
>> +#define NICE_TO_RLIMIT(nice)	(MAX_NICE - nice + 1)
> Where is MAX_NICE defined? The s390 patch fails to compile.

MAX_NICE is defined in include/linux/sched/prio.h. It is applied in tip 
tree,
and not in mainline yet.
>
> Also you probably want at least extra braces around the 'nice' usage to
> avoid subtle side effects. (or make NICE_TO.. a function, whatever).

Yes, agree. Another question is that I am not sure when I need to use a 
macro
and when I should use a inline function.

Could you help to give me some sugguestion?

Thanx
>


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

* Re: [PATCH 01/15] sched/prio: Add a macro named NICE_TO_RLIMIT in prio.h.
  2014-03-11  8:20     ` Dongsheng Yang
@ 2014-03-11  8:36       ` Heiko Carstens
  2014-03-11  8:44         ` Dongsheng Yang
  0 siblings, 1 reply; 20+ messages in thread
From: Heiko Carstens @ 2014-03-11  8:36 UTC (permalink / raw)
  To: Dongsheng Yang; +Cc: linux-kernel, joe, peterz, mingo, tglx

On Tue, Mar 11, 2014 at 04:20:24PM +0800, Dongsheng Yang wrote:
> On 03/11/2014 04:17 PM, Heiko Carstens wrote:
> >On Tue, Mar 11, 2014 at 12:59:16PM +0800, Dongsheng Yang wrote:
> >>+#define NICE_TO_RLIMIT(nice)	(MAX_NICE - nice + 1)
> >Where is MAX_NICE defined? The s390 patch fails to compile.
> 
> MAX_NICE is defined in include/linux/sched/prio.h. It is applied in
> tip tree, and not in mainline yet.

Ok.

> >Also you probably want at least extra braces around the 'nice' usage to
> >avoid subtle side effects. (or make NICE_TO.. a function, whatever).
> 
> Yes, agree. Another question is that I am not sure when I need to
> use a macro and when I should use a inline function.
> 
> Could you help to give me some sugguestion?

You can ask three people and get five opinions ;)

However if your above define would have been an inline function it
wouldn't suffer from possible subtle side effects and it would have
sane type checking etc.  So usually functions should be preferred.


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

* Re: [PATCH 01/15] sched/prio: Add a macro named NICE_TO_RLIMIT in prio.h.
  2014-03-11  8:36       ` Heiko Carstens
@ 2014-03-11  8:44         ` Dongsheng Yang
  0 siblings, 0 replies; 20+ messages in thread
From: Dongsheng Yang @ 2014-03-11  8:44 UTC (permalink / raw)
  To: Heiko Carstens; +Cc: linux-kernel, joe, peterz, mingo, tglx

On 03/11/2014 04:36 PM, Heiko Carstens wrote:
> On Tue, Mar 11, 2014 at 04:20:24PM +0800, Dongsheng Yang wrote:
>> On 03/11/2014 04:17 PM, Heiko Carstens wrote:
>>> On Tue, Mar 11, 2014 at 12:59:16PM +0800, Dongsheng Yang wrote:
>>>> +#define NICE_TO_RLIMIT(nice)	(MAX_NICE - nice + 1)
>>> Where is MAX_NICE defined? The s390 patch fails to compile.
>> MAX_NICE is defined in include/linux/sched/prio.h. It is applied in
>> tip tree, and not in mainline yet.
> Ok.
>
>>> Also you probably want at least extra braces around the 'nice' usage to
>>> avoid subtle side effects. (or make NICE_TO.. a function, whatever).
>> Yes, agree. Another question is that I am not sure when I need to
>> use a macro and when I should use a inline function.
>>
>> Could you help to give me some sugguestion?
> You can ask three people and get five opinions ;)

Hehe :)
>
> However if your above define would have been an inline function it
> wouldn't suffer from possible subtle side effects and it would have
> sane type checking etc.  So usually functions should be preferred.

I prefer to inline function too, it makes me feel more safe.

I will update this patch with an inline function.

Thanx
>


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

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

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-11  4:59 [PATCH 00/15] A series patch for priority Dongsheng Yang
2014-03-11  4:59 ` [PATCH 01/15] sched/prio: Add a macro named NICE_TO_RLIMIT in prio.h Dongsheng Yang
2014-03-11  8:17   ` Heiko Carstens
2014-03-11  8:20     ` Dongsheng Yang
2014-03-11  8:36       ` Heiko Carstens
2014-03-11  8:44         ` Dongsheng Yang
2014-03-11  4:59 ` [PATCH 02/15] kernel/sys: Replace opened code implementation with NICE_TO_RLIMIT macro Dongsheng Yang
2014-03-11  4:59 ` [PATCH 03/15] workqueue: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11  4:59 ` [PATCH 04/15] locktorture: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
2014-03-11  4:59 ` [PATCH 05/15] tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11  4:59 ` [PATCH 06/15] mm: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
2014-03-11  4:59 ` [PATCH 07/15] ioprio: Add a macro named NICE_TO_IOPRIO Dongsheng Yang
2014-03-11  4:59 ` [PATCH 08/15] fs/hearbeat: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11  4:59 ` [PATCH 09/15] driver/block: " Dongsheng Yang
2014-03-11  4:59 ` [PATCH 10/15] driver/char: Replace hardcoding of 19 with MAX_NICE Dongsheng Yang
2014-03-11  4:59 ` [PATCH 11/15] drivers/s390: " Dongsheng Yang
2014-03-11  4:59 ` [PATCH 12/15] driver/staging/android: Use RLIMIT_TO_NICE to replace opened code implementation Dongsheng Yang
2014-03-11  4:59 ` [PATCH 13/15] sched/prio: Add a macro named RLIMIT_TO_NICE in prio.h Dongsheng Yang
2014-03-11  4:59 ` [PATCH 14/15] driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE Dongsheng Yang
2014-03-11  4:59 ` [PATCH 15/15] driver/scsi: Replace hardcoding of 20 " Dongsheng Yang

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