From owner-freebsd-current@FreeBSD.ORG Fri Oct 14 09:34:45 2005 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C97B516A41F for ; Fri, 14 Oct 2005 09:34:45 +0000 (GMT) (envelope-from DAntrushin@mail.ru) Received: from mx1.mail.ru (mx1.mail.ru [194.67.23.121]) by mx1.FreeBSD.org (Postfix) with ESMTP id 60F9E43D46 for ; Fri, 14 Oct 2005 09:34:45 +0000 (GMT) (envelope-from DAntrushin@mail.ru) Received: from [81.3.158.68] (port=50745 helo=[129.159.124.237]) by mx1.mail.ru with esmtp id 1EQLxb-000AhQ-00 for freebsd-current@freebsd.org; Fri, 14 Oct 2005 13:34:44 +0400 Message-ID: <434F7BB3.5020808@mail.ru> Date: Fri, 14 Oct 2005 13:34:43 +0400 From: Denis Antrushin User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050323) X-Accept-Language: en-us, en MIME-Version: 1.0 CC: freebsd-current@freebsd.org References: <434E46C0.7060903@centtech.com> <200510131412.23525.max@love2party.net> <20051013181026.GB27418@odin.ac.hmc.edu> <20051014091004.GC18513@uk.tiscali.com> In-Reply-To: <20051014091004.GC18513@uk.tiscali.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: ufsstat - testers / feedback wanted! X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 14 Oct 2005 09:34:45 -0000 Brian Candler wrote: > On Thu, Oct 13, 2005 at 11:10:26AM -0700, Brooks Davis wrote: > >>>I don't think you can measure one single interger (or 64bit) increase in face >>>of a operation that has to access backing store. Even if there is a >>>performance hit, you don't have to build your kernel with the option enabled. >> >>The one thing I'd be worried about here is that 64bit updates are >>expensive on 32bit machines if you want them to be atomic. Relative to >>backing store they probably still don't matter, but the might be >>noticable. > > > I'd be grateful if you could clarify that point for me. Are you saying that > if I write > > long long foo; > ... > foo++; > > then the C compiler generates code for 'foo++' which is not thread-safe? > (And therefore I would have to protect it with a mutex or critical section) Yes. On 32-bit it looks something like that: cltd movl $1 %eax movl $0, %edx addl -16(%ebp), %eax adcl -12(%ebp), %edx movl %eax, -16(%ebp) movl %edx, -12(%ebp) > Or are you saying that the C compiler inserts its own code around foo++ to > turn it into a critical section, and therefore runs less efficiently than > you'd expect? C compilers not that smart yet, AFAIK :-)