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>