From owner-freebsd-sparc64@FreeBSD.ORG Sun Jul 18 06:58:05 2010 Return-Path: Delivered-To: freebsd-sparc64@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 590E7106566B for ; Sun, 18 Jul 2010 06:58:05 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-fx0-f54.google.com (mail-fx0-f54.google.com [209.85.161.54]) by mx1.freebsd.org (Postfix) with ESMTP id D9E268FC15 for ; Sun, 18 Jul 2010 06:58:04 +0000 (UTC) Received: by fxm13 with SMTP id 13so1884689fxm.13 for ; Sat, 17 Jul 2010 23:58:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :x-enigmail-version:content-type:content-transfer-encoding; bh=CEJOni8Z1soBFBsVC8ZF7aF5vasFEd+WoMXaWhVH2OA=; b=UhvOORoJ8TqlmmJOkRhFqg2z4N86S+ugMYu0B0/pQ80rHWAJWy657NLW0jcY8YqNSU HJgR6JK182tOYLxCvuRk+zuKVbYlm3wKpnbnsbxk922lyTbaJ3uL67ieRxZIRflPTFEM 2LcBu9QhWQ6y8RsJAzDj06BuhZGMfAXgsdVhw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; b=RMM3AdvH34ncfDbqHVvSnvxzj6+XJpn4UBRHbjT1FmIg3ghhHID1SUWxojcnCrn1OY eFvdG1/EP1asvOEAiRPkXQLBffLkTK5Hnd7SJEBS194Ow2G/L7QyN5syp3G2LUF370tA wzSlI5PE8mI6Ijn5Ck3cscu7sLFrQjTeROhUo= Received: by 10.223.124.9 with SMTP id s9mr2279271far.91.1279436283738; Sat, 17 Jul 2010 23:58:03 -0700 (PDT) Received: from mavbook2.mavhome.dp.ua (pc.mavhome.dp.ua [212.86.226.226]) by mx.google.com with ESMTPS id q17sm1481176faa.21.2010.07.17.23.58.02 (version=SSLv3 cipher=RC4-MD5); Sat, 17 Jul 2010 23:58:02 -0700 (PDT) Sender: Alexander Motin Message-ID: <4C42A5B9.7080901@FreeBSD.org> Date: Sun, 18 Jul 2010 09:56:57 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.23 (X11/20091212) MIME-Version: 1.0 To: Marius Strobl References: <4C404018.6040405@FreeBSD.org> <20100716213503.GT4706@alchemy.franken.de> In-Reply-To: <20100716213503.GT4706@alchemy.franken.de> X-Enigmail-Version: 0.96.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-sparc64@FreeBSD.org Subject: Re: [RFC] Event timers on sparc64/sun4v X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jul 2010 06:58:05 -0000 Marius Strobl wrote: > please don't commit this as-is: > - using the stick instead of the tick counter for machines with CPUs > and thus tick counters running at different speeds has turned out > to be suboptimal, probably due to the fact that the 12.5MHz the > stick counters typically are driven by don't provide sufficient > granularity. Thus the more desireable variant for these machines > probably is to provide the tick counter of the BSP as the only > non-per-CPU timer and forward it to the APs via IPIs. This also > leaves the stick counter of all >= US-III machines generally > available for driving statclock, which likely is also desirable. > - I'd like to keep the tick grace check as this caused problems in > the past. Probably tick_et_start() just should return an error > in this case. > - I don't like wasting CPU cycles for determining whether the > workaround for BlackBird CPUs is needed (assuming #1 above is > implemented so distinguishing stick/tick is no longer needed) > with every (s)tick interrupt which are a lot as this just won't > ever change during runtime, i.e. I'd like to keep the different > interrupt handlers which are set up as needed. > - Replacing intr_disable_all() with intr_disable() on sun4v > probably isn't a good idea as the latter doesn't disable IPIs > as it does on sparc64 and other architectures. Here is new path, updated respecting two last points: http://people.freebsd.org/~mav/timers_sparc2.patch Don't you have some spare system with stick problems, so I could play with it? And some documentation? I am curious, what is wrong there. :) -- Alexander Motin