From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423223AbWJSCjE (ORCPT ); Wed, 18 Oct 2006 22:39:04 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1423211AbWJSCjD (ORCPT ); Wed, 18 Oct 2006 22:39:03 -0400 Received: from mga05.intel.com ([192.55.52.89]:3853 "EHLO fmsmga101.fm.intel.com") by vger.kernel.org with ESMTP id S1423223AbWJSCjB (ORCPT ); Wed, 18 Oct 2006 22:39:01 -0400 X-ExtLoop1: 1 X-IronPort-AV: i="4.09,326,1157353200"; d="scan'208"; a="5397351:sNHT18314145" Date: Wed, 18 Oct 2006 19:19:00 -0700 From: "Siddha, Suresh B" To: Christoph Lameter Cc: Nick Piggin , "Siddha, Suresh B" , Ingo Molnar , Peter Williams , linux-kernel@vger.kernel.org Subject: Re: [RFC] sched_tick with interrupts enabled Message-ID: <20061018191900.D26521@unix-os.sc.intel.com> References: <4536629C.4050807@yahoo.com.au> <45366DF0.6040702@yahoo.com.au> <45367D32.6090301@yahoo.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: ; from clameter@sgi.com on Wed, Oct 18, 2006 at 02:59:07PM -0700 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Oct 18, 2006 at 02:59:07PM -0700, Christoph Lameter wrote: > load_balancing has the potential of running for some time if f.e. > sched_domains for a system with 1024 processors have to be balanced. > We currently do all of that with interrupts disabled. So we may be unable > to service interrupts for some time. Most of that time is potentially > spend in rebalance_tick. Did you see an issue because of this or just theoretical? > +static void rebalance_tick(unsigned long dummy) > { > + int this_cpu = smp_processor_id(); > + struct rq *this_rq = cpu_rq(this_cpu); > + enum idle_type idle; > unsigned long this_load, interval, j = cpu_offset(this_cpu); > struct sched_domain *sd; > int i, scale; > > + idle = (current == this_rq->idle) ? SCHED_IDLE : NOT_IDLE; We need to add nr_running check too, to determine if we want to do idle/not-idle balancing. This is in the context of wake_priority_sleeper() thanks, suresh