A series patches about sched priority.
Subsystems (22)
v3 cover A series patches about sched priority.
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:
-v2:
*Splite [2/16] into two patches, one is about the whitespace changes, and
the other is about nice_to_rlimit().
-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 (16):
sched/prio: Add a inline function named nice_to_rlimit() in prio.h. kernel/sys: Replace opened code implementation with nice_to_rlimit().
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: Fix the indent issue in switch.
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(-)
Signature · 1 line
1.8.2.1
PATCH v3 1/17 sched/prio: Add a inline function named nice_to_rlimit() in prio.h.
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].
--- include/linux/sched/prio.h | 8 ++++++++ 1 file changed, 8 insertions(+)
include/linux/sched/prio.h +8 -0
@@ -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 long nice_to_rlimit (long nice) +{ +return (MAX_NICE - nice +1 ); +} +#endif /* _SCHED_PRIO_H */
Signature · 1 line
1.8.2.1
PATCH v3 2/17 kernel/sys: Fix the indent issue in switch.
In reply to Dongsheng YangFrom: Joe Perches <[email protected]>
Fix the indent issue and add a comment line for /* fall-through */.
--- kernel/sys.c | 204 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 102 insertions(+), 102 deletions(-)
kernel/sys.c +102 -102
@@ -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) { +case PRIO_PROCESS : +if (who) + p =find_task_by_vpid (who); +else + p = current; +if (p) { + niceval =20 -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; } -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);
Signature · 1 line
1.8.2.1
PATCH v3 3/17 kernel/sys: Replace opened code implementation with nice_to_rlimit().
In reply to Dongsheng Yang--- kernel/sys.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
kernel/sys.c +3 -3
@@ -250,7 +250,7 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)else p = current;if (p) { - niceval =20 -task_nice (p); + niceval =nice_to_rlimit (task_nice (p));if (niceval > retval) retval = niceval; }
@@ -261,7 +261,7 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who)else pgrp =task_pgrp (current); do_each_pid_thread(pgrp, PIDTYPE_PGID, p) { - niceval =20 -task_nice (p); + niceval =nice_to_rlimit (task_nice (p));if (niceval > retval) retval = niceval; }while_each_pid_thread (pgrp,PIDTYPE_PGID , p);
@@ -277,7 +277,7 @@ SYSCALL_DEFINE2(getpriority, int, which, int, who) do_each_thread(g, p) {if (uid_eq (task_uid (p), uid)) { - niceval =20 -task_nice (p); + niceval =nice_to_rlimit (task_nice (p));if (niceval > retval) retval = niceval; }
Signature · 1 line
1.8.2.1
PATCH v3 4/17 workqueue: Replace hardcoding of -20 with MIN_NICE.
In reply to Dongsheng Yang--- kernel/workqueue.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
kernel/workqueue.c +3 -3
@@ -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, };
Signature · 1 line
1.8.2.1
Re: [PATCH 04/17] workqueue: Replace hardcoding of -20 with MIN_NICE.
Quoted 2 lines · Dongsheng Yang
Signed-off-by Dongsheng Yang <[email protected]>cc Tejun Heo <[email protected]>
Applied to wq/for-3.15.
Thanks.
Signature · 1 line
tejun
Tejun Heo
maintainerRe: [PATCH 04/17] workqueue: Replace hardcoding of -20 with MIN_NICE.
Quoted 5 lines · Tejun Heo
Quoted 2 lines · Dongsheng Yang
Signed-off-by Dongsheng Yang <[email protected]>cc Tejun Heo <[email protected]>Applied to wq/for-3.15.
And reverted as MIN_NICE is not defined yet. Please feel free to add my Acked-by and route it together with the prerequisite changes.
Thanks.
Signature · 1 line
tejun
Re: [PATCH 04/17] workqueue: Replace hardcoding of -20 with MIN_NICE.
Hi Tejun,
Quoted 7 lines · Tejun Heo
Quoted 4 lines · Tejun Heo
Quoted 2 lines · Dongsheng Yang
Signed-off-by Dongsheng Yang <[email protected]>cc Tejun Heo <[email protected]>Applied to wq/for-3.15.
And reverted as
MIN_NICEis not defined yet. Please feel free to add my Acked-by and route it together with the prerequisite changes.
The MIN_NICE is just in tip tree for now. So I think this patch should go through tip.
Thank you for your ack.
Quoted 3 lines
Thanks.
tip-bot for Dongsheng Yang
merge bot[tip:sched/core] sched, treewide: Replace hardcoded nice values with MIN_NICE/MAX_NICE
In reply to Dongsheng Yangsched, treewide: Replace hardcoded nice values with MIN_NICE/MAX_NICE
Commit-ID: 8698a745d800c59cd5a576398bdeccd578ac66f1 Gitweb: http://git.kernel.org/tip/8698a745d800c59cd5a576398bdeccd578ac66f1 Author: Dongsheng Yang <[email protected]> AuthorDate: Tue, 11 Mar 2014 18:09:12 +0800 Committer: Ingo Molnar <[email protected]> CommitDate: Fri, 18 Apr 2014 12:07:24 +0200
sched, treewide: Replace hardcoded nice values with MIN_NICE/MAX_NICE
Replace various -20/+19 hardcoded nice values with MIN_NICE/MAX_NICE.
--- 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 | 2 +- drivers/staging/lustre/lustre/llite/lloop.c | 2 +- fs/ocfs2/cluster/heartbeat.c | 2 +- kernel/locking/locktorture.c | 2 +- kernel/workqueue.c | 6 +++--- mm/huge_memory.c | 2 +- 18 files changed, 21 insertions(+), 21 deletions(-)
drivers/block/loop.c +1 -1
@@ -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)) {
drivers/block/nbd.c +1 -1
@@ -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,
drivers/block/pktcdvd.c +1 -1
@@ -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 (;;) {
drivers/char/ipmi/ipmi_si_intf.c +1 -1
@@ -998,7 +998,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;
drivers/s390/crypto/ap_bus.c +1 -1
@@ -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 ;
drivers/scsi/bnx2fc/bnx2fc_fcoe.c +2 -2
@@ -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 ();
drivers/scsi/bnx2i/bnx2i_hwi.c +1 -1
@@ -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);
drivers/scsi/fcoe/fcoe.c +1 -1
@@ -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 ()) {
drivers/scsi/ibmvscsi/ibmvfc.c +1 -1
@@ -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,
drivers/scsi/ibmvscsi/ibmvscsi.c +1 -1
@@ -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,
drivers/scsi/lpfc/lpfc_hbadisc.c +1 -1
@@ -731,7 +731,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 ;
drivers/scsi/qla2xxx/qla_os.c +1 -1
@@ -4828,7 +4828,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 ()) {
drivers/staging/android/binder.c +1 -1
@@ -441,7 +441,7 @@ static void binder_set_nice(long nice)"%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); }
drivers/staging/lustre/lustre/llite/lloop.c +1 -1
@@ -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 ;
fs/ocfs2/cluster/heartbeat.c +1 -1
@@ -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 ();
kernel/locking/locktorture.c +1 -1
@@ -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);
kernel/workqueue.c +3 -3
@@ -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, };
mm/huge_memory.c +1 -1
@@ -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 ();
PATCH v3 5/17 locktorture: Replace hardcoding of 19 with MAX_NICE.
In reply to Dongsheng Yang--- kernel/locking/locktorture.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
kernel/locking/locktorture.c +1 -1
@@ -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);
Signature · 1 line
1.8.2.1
PATCH v3 6/17 tools/mq_perf_tests: Replace hardcoding of -20 with MIN_NICE.
In reply to Dongsheng Yang--- tools/testing/selftests/mqueue/mq_perf_tests.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
tools/testing/selftests/mqueue/mq_perf_tests.c +2 -2
@@ -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[])
Signature · 1 line
1.8.2.1
PATCH v3 7/17 mm: Replace hardcoding of 19 with MAX_NICE.
In reply to Dongsheng Yang--- mm/huge_memory.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
mm/huge_memory.c +1 -1
@@ -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 ();
Signature · 7 lines
1.8.2.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>
PATCH v3 8/17 ioprio: Add a macro named NICE_TO_IOPRIO.
In reply to Dongsheng YangAs 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.
--- include/linux/ioprio.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
include/linux/ioprio.h +6 -1
@@ -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)); }/*
Signature · 1 line
1.8.2.1
Re: [PATCH 08/17] ioprio: Add a macro named NICE_TO_IOPRIO.
Quoted 17 lines · 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 <[email protected]>--- include/linux/ioprio.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)include/linux/ioprio.h +0
-0
include/linux/ioprio.h line 24
Quoted 7 lines
include/linux/ioprio.h +4
-0@@ -18,6 +18,11 @@#define ioprio_valid (mask) (IOPRIO_PRIO_CLASS((mask)) != IOPRIO_CLASS_NONE)/* +* Convert the nice value [19,-20] to io priority value [0,7]. +*/ +#define NICE_TO_IOPRIO (nice) (nice_to_rlimit(nice) / 5) +
Hi Peter,
As you asked, why I added this macro in ioprio.h? And why it is better?
IMO, there is a policy to convert a nice value to io priority, that
divide the nice
range into 8 parts by 5. I think this is a common requirement for lots of io subsystem. So I implement this policy with NICE_TO_IOPRIO.
About function task_nice_iopiro(), it is to get the iopriority of a
task. It should get the
nice value at first and then use the NICE_TO_IOPRIO to convert it to ioprio in the policy.
When our policy changed, we need only update the center controller, NICE_TO_IOPRIO. Keep the others work well.
This is my point about this patch. I wish it explained better. Thanx.
Quoted 13 lines
include/linux/ioprio.h +2
-1+/* * 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)); }/*
Peter Zijlstra
maintainerRe: [PATCH 08/17] ioprio: Add a macro named NICE_TO_IOPRIO.
In reply to Dongsheng YangQuoted 29 lines · 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 <[email protected]>--- include/linux/ioprio.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)include/linux/ioprio.h +5
-0@@ -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
include/linux/ioprio.h enum { · line 61
Quoted 6 lines
include/linux/ioprio.h +1
-1@@ -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)); }
I'm still not seeing the point of adding that macro; if you want more documentation; just add the comment.
PATCH v3 9/17 fs/hearbeat: Replace hardcoding of -20 with MIN_NICE.
In reply to Dongsheng Yang--- fs/ocfs2/cluster/heartbeat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
fs/ocfs2/cluster/heartbeat.c +1 -1
@@ -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 ();
Signature · 1 line
1.8.2.1
PATCH v3 10/17 driver/block: Replace hardcoding of -20 with MIN_NICE.
In reply to Dongsheng Yang--- drivers/block/loop.c | 2 +- drivers/block/nbd.c | 2 +- drivers/block/pktcdvd.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
drivers/block/loop.c +1 -1
@@ -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)) {
drivers/block/nbd.c +1 -1
@@ -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,
drivers/block/pktcdvd.c +1 -1
@@ -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 (;;) {
Signature · 1 line
1.8.2.1
PATCH v3 11/17 driver/char: Replace hardcoding of 19 with MAX_NICE.
In reply to Dongsheng Yang--- drivers/char/ipmi/ipmi_si_intf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/char/ipmi/ipmi_si_intf.c +1 -1
@@ -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;
Signature · 1 line
1.8.2.1
PATCH v3 12/17 drivers/s390: Replace hardcoding of 19 with MAX_NICE.
In reply to Dongsheng Yang--- drivers/s390/crypto/ap_bus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/s390/crypto/ap_bus.c +1 -1
@@ -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 ;
Signature · 1 line
1.8.2.1
PATCH v3 13/17 sched/prio: Add an inline function named rlimit_to_nice in prio.h.
In reply to Dongsheng YangThis patch add an inline function named rlimit_to_nice to convert rlimit style value in [1, 40] to nice value in [-20, 19].
--- include/linux/sched/prio.h | 8 ++++++++ 1 file changed, 8 insertions(+)
include/linux/sched/prio.h +8 -0
@@ -49,4 +49,12 @@ static inline long nice_to_rlimit(long nice) return (MAX_NICE - nice + 1); } +/* +* Convert rlimit style value [1,40] to nice value [-20, 19]. +*/ +static inline long rlimit_to_nice (long prio) +{ +return (MAX_NICE - prio +1 ); +} +#endif /* _SCHED_PRIO_H */
Signature · 1 line
1.8.2.1
PATCH v3 14/17 driver/staging/android: Use rlimit_to_nice to replace opened code implementation.
In reply to Dongsheng YangThere 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.
--- drivers/staging/android/binder.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/staging/android/binder.c +2 -2
@@ -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); }
Signature · 1 line
1.8.2.1
PATCH v3 15/17 driver/staging/lustre: Replace hardcoding of -20 with MIN_NICE.
In reply to Dongsheng Yang--- drivers/staging/lustre/lustre/llite/lloop.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/staging/lustre/lustre/llite/lloop.c +1 -1
@@ -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 ;
Signature · 1 line
1.8.2.1
PATCH v3 16/17 driver/scsi: Replace hardcoding of -20 with MIN_NICE.
In reply to Dongsheng Yang--- 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(-)
drivers/scsi/bnx2fc/bnx2fc_fcoe.c +2 -2
@@ -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 ();
drivers/scsi/bnx2i/bnx2i_hwi.c +1 -1
@@ -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);
drivers/scsi/fcoe/fcoe.c +1 -1
@@ -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 ()) {
drivers/scsi/ibmvscsi/ibmvfc.c +1 -1
@@ -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,
drivers/scsi/ibmvscsi/ibmvscsi.c +1 -1
@@ -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,
drivers/scsi/lpfc/lpfc_hbadisc.c +1 -1
@@ -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 ;
drivers/scsi/qla2xxx/qla_os.c +1 -1
@@ -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 ()) {
Signature · 1 line
1.8.2.1
PATCH v3 17/17 sched: Get rid of opened code implementation of funtion nice_to_rlimit().
In reply to Dongsheng Yang--- kernel/sched/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
kernel/sched/core.c +1 -1
@@ -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 ));
Signature · 1 line
1.8.2.1
Re: [PATCH 17/17] sched: Get rid of opened code implementation of funtion nice_to_rlimit().
So the patch title has two typos and a superfluous period.
I really don't want to apply patches that only get written but don't get read...
Thanks,
Ingo
Re: [PATCH 17/17] sched: Get rid of opened code implementation of funtion nice_to_rlimit().
Quoted 1 line · Ingo Molnar
So the patch title has two typos and a superfluous period.
Really sorry for that. :( I will update it right now.
Quoted 2 lines
I really don't want to apply patches that only get written but don't get read...
Spelling double-check was added in my checklist, wish it can make my work better. :)
Dongsheng
Quoted 5 lines
Thanks,
Ingo
Re: [PATCH 17/17] sched: Get rid of opened code implementation of funtion nice_to_rlimit().
Quoted 4 lines · Dongsheng Yang
Quoted 1 line · Ingo Molnar
So the patch title has two typos and a superfluous period.
Really sorry for that. :( I will update it right now.
Please wait for the next -tip update before you resend the series - I've applied a handful of other patches from you, which will reduce the size of your queue.
Thanks,
Ingo
Re: [PATCH 17/17] sched: Get rid of opened code implementation of funtion nice_to_rlimit().
Quoted 8 lines · Ingo Molnar
Quoted 3 lines · Dongsheng Yang
Quoted 1 line · Ingo Molnar
So the patch title has two typos and a superfluous period.
Really sorry for that. :( I will update it right now.
Please wait for the next -tip update before you resend the series - I've applied a handful of other patches from you, which will reduce the size of your queue.
Okey, thanx !
Quoted 5 lines
Thanks,
Ingo
Hi Peter,
Let me post more explanation about this patchset.
This series of patches here is to git rid of hardcoding of nice value and collect the logic control in prio.h.
Currently, in tip tree, we can get 36 results with the below command:
# git grep -n -w -E "19|20"|grep -P "_nice" -i drivers/block/loop.c:551: set_user_nice(current, -20); drivers/block/nbd.c:536: set_user_nice(current, -20); drivers/block/pktcdvd.c:1466: set_user_nice(current, -20); drivers/char/ipmi/ipmi_si_intf.c:1002: set_user_nice(current, 19); drivers/s390/crypto/ap_bus.c:1806: set_user_nice(current, 19); drivers/scsi/bnx2fc/bnx2fc_fcoe.c:467: set_user_nice(current, -20); drivers/scsi/bnx2fc/bnx2fc_fcoe.c:605: set_user_nice(current, -20); drivers/scsi/bnx2i/bnx2i_hwi.c:1873: set_user_nice(current, -20); drivers/scsi/fcoe/fcoe.c:1875: set_user_nice(current, -20); drivers/scsi/ibmvscsi/ibmvfc.c:4518: set_user_nice(current, -20); drivers/scsi/ibmvscsi/ibmvscsi.c:2216: set_user_nice(current, -20); drivers/scsi/lpfc/lpfc_hbadisc.c:736: set_user_nice(current, -20); drivers/scsi/qla2xxx/qla_os.c:4759: set_user_nice(current, -20); drivers/staging/android/binder.c:439: min_nice = 20 - current->signal->rlim[RLIMIT_NICE].rlim_cur; drivers/staging/android/binder.c:444: if (min_nice < 20) drivers/staging/lustre/lustre/llite/lloop.c:410: set_user_nice(current, -20); fs/ocfs2/cluster/heartbeat.c:1110: set_user_nice(current, -20); include/linux/ioprio.h:55: return (task_nice(task) + 20) / 5; kernel/rcu/torture.c:808: set_user_nice(current, 19); kernel/rcu/torture.c:874: set_user_nice(current, 19); kernel/rcu/torture.c:990: set_user_nice(current, 19); kernel/rcu/torture.c:1587: set_user_nice(current, 19); kernel/sched/core.c:3001: if (TASK_NICE(p) == nice || nice < -20 || nice > 19) kernel/sched/core.c:3618: attr->sched_nice = clamp(attr->sched_nice, -20, 19); kernel/sched/sched.h:32:#define PRIO_TO_NICE(prio) ((prio) - MAX_RT_PRIO - 20) kernel/sys.c:253: niceval = 20 - task_nice(p); kernel/sys.c:264: niceval = 20 - task_nice(p); kernel/sys.c:280: niceval = 20 - task_nice(p); kernel/trace/ring_buffer_benchmark.c:43:static int producer_nice = 19; kernel/trace/ring_buffer_benchmark.c:44:static int consumer_nice = 19; kernel/trace/ring_buffer_benchmark.c:311: producer_nice == 19 && consumer_nice == 19) kernel/workqueue.c:105: RESCUER_NICE_LEVEL = -20, kernel/workqueue.c:106: HIGHPRI_NICE_LEVEL = -20, mm/huge_memory.c:2806: set_user_nice(current, 19); tools/testing/selftests/mqueue/mq_perf_tests.c:532: cur_nice = -20;
It means there are 36 *men* who can decide the max_nice or min_nice.
This patchset collect this power back to prio.h, then the other subsystems should use the macros in prio.h, rather than decide it by themselves.
In addition, we use macro such as NICE_TO_IOPRIO to replace a expression “(task_nice(task) + 20) / 5”, I believe the name of macro means better.
After this patchset applied:
# git grep -n -w -E "19|20"|grep -P "_nice" -i include/linux/sched/prio.h:4:#define MAX_NICE 19 include/linux/sched/prio.h:5:#define MIN_NICE -20
It looks more safe and more extensibal.
PS: Peter, I see you are busy and this series of patches seems really trivial. I wish you can give me your opinion about it when you have a time. No rush at all.
Thanx. :)
Quoted 67 lines · Dongsheng Yang
Hi all,
This patchset is all about priority.1. Add two inline functions in
prio.hnamednice_to_rlimitandrlimit_to_nice. They are converting the value between nice value [-20, 19] and rlimit style value [1, 40].
2. Add a macro inioprio.hnamedNICE_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_NICEorMAX_NICE.Changelog:
-v2:
*Splite [2/16] into two patches, one is about the whitespace changes, and
the other is aboutnice_to_rlimit().
-v1:
*Implementnice_to_rlimitandrlimit_to_nicewith inline functions
rather than macro.
*Add a patch[16/16] to replace opened code implement withnice_to_rlimit().Dongsheng Yang (16):
sched/prio: Add a inline function namednice_to_rlimit()inprio.h. kernel/sys: Replace opened code implementation withnice_to_rlimit().
workqueue: Replace hardcoding of -20 withMIN_NICE.
locktorture: Replace hardcoding of 19 withMAX_NICE.tools/mq_perf_tests: Replace hardcoding of -20 withMIN_NICE.
mm: Replace hardcoding of 19 withMAX_NICE.
ioprio: Add a macro namedNICE_TO_IOPRIO.
fs/hearbeat: Replace hardcoding of -20 withMIN_NICE. driver/block: Replace hardcoding of -20 withMIN_NICE. driver/char: Replace hardcoding of 19 withMAX_NICE.drivers/s390: Replace hardcoding of 19 withMAX_NICE. sched/prio: Add an inline function namedrlimit_to_niceinprio.h. driver/staging/android: Userlimit_to_niceto replace opened code
implementation.
driver/staging/lustre: Replace hardcoding of -20 withMIN_NICE. driver/scsi: Replace hardcoding of -20 withMIN_NICE.
sched: Get rid of opened code implementation of funtionnice_to_rlimit().Joe Perches (1):
kernel/sys: Fix the indent issue in switch.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(-)
Peter Zijlstra
maintainerI picked up all except:
2 - whcih I don't think should go through a scheduler tree
6 - its tools/ bits, the changelog wasn't clear if the MIN/MAX_NICE
macros were uapi visible and I couldn't be bothered to figure it out.
8 - I don't like the pointless macro
Hi Peter,
Quoted 3 lines · Peter Zijlstra
I picked up all except:
2 - whcih I don't think should go through a scheduler tree
I will send it to sys maintainers.
Quoted 2 lines
6 - its
tools/bits, the changelog wasn't clear if the MIN/MAX_NICE
macros were uapi visible and I couldn't be bothered to figure it out.
Wow, yes it is not visible.
Quoted 1 line
8 - I don't like the pointless macro
Okey, Thanx Peter.
Quoted 7 lines
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Quoted 3 lines · Peter Zijlstra
I picked up all except:
2 - whcih I don't think should go through a scheduler tree
Peter, as you did not pick the patch 2, there will be a conflict when you apply [3/17]. I sent a v2 for [3/17], which does not depend to [2/17].
Please replace [3/17] with the V2 one.
Thanx.
Quoted 10 lines
6 - its
tools/bits, the changelog wasn't clear if the MIN/MAX_NICE
macros were uapi visible and I couldn't be bothered to figure it out.
8 - I don't like the pointless macro--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/