Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 14 Jan 2002 10:32:55 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 14 Jan 2002 10:32:45 -0500 Received: from x35.xmailserver.org ([208.129.208.51]:5126 "EHLO x35.xmailserver.org") by vger.kernel.org with ESMTP id ; Mon, 14 Jan 2002 10:32:36 -0500 Date: Mon, 14 Jan 2002 07:38:24 -0800 (PST) From: Davide Libenzi X-X-Sender: davide@blue1.dev.mcafeelabs.com To: Ingo Molnar cc: Jeff Dike , Linus Torvalds , lkml Subject: Re: The O(1) scheduler breaks UML In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 14 Jan 2002, Ingo Molnar wrote: > > On Sun, 13 Jan 2002, Davide Libenzi wrote: > > > > So, is it possible to enable IRQs across the call to _switch_to? > > > > Yes, this should work : > > > > if (likely(prev != next)) { > > rq->nr_switches++; > > rq->curr = next; > > next->cpu = prev->cpu; > > spin_unlock_irq(&rq->lock); > > context_switch(prev, next); > > } else > > spin_unlock_irq(&rq->lock); > > this change is incredibly broken on SMP - eg. what protects 'prev' from > being executed on another CPU prematurely. It's even broken on UP: > interrupt context that changes current->need_resched needs to be aware of > nonatomic context switches. See my previous mail. yup, true. no more schedule_tail() - Davide - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/