Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Mar 2003 04:06:41 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        "M. Warner Losh" <imp@bsdimp.com>, <current@FreeBSD.ORG>
Subject:   Re: Any ideas why we can't even boot a i386 ? 
Message-ID:  <20030303034332.Y30986-100000@gamplex.bde.org>
In-Reply-To: <20030302001614.H26391-100000@gamplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 2 Mar 2003, Bruce Evans wrote:

> On Fri, 28 Feb 2003, Poul-Henning Kamp wrote:
>
> > My main concern would be if the chips have the necessary "umphf"
> > to actually do a real-world job once they're done running all the
> > overhead of 5.0-R.  The lack of cmpxchg8 makes the locking horribly
> > expensive.
>
> Actually, the lack of cmpxchg8 only makes locking more expensive.  It's
                                                    ^^^^

I.e., strictly more expensive, but not much more.

> [cycle types for Athlon1600 running 386 code]

Here are whorldstone benchmarks for an Athlon.  The 386 version was a
whole 0.3% slower for real time (3.2% slower for system time).

To get the system to run I had to unbreak panicifcpuunsupported() so
that it doesn't gratuitously reject Athlons (CPUs that are upward
compatible should not be rejected), and had to replace pmap.o by the
non-386 version since the 386 version caused strange errors.  It's not
clear why the 386 version doesn't work -- the only internal difference
in pmap.c is that the 386 version uses invltlb() and other versions
use invlpg().  Using invlpg() would probably make things more than
0.3% slower.  Selecting the best inv*() was the main optimization that
we dropped when 386 support was made incompatible with support for later
CPUs.

world with my kernel configured for I486_CPU through I686_CPU
%%%
1532 MHz AthlonXP 1600 256MB 2 ATA drives
async mounted /usr/obj (src on separate drive)
--------------------------------------------------------------
>>> elf make world completed on Sun Mar  2 16:30:55 EST 2003
                       (started Sun Mar  2 15:53:15 EST 2003)
--------------------------------------------------------------
     2260.31 real      1729.55 user       326.24 sys
     40208  maximum resident set size
      2248  average shared memory size
      1762  average unshared data size
       127  average unshared stack size
  14959205  page reclaims
     25630  page faults
         0  swaps
     43481  block input operations
      3963  block output operations
         0  messages sent
         0  messages received
         5  signals received
    313523  voluntary context switches
    607085  involuntary context switches
%%%

world with my kernel configured for I386_CPU except for pmap.o
%%%
1532 MHz AthlonXP 1600 256MB 2 ATA drives
async mounted /usr/obj (src on separate drive)
--------------------------------------------------------------
>>> elf make world completed on Mon Mar  3 03:00:45 EST 2003
                       (started Mon Mar  3 02:22:57 EST 2003)
--------------------------------------------------------------
     2267.98 real      1730.21 user       336.73 sys
     40208  maximum resident set size
      2245  average shared memory size
      1756  average unshared data size
       127  average unshared stack size
  14958931  page reclaims
     26265  page faults
         0  swaps
     44148  block input operations
      3898  block output operations
         0  messages sent
         0  messages received
         6  signals received
    313986  voluntary context switches
    598687  involuntary context switches
%%%

Bruce


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?20030303034332.Y30986-100000>