All of lore.kernel.org
 help / color / mirror / Atom feed
From: Con Kolivas <kernel@kolivas.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: "Antonino A. Daplas" <adaplas@gmail.com>, linux-kernel@vger.kernel.org
Subject: Re: 2.6.21-rc5-mm4
Date: Thu, 5 Apr 2007 08:38:45 +1000	[thread overview]
Message-ID: <200704050838.46032.kernel@kolivas.org> (raw)
In-Reply-To: <20070404151027.29dfec58.akpm@linux-foundation.org>

On Thursday 05 April 2007 08:10, Andrew Morton wrote:
> Thanks - that'll be the CPU scheduler changes.
>
> Con has produced a patch or two which might address this but afaik we don't
> yet have a definitive fix?
>
> I believe that reverting
> sched-implement-staircase-deadline-cpu-scheduler-staircase-improvements.pat
>ch will prevent it.

I posted a definitive fix which Michal tested for me offlist. Subject was:
 [PATCH] sched: implement staircase deadline cpu scheduler improvements fix

Sorry about relative noise prior to that. Akpm please pick it up.

Here again just in case.

---
Use of memset was bogus. Fix it.

Fix exiting recalc_task_prio without p->array being updated.

Microoptimisation courtesy of Dmitry Adamushko <dmitry.adamushko@gmail.com>

Signed-off-by: Con Kolivas <kernel@kolivas.org>

---
 kernel/sched.c |   17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

Index: linux-2.6.21-rc5-mm4/kernel/sched.c
===================================================================
--- linux-2.6.21-rc5-mm4.orig/kernel/sched.c	2007-04-04 12:14:29.000000000 +1000
+++ linux-2.6.21-rc5-mm4/kernel/sched.c	2007-04-04 12:49:39.000000000 +1000
@@ -683,11 +683,13 @@ static void dequeue_task(struct task_str
  * The task is being queued on a fresh array so it has its entitlement
  * bitmap cleared.
  */
-static inline void task_new_array(struct task_struct *p, struct rq *rq)
+static void task_new_array(struct task_struct *p, struct rq *rq,
+			   struct prio_array *array)
 {
 	bitmap_zero(p->bitmap, PRIO_RANGE);
 	p->rotation = rq->prio_rotation;
 	p->time_slice = p->quota;
+	p->array = array;
 }
 
 /* Find the first slot from the relevant prio_matrix entry */
@@ -709,6 +711,8 @@ static inline int next_entitled_slot(str
 	DECLARE_BITMAP(tmp, PRIO_RANGE);
 	int search_prio, uprio = USER_PRIO(p->static_prio);
 
+	if (!rq->prio_level[uprio])
+		rq->prio_level[uprio] = MAX_RT_PRIO;
 	/*
 	 * Only priorities equal to the prio_level and above for their
 	 * static_prio are acceptable, and only if it's not better than
@@ -736,11 +740,8 @@ static inline int next_entitled_slot(str
 
 static void queue_expired(struct task_struct *p, struct rq *rq)
 {
-	p->array = rq->expired;
-	task_new_array(p, rq);
+	task_new_array(p, rq, rq->expired);
 	p->prio = p->normal_prio = first_prio_slot(p);
-	p->time_slice = p->quota;
-	p->rotation = rq->prio_rotation;
 }
 
 #ifdef CONFIG_SMP
@@ -800,9 +801,9 @@ static void recalc_task_prio(struct task
 			queue_expired(p, rq);
 			return;
 		} else
-			task_new_array(p, rq);
+			task_new_array(p, rq, array);
 	} else
-		task_new_array(p, rq);
+		task_new_array(p, rq, array);
 
 	queue_prio = next_entitled_slot(p, rq);
 	if (queue_prio >= MAX_PRIO) {
@@ -3445,7 +3446,7 @@ EXPORT_SYMBOL(sub_preempt_count);
 
 static inline void reset_prio_levels(struct rq *rq)
 {
-	memset(rq->prio_level, MAX_RT_PRIO, ARRAY_SIZE(rq->prio_level));
+	memset(rq->prio_level, 0, sizeof(int) * PRIO_RANGE);
 }
 
 /*

-- 
-ck

  reply	other threads:[~2007-04-04 22:39 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-03  5:47 2.6.21-rc5-mm4 Andrew Morton
2007-04-03 12:57 ` 2.6.21-rc5-mm4 Jiri Kosina
2007-04-03 15:11   ` 2.6.21-rc5-mm4 Kok, Auke
2007-04-03 16:30     ` 2.6.21-rc5-mm4 Jiri Kosina
2007-04-03 17:19       ` 2.6.21-rc5-mm4 Kok, Auke
2007-04-03 17:42         ` 2.6.21-rc5-mm4 Jiri Kosina
2007-04-04 16:10           ` 2.6.21-rc5-mm4 Jiri Kosina
2007-04-04 17:22             ` 2.6.21-rc5-mm4 Eric W. Biederman
2007-04-06 13:23               ` 2.6.21-rc5-mm4 Jiri Kosina
2007-04-06 14:32                 ` 2.6.21-rc5-mm4 Eric W. Biederman
2007-04-03 16:11 ` 2.6.21-rc5-mm4 Michal Piotrowski
2007-04-03 22:20   ` 2.6.21-rc5-mm4 Michal Piotrowski
2007-04-03 22:31     ` 2.6.21-rc5-mm4 Con Kolivas
2007-04-03 23:31       ` 2.6.21-rc5-mm4 Michal Piotrowski
2007-04-04 13:22         ` [PATCH] sched: implement staircase deadline cpu scheduler improvements fix Con Kolivas
2007-04-03 19:48 ` 2.6.21-rc5-mm4 Randy Dunlap
2007-04-03 19:51   ` 2.6.21-rc5-mm4 Davide Libenzi
2007-04-03 20:31 ` 2.6.21-rc5-mm4 Badari Pulavarty
2007-04-03 20:40   ` 2.6.21-rc5-mm4 Christoph Lameter
2007-04-03 22:53     ` 2.6.21-rc5-mm4 Badari Pulavarty
2007-04-03 22:59       ` 2.6.21-rc5-mm4 Christoph Lameter
2007-04-03 23:40         ` 2.6.21-rc5-mm4 Badari Pulavarty
2007-04-03 23:41           ` 2.6.21-rc5-mm4 Christoph Lameter
2007-04-04  1:16       ` 2.6.21-rc5-mm4 Christoph Lameter
2007-04-04 15:12         ` 2.6.21-rc5-mm4 Badari Pulavarty
2007-04-04 15:27           ` 2.6.21-rc5-mm4 Badari Pulavarty
2007-04-04 17:13           ` 2.6.21-rc5-mm4 (SLUB powerpc) Christoph Lameter
2007-04-04 17:33             ` Badari Pulavarty
2007-04-04 17:35               ` Christoph Lameter
2007-04-04 20:53                 ` Badari Pulavarty
2007-04-03 21:55 ` 2.6.21-rc5-mm4 Badari Pulavarty
2007-04-03 23:19   ` 2.6.21-rc5-mm4 Badari Pulavarty
2007-04-03 23:27     ` 2.6.21-rc5-mm4 Christoph Lameter
2007-04-03 23:38       ` 2.6.21-rc5-mm4 Badari Pulavarty
2007-04-03 23:40         ` 2.6.21-rc5-mm4 Christoph Lameter
2007-04-03 23:51           ` 2.6.21-rc5-mm4 Badari Pulavarty
2007-04-03 23:55             ` 2.6.21-rc5-mm4 Christoph Lameter
2007-04-04 14:53               ` 2.6.21-rc5-mm4 Badari Pulavarty
2007-04-04 17:03                 ` 2.6.21-rc5-mm4 (SLUB) Christoph Lameter
2007-04-04 18:02                   ` Badari Pulavarty
2007-04-04 18:04                     ` Christoph Lameter
2007-04-04 18:22                       ` Christoph Lameter
2007-04-04 22:53                         ` Badari Pulavarty
2007-04-04 22:59                           ` Christoph Lameter
2007-04-04 23:42                             ` Badari Pulavarty
2007-04-05  0:31                               ` Christoph Lameter
2007-04-05  2:44                                 ` Badari Pulavarty
2007-04-05  3:15                                   ` Christoph Lameter
2007-04-05  4:29                                   ` Christoph Lameter
2007-04-05 15:16                                     ` Badari Pulavarty
2007-04-05 18:19                                       ` Christoph Lameter
2007-04-13 15:13                       ` [PATCH] cache_k8_northbridges() overflows beyond allocation (Was: 2.6.21-rc5-mm4 (SLUB)) Badari Pulavarty
2007-04-13 15:45                         ` Andi Kleen
2007-04-13 16:42                           ` Chuck Ebbert
2007-04-13 16:52                             ` Andi Kleen
2007-04-13 16:57                           ` Andrew Morton
2007-04-13 18:07                         ` Christoph Lameter
2007-04-04 18:09                     ` 2.6.21-rc5-mm4 (SLUB) Christoph Lameter
2007-04-03 22:40 ` 2.6.21-rc5-mm4 J.A. Magallón
2007-04-03 22:51   ` 2.6.21-rc5-mm4 Andrew Morton
2007-04-03 22:51     ` 2.6.21-rc5-mm4 Andrew Morton
2007-04-03 22:58     ` 2.6.21-rc5-mm4 J.A. Magallón
2007-04-03 23:22       ` 2.6.21-rc5-mm4 Valdis.Kletnieks
2007-04-03 23:43         ` 2.6.21-rc5-mm4 J.A. Magallón
2007-04-04  1:35 ` 2.6.21-rc5-mm4 Valdis.Kletnieks
2007-04-04  2:20   ` 2.6.21-rc5-mm4 Randy Dunlap
2007-04-04  2:46     ` 2.6.21-rc5-mm4 Valdis.Kletnieks
2007-04-04  3:37       ` 2.6.21-rc5-mm4 Randy Dunlap
2007-04-04 17:55         ` 2.6.21-rc5-mm4 Valdis.Kletnieks
2007-04-05 11:14           ` 2.6.21-rc5-mm4 Sam Ravnborg
2007-04-04 15:25 ` [-mm patch] net/: possible cleanups Adrian Bunk
2007-04-04 15:25 ` [-mm patch] unexport pci_proc_attach_device Adrian Bunk
2007-04-04 21:56 ` 2.6.21-rc5-mm4 Antonino A. Daplas
2007-04-04 22:10   ` 2.6.21-rc5-mm4 Andrew Morton
2007-04-04 22:38     ` Con Kolivas [this message]
2007-04-04 23:55       ` 2.6.21-rc5-mm4 Antonino A. Daplas
2007-04-05  0:56 ` 2.6.21-rc5-mm4 Antonino A. Daplas
2007-04-05 13:53 ` [-mm patch] pcm_native: lockdep warning when launching jack Frederik Deweerdt
2007-04-05 15:00   ` Takashi Iwai
2007-04-05 16:33 ` RAID1 "out of memory" error, was Re: 2.6.21-rc5-mm4 Reuben Farrelly
2007-04-05 20:21   ` Andrew Morton
2007-04-06  5:34     ` Dan Williams
2007-04-11  3:31   ` Neil Brown
2007-04-05 17:02 ` 2.6.21-rc5-mm4 Valdis.Kletnieks
2007-04-05 20:31   ` 2.6.21-rc5-mm4 Andrew Morton
2007-04-06 15:26     ` 2.6.21-rc5-mm4 Valdis.Kletnieks
2007-04-06 19:33       ` 2.6.21-rc5-mm4 Andrew Morton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200704050838.46032.kernel@kolivas.org \
    --to=kernel@kolivas.org \
    --cc=adaplas@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.