Date: Mon, 12 Jul 1999 22:38:03 -0700 From: Mike Smith <mike@smith.net.au> To: "Andrew Reilly" <a.reilly@lake.com.au> Cc: Mike Smith <mike@smith.net.au>, Mike Haertel <mike@ducky.net>, Matthew Dillon <dillon@apollo.backplane.com>, Luoqi Chen <luoqi@watermarkgroup.com>, dfr@nlsystems.com, jeremyp@gsmx07.alcatel.com.au, freebsd-current@FreeBSD.ORG Subject: Re: "objtrm" problem probably found (was Re: Stuck in "objtrm") Message-ID: <199907130538.WAA04527@dingo.cdrom.com> In-Reply-To: Your message of "Tue, 13 Jul 1999 15:37:16 %2B1000." <19990713153716.A94421@gurney.reilly.home>
next in thread | previous in thread | raw e-mail | index | archive | help
> On Mon, Jul 12, 1999 at 07:09:58PM -0700, Mike Smith wrote:
> > > Although function calls are more expensive than inline code,
> > > they aren't necessarily a lot more so, and function calls to
> > > non-locked RMW operations are certainly much cheaper than
> > > inline locked RMW operations.
> >
> > This is a fairly key statement in context, and an opinion here would
> > count for a lot; are function calls likely to become more or less
> > expensive in time?
>
> Others have answered this question, but I thought I'd point out
> that there is another alternative that is likely to be faster
> than indirect function calls on some architectures: inline
> branched code. So you still have a global variable selecting
> locked/non-locked, but it's a boolean, rather than a pointer.
> Your atomic macros are then { if (atomic_lock) asm("lock;foo");
> else asm ("foo"); }
This requires you to have all the methods present at compile time,
which defeats the entire purpose of dynamic method loading.
--
\\ The mind's the standard \\ Mike Smith
\\ of the man. \\ msmith@freebsd.org
\\ -- Joseph Merrick \\ msmith@cdrom.com
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199907130538.WAA04527>
