All of lore.kernel.org
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@osdl.org>
To: linux-ia64@vger.kernel.org
Subject: RE: git pull on ia64 linux tree
Date: Mon, 12 Sep 2005 04:05:27 +0000	[thread overview]
Message-ID: <Pine.LNX.4.58.0509112051530.3242@g5.osdl.org> (raw)
In-Reply-To: <200504222203.j3MM3fV17003@unix-os.sc.intel.com>



On Sun, 11 Sep 2005, Linus Torvalds wrote:
>
> In other words, anybody who changes rq->curr without getting the lock IS 
> BUGGY. 

Just a few minutes of looking around in kernel/sched.c should have made 
this clear.

For example, look at 

	wait_task_inactive(task_t *p)

which is used by ptrace to make sure that the task we're going to ptrace 
is quiescent.

So walk through it. Let's say that CPU#0 is the ptracer, and is waiting 
for its child to become inactive on CPU#1. It gets the rq spinlock, and 
because your MCA "stole away" the thing momentarily and did its own magic 
task switch, we do _not_ see it as being "task_running()" on CPU#1 any 
more. So we go on and start doing ptrace operations.

But oops - it came back. It _was_ still running on CPU#1, and it hasn't 
actually had time to save all the register state away on the stack yet. So 
ptrace gets the wrong values altogether, because the rq->curr hacking made 
the value that we _depended_ on being stable not be stable at all.

Or, if that felt a bit too esoteric, I suspect that every _single_ use of 
"task_rq_lock()" is a potential for bugs. IOW, by doing a "task switch" 
the wrong way, you've basically invalidated pretty much all of the real 
scheduler.

		Linus

  parent reply	other threads:[~2005-09-12  4:05 UTC|newest]

Thread overview: 151+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-22 22:03 git pull on ia64 linux tree tony.luck
2005-04-22 22:34 ` Linus Torvalds
2005-04-24  5:02   ` Sanjoy Mahajan
2005-04-25 21:31 ` tony.luck
2005-04-25 21:50 ` Luck, Tony
2005-07-07 16:01 ` Luck, Tony
2005-08-17 17:57 ` Luck, Tony
2005-08-23 15:01 ` Luck, Tony
2005-08-30 23:27 ` Luck, Tony
2005-08-31  3:10 ` Keith Owens
2005-08-31  3:56 ` Tony Luck
2005-08-31 11:28 ` Robin Holt
2005-09-11 22:43 ` Luck, Tony
2005-09-11 22:56 ` Linus Torvalds
2005-09-12  0:17 ` Keith Owens
2005-09-12  1:11 ` Luck, Tony
2005-09-12  3:19 ` Linus Torvalds
2005-09-12  3:24 ` Linus Torvalds
2005-09-12  3:37 ` Linus Torvalds
2005-09-12  4:05 ` Linus Torvalds [this message]
2005-09-12  4:39 ` Keith Owens
2005-09-12 14:49 ` Linus Torvalds
2005-09-12 15:13 ` Keith Owens
2005-09-12 17:51 ` David Mosberger-Tang
2005-10-11 22:11 ` Luck, Tony
2005-10-28 23:52 ` Luck, Tony
2005-10-28 23:57 ` Linus Torvalds
2005-10-29  0:01 ` Luck, Tony
2005-10-31 19:31 ` Luck, Tony
2005-11-07 22:09 ` Luck, Tony
2005-11-09  5:52 ` Luck, Tony
2005-11-10 23:27 ` Luck, Tony
2005-11-11 20:07 ` Luck, Tony
2005-11-29 21:56 ` Luck, Tony
2005-12-12 18:20 ` Luck, Tony
2005-12-13 20:12 ` Luck, Tony
2005-12-14 21:40 ` Luck, Tony
2005-12-16 21:12 ` Luck, Tony
2006-01-05 22:09 ` Luck, Tony
2006-01-14 13:43 ` Luck, Tony
2006-01-17  4:30 ` Luck, Tony
2006-01-20  0:03 ` Luck, Tony
2006-02-09  0:36 ` Luck, Tony
2006-02-10  0:56 ` Luck, Tony
2006-02-17  0:13 ` Luck, Tony
2006-02-28 19:03 ` Luck, Tony
2006-03-08 19:54 ` Luck, Tony
2006-03-08 20:01 ` Matthew Wilcox
2006-03-08 20:47 ` Luck, Tony
2006-03-08 21:56 ` Bjorn Helgaas
2006-03-09  9:50 ` Jes Sorensen
2006-03-11  0:34 ` Luck, Tony
2006-03-21 18:55 ` Luck, Tony
2006-03-24 22:57 ` Luck, Tony
2006-03-24 23:01 ` Luck, Tony
2006-03-26 19:01 ` Chen, Kenneth W
2006-03-27  0:16 ` KAMEZAWA Hiroyuki
2006-03-30 18:42 ` Luck, Tony
2006-04-01  1:11 ` Luck, Tony
2006-04-10 18:58 ` Luck, Tony
2006-04-13 23:01 ` Luck, Tony
2006-04-27 23:38 ` Luck, Tony
2006-05-05 20:04 ` Luck, Tony
2006-05-17 21:16 ` Luck, Tony
2006-06-23 22:24 ` Luck, Tony
2006-06-28 19:03 ` Luck, Tony
2006-08-03 19:18 ` Luck, Tony
2006-08-04 18:20 ` Luck, Tony
2006-08-29 17:39 ` Luck, Tony
2006-09-08 19:11 ` Luck, Tony
2006-09-27  0:15 ` Luck, Tony
2006-10-06 17:46 ` Luck, Tony
2006-10-06 18:09 ` Linus Torvalds
2006-10-18 15:52 ` Luck, Tony
2006-11-01  0:56 ` Luck, Tony
2006-11-16 19:30 ` Luck, Tony
2006-12-07  0:10 ` Luck, Tony
2006-12-07 23:13 ` Luck, Tony
2006-12-07 23:35 ` Luck, Tony
2006-12-13  2:04 ` Luck, Tony
2006-12-13 19:11 ` Luck, Tony
2006-12-13 21:58 ` Luck, Tony
2007-02-07  0:55 ` Luck, Tony
2007-03-07  0:35 ` Luck, Tony
2007-03-07  0:54 ` Luck, Tony
2007-03-08  1:09 ` Luck, Tony
2007-03-10  1:02 ` Luck, Tony
2007-03-20 22:11 ` Luck, Tony
2007-03-30  2:30 ` Luck, Tony
2007-04-10 20:58 ` Luck, Tony
2007-05-07 16:54 ` Luck, Tony
2007-05-08  1:13 ` Zou Nan hai
2007-05-08  7:26 ` Simon Horman
2007-05-09  2:41 ` Zou Nan hai
2007-05-09 20:28 ` Luck, Tony
2007-05-11 18:09 ` Luck, Tony
2007-05-16 17:45 ` Luck, Tony
2007-05-22 20:13 ` Luck, Tony
2007-05-24 23:41 ` Luck, Tony
2007-06-27 15:45 ` Luck, Tony
2007-07-12  0:04 ` Luck, Tony
2007-07-17 16:35 ` Luck, Tony
2007-07-20 18:54 ` Luck, Tony
2007-07-20 19:06 ` Linus Torvalds
2007-07-25 21:40 ` Luck, Tony
2007-07-27 23:40 ` Luck, Tony
2007-08-01 22:22 ` Luck, Tony
2007-08-17 23:25 ` Luck, Tony
2007-08-30 23:03 ` Luck, Tony
2007-08-31  4:50 ` Linus Torvalds
2007-08-31  8:37 ` Linus Torvalds
2007-08-31  8:53 ` Thomas Gleixner
2007-08-31 18:46 ` john stultz
2007-09-01 10:14 ` Luck, Tony
2007-09-01 10:19 ` Luck, Tony
2007-09-04  7:44 ` Linus Torvalds
2007-10-15 16:35 ` Luck, Tony
2007-10-15 22:21 ` Luck, Tony
2007-10-16 21:49 ` Luck, Tony
2007-10-17 22:06 ` Luck, Tony
2007-10-30 18:46 ` Luck, Tony
2007-11-09 23:09 ` Luck, Tony
2007-12-10 21:37 ` Luck, Tony
2007-12-10 22:45 ` Linus Torvalds
2007-12-10 23:07 ` Luck, Tony
2007-12-10 23:21 ` Luck, Tony
2007-12-11  3:11 ` Linus Torvalds
2007-12-11 17:45 ` Luck, Tony
2007-12-19 22:01 ` Luck, Tony
2008-01-03 23:07 ` Luck, Tony
2008-02-05 18:10 ` Luck, Tony
2008-02-06  4:45 ` Christoph Hellwig
2008-02-06 17:37 ` Luck, Tony
2008-02-07  8:49 ` Petr Tesarik
2008-02-07  8:49 ` Christoph Hellwig
2008-02-08 22:46 ` Luck, Tony
2008-02-09  5:04 ` Christoph Hellwig
2008-02-11  7:37 ` Petr Tesarik
2008-03-05  0:12 ` Luck, Tony
2008-03-07  0:19 ` Luck, Tony
2005-04-27 22:11 Luck, Tony
2005-04-27 22:35 ` Linus Torvalds
2005-04-27 22:58   ` Petr Baudis
2005-04-27 23:19     ` Linus Torvalds
2005-04-27 23:36     ` Linus Torvalds
2005-04-28  0:07       ` Petr Baudis
2005-04-28  0:21         ` Linus Torvalds
2005-04-28  0:33           ` Petr Baudis
2005-04-28  1:08             ` Linus Torvalds
2005-04-28  1:24               ` Petr Baudis
2005-04-28  1:13   ` Edgar Toernig

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=Pine.LNX.4.58.0509112051530.3242@g5.osdl.org \
    --to=torvalds@osdl.org \
    --cc=linux-ia64@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.