Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Oct 2005 08:58:16 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        B.Candler@pobox.com
Cc:        max@love2party.net, freebsd-current@freebsd.org, anderson@centtech.com
Subject:   Re: ufsstat - testers / feedback wanted!
Message-ID:  <20051014.085816.104604949.imp@bsdimp.com>
In-Reply-To: <20051014091004.GC18513@uk.tiscali.com>
References:  <200510131412.23525.max@love2party.net> <20051013181026.GB27418@odin.ac.hmc.edu> <20051014091004.GC18513@uk.tiscali.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20051014091004.GC18513@uk.tiscali.com>
            Brian Candler <B.Candler@pobox.com> writes:
: 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)
: 
: 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?

You have to protect this thread-unsafe operation yourself.

Warner



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051014.085816.104604949.imp>