Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Tue, 17 Sep 2002 11:41:22 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Tue, 17 Sep 2002 11:41:22 -0400 Received: from mx2.elte.hu ([157.181.151.9]:12226 "HELO mx2.elte.hu") by vger.kernel.org with SMTP id ; Tue, 17 Sep 2002 11:41:21 -0400 Date: Tue, 17 Sep 2002 17:53:33 +0200 (CEST) From: Ingo Molnar Reply-To: Ingo Molnar To: Linus Torvalds Cc: Robert Love , Subject: Re: [PATCH] BUG(): sched.c: Line 944 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 Content-Length: 1079 Lines: 39 On Tue, 17 Sep 2002, Linus Torvalds wrote: > void schedule(void) > { > BUG_ON(in_atomic()); > BUG_ON(current->state & TASK_ZOMBIE); > do_schedule(); > } > > void exit_schedule(void) > { > BUG_ON(!(current->state & TASK_ZOMBIE)); > do_schedule(); > } i'd rather do it the other way around - ie. do a: if (unlikely(current->state == TASK_ZOMBIE)) { ... exit checks ... } else { ... normal checks ... } this test is cheaper than a function call. I'd say the ZOMBIE check alone is not significant enough to introduce a function split in the hotpath. This check is also easier to remove later on. TASK_ZOMBIE is only ever allowed to be set for exiting tasks. [and if TASK_ZOMBIE handling is broken then it will trigger the normal atomic tests so it's not like we are silently ignoring those errors.] Ingo - 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/