From owner-svn-src-head@FreeBSD.ORG Fri Feb 1 11:39:04 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 9C0D92D8; Fri, 1 Feb 2013 11:39:04 +0000 (UTC) (envelope-from gber@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id 89605E6E; Fri, 1 Feb 2013 11:39:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.5/8.14.5) with ESMTP id r11Bd4L9089765; Fri, 1 Feb 2013 11:39:04 GMT (envelope-from gber@svn.freebsd.org) Received: (from gber@localhost) by svn.freebsd.org (8.14.5/8.14.5/Submit) id r11Bd49R089763; Fri, 1 Feb 2013 11:39:04 GMT (envelope-from gber@svn.freebsd.org) Message-Id: <201302011139.r11Bd49R089763@svn.freebsd.org> From: Grzegorz Bernacki Date: Fri, 1 Feb 2013 11:39:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r246205 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 01 Feb 2013 11:39:04 -0000 Author: gber Date: Fri Feb 1 11:39:03 2013 New Revision: 246205 URL: http://svnweb.freebsd.org/changeset/base/246205 Log: Get time of next event from other cores only if SMP is already started. Reviewed by: mav Obtained from: Semihalf Modified: head/sys/kern/kern_clocksource.c Modified: head/sys/kern/kern_clocksource.c ============================================================================== --- head/sys/kern/kern_clocksource.c Fri Feb 1 10:26:31 2013 (r246204) +++ head/sys/kern/kern_clocksource.c Fri Feb 1 11:39:03 2013 (r246205) @@ -317,14 +317,16 @@ getnextevent(struct bintime *event) nonidle = !state->idle; if ((timer->et_flags & ET_FLAGS_PERCPU) == 0) { #ifdef SMP - CPU_FOREACH(cpu) { - if (curcpu == cpu) - continue; - state = DPCPU_ID_PTR(cpu, timerstate); - nonidle += !state->idle; - if (bintime_cmp(event, &state->nextevent, >)) { - *event = state->nextevent; - c = cpu; + if (smp_started) { + CPU_FOREACH(cpu) { + if (curcpu == cpu) + continue; + state = DPCPU_ID_PTR(cpu, timerstate); + nonidle += !state->idle; + if (bintime_cmp(event, &state->nextevent, >)) { + *event = state->nextevent; + c = cpu; + } } } #endif