lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <Pine.LNX.4.58.0710202211510.21872@gandalf.stny.rr.com> Date: Sat, 20 Oct 2007 22:13:19 -0400 (EDT) From: Steven Rostedt <rostedt@...dmis.org> To: Dmitry Adamushko <dmitry.adamushko@...il.com> cc: LKML <linux-kernel@...r.kernel.org>, RT <linux-rt-users@...r.kernel.org>, Linus Torvalds <torvalds@...ux-foundation.org>, Andrew Morton <akpm@...ux-foundation.org>, Ingo Molnar <mingo@...e.hu>, Thomas Gleixner <tglx@...utronix.de>, Gregory Haskins <ghaskins@...ell.com>, Peter Zijlstra <a.p.zijlstra@...llo.nl> Subject: Re: [patch 1/8] Add rt_nr_running accounting Hi Dmitry, -- On Sat, 20 Oct 2007, Dmitry Adamushko wrote: > On 19/10/2007, Steven Rostedt <rostedt@...dmis.org> wrote: > > [ ... ] > > Index: linux-test.git/kernel/sched.c > > =================================================================== > > --- linux-test.git.orig/kernel/sched.c 2007-10-19 12:32:39.000000000 -0400 > > +++ linux-test.git/kernel/sched.c 2007-10-19 12:33:09.000000000 -0400 > > @@ -300,6 +300,8 @@ struct rq { > > */ > > unsigned long nr_uninterruptible; > > > > + unsigned long rt_nr_running; > > could it be a part of the 'struct rt_rq' instead? Maybe. I didn't really look too hard to where to put it. Currently, in the -rt patch, it is located in struct rq, so I just did the same. I may be able to move it. > > > > > +static inline void inc_rt_tasks(struct task_struct *p, struct rq *rq) > > +{ > > + if (rt_task(p)) > > + rq->rt_nr_running++; > > +} > > + > > +static inline void dec_rt_tasks(struct task_struct *p, struct rq *rq) > > +{ > > + if (rt_task(p)) { > > + WARN_ON(!rq->rt_nr_running); > > + rq->rt_nr_running--; > > + } > > +} > > + > > static void enqueue_task_rt(struct rq *rq, struct task_struct *p, int wakeup) > > { > > struct rt_prio_array *array = &rq->rt.active; > > > > list_add_tail(&p->run_list, array->queue + p->prio); > > __set_bit(p->prio, array->bitmap); > > + > > + inc_rt_tasks(p, rq); > > why do you need the rt_task(p) check in {inc,dec}_rt_tasks() ? Me being paranoid ;-) > > {enqueue,dequeue}_task_rt() seem to be the only callers and they will > crash (or corrupt memory) anyway in the case of ! rt_task(p) (sure, > this case would mean something is broken somewhere wrt sched_class > handling). Exactly, I was just being safe. We could add a WARN_ON(!rt_task) there. -- Steve - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists