Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Mar 2003 02:04:20 +1000 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Dag-Erling =?iso-8859-1?q?Sm=F8rgrav?= <des@ofug.org>
Cc:        cvs-all@freebsd.org
Subject:   Re: Checksum/copy
Message-ID:  <20030330023855.Y11583@gamplex.bde.org>
In-Reply-To: <xzpznneyzmi.fsf@flood.ping.uio.no>
References:  <Pine.BSF.4.21.0303260956250.27748-100000@root.org> <20030327232742.GA80113@wantadilla.lemis.com> <20030328073513.GA20464@cirb503493.alcatel.com.au> <20030329235643.H11074@gamplex.bde.org> <xzpznneyzmi.fsf@flood.ping.uio.no>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 29 Mar 2003, Dag-Erling [iso-8859-1] Sm=F8rgrav wrote:

> Bruce Evans <bde@zeta.org.au> writes:
> > > On a different note, support.s is a bloody mess.  Once the dust has
> > > settled, I'd like to go through it and reorder its contents a little.
> > There is very little wrong with its order.
>
> I placed generic_page*() next to i686_pagezero(), which is right below
> the various bzero() implementations.  That's fine in the sense that it
> is logically related to bzero(), but it's certainly not alphabetical.

OK.

> There's a comment right before generic_bzero() that says "bcopy
> family", but bcopy() is miles away from that comment

Oops.  bzero() is in the bcopy() family, but I don't know how it got to
be sorted before bcopy().

> > The microoptimization of making bzero a function pointer wasn't such a
> > good idea.  The main problem with undoing it is that this breaks binary
> > compatibility.
>
> It looked completely bogus to me.  I realize it breaks binary

It was more useful on original i386's.  It saves a whole branch instruction=
=2E

> IMHO, if specialized pagezero() and pagecopy() functions result in
> measurably improved performance, they're worth the added complexity,
> even if we're just talking about a few percent.

I would buy a few percent of real time, but I think we're talking about
a few percent of the copy/zero time, which is a few percent of the
system time, which is a few percent of the real time.  I tried
makeworld with i686_pagezero() on an Athlon (!SMP).  It's a pessimization
on Athlon's and I got a measureable pessimization of 0.3% (6 seconds out
of 1949).  I don't consider this to be significant.

Remaining tyle points taken to private mail.

Bruce



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