linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH,TRIVIAL] unused task_struct.shared_unblocked variable.
@ 2002-09-16 16:00 Oleg Nesterov
  0 siblings, 0 replies; only message in thread
From: Oleg Nesterov @ 2002-09-16 16:00 UTC (permalink / raw)
  To: linux-kernel; +Cc: Ingo Molnar

Hello.

The task_struct.shared_unblocked variable is unused.

The 'old_state' variable in try_to_wake_up() is unneeded.

The third recheck of rq->nr_running after load_balance()
in schedule() is unneeded. Compiler should optimize it,
but it looks slightly confusing (imho).

2.5.34 introduced this change in force_sig_info()

-	return send_sig_info(sig, info, t);
+	return send_sig_info(sig, (void *)1, t);

I beleive, it is wrong, info can carry useful information
from do_page_fault, traps. And this (info *)1 does not
prevent send_signal() from allocation of siginfo struct.
Ingo, could you please clarify?

Oleg.

--- linux-2.5.35/include/linux/sched.h.orig	Mon Sep 16 18:11:32 2002
+++ linux-2.5.35/include/linux/sched.h	Mon Sep 16 18:12:21 2002
@@ -374,7 +374,7 @@
 	spinlock_t sigmask_lock;	/* Protects signal and blocked */
 	struct signal_struct *sig;
 
-	sigset_t blocked, real_blocked, shared_unblocked;
+	sigset_t blocked, real_blocked;
 	struct sigpending pending;
 
 	unsigned long sas_ss_sp;
--- linux-2.5.35/kernel/sched.c.orig	Mon Sep 16 13:36:59 2002
+++ linux-2.5.35/kernel/sched.c	Mon Sep 16 18:39:11 2002
@@ -401,12 +401,10 @@
 {
 	unsigned long flags;
 	int success = 0;
-	long old_state;
 	runqueue_t *rq;
 
 repeat_lock_task:
 	rq = task_rq_lock(p, &flags);
-	old_state = p->state;
 	if (!p->array) {
 		/*
 		 * Fast-migrate the task if it's not running or runnable
@@ -420,7 +418,7 @@
 			task_rq_unlock(rq, &flags);
 			goto repeat_lock_task;
 		}
-		if (old_state == TASK_UNINTERRUPTIBLE)
+		if (p->state == TASK_UNINTERRUPTIBLE)
 			rq->nr_uninterruptible--;
 		activate_task(p, rq);
 
@@ -977,12 +975,13 @@
 	if (unlikely(!rq->nr_running)) {
 #if CONFIG_SMP
 		load_balance(rq, 1);
-		if (rq->nr_running)
-			goto pick_next_task;
+		if (!rq->nr_running)
 #endif
-		next = rq->idle;
-		rq->expired_timestamp = 0;
-		goto switch_tasks;
+		{
+			next = rq->idle;
+			rq->expired_timestamp = 0;
+			goto switch_tasks;
+		}
 	}
 
 	array = rq->active;
--- linux-2.5.35/kernel/signal.c.orig	Mon Sep 16 19:31:23 2002
+++ linux-2.5.35/kernel/signal.c	Mon Sep 16 19:32:53 2002
@@ -783,7 +783,7 @@
 	recalc_sigpending_tsk(t);
 	spin_unlock_irqrestore(&t->sigmask_lock, flags);
 
-	return send_sig_info(sig, (void *)1, t);
+	return send_sig_info(sig, info, t);
 }
 
 static int

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-09-16 15:50 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-09-16 16:00 [PATCH,TRIVIAL] unused task_struct.shared_unblocked variable Oleg Nesterov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).