Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Dec 1999 00:26:57 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        Ville-Pertti Keinonen <will@iki.fi>
Cc:        current@freebsd.org, marcel@scc.nl, dillon@apollo.backplane.com
Subject:   Re: kernel: -mpreferred-stack-boundary=2 ??
Message-ID:  <Pine.BSF.4.10.9912030012320.3368-100000@alphplex.bde.org>
In-Reply-To: <19991202094037.4079.qmail@ns.demophon.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2 Dec 1999, Ville-Pertti Keinonen wrote:

>...

> Note that double-alignment vs. word-alignment can really have >30%
> performance impact, at least on an Athlon and one meaningless floating
> point microbenchmark (operations on small, fixed-sized
> matrices...maybe it isn't even *that* meaningless).

I verified that the default alignment is a pessimisation of 1% for a
meaningful benchmark (compiling a RELENG_3 kernel) on a Celeron:

gcc (current) compiled with gcc:
       29.00 real        11.42 user         2.28 sys
      158.47 real       146.48 user        10.35 sys
       13.58 real        11.31 user         2.20 sys
      157.99 real       146.16 user        11.19 sys
       13.58 real        11.37 user         2.14 sys
      158.06 real       146.57 user        10.87 sys

gcc (current) compiled with gcc -mpreferred-stack-boundary=2:
       13.42 real        10.92 user         2.34 sys
      156.94 real       144.14 user        11.16 sys
       13.29 real        10.87 user         2.34 sys
      156.43 real       144.22 user        11.23 sys
       13.30 real        10.85 user         2.38 sys
      156.14 real       144.70 user        10.73 sys

The times are for `time make depend; time make' after `make clean; sync;
sleep 1' (2 times for each run).  The stack may have been perfectly
misaligned for the default gcc.

Corresponding times for egcs with various PQ_L2_SIZE's a few months ago:

16 pages:
       28.50 real        11.78 user         2.62 sys
      140.53 real       129.08 user        10.55 sys
       14.17 real        11.72 user         2.43 sys
      140.27 real       129.13 user        10.83 sys
       14.15 real        11.77 user         2.35 sys
      140.45 real       129.25 user        10.85 sys

32 pages:
       28.57 real        11.60 user         2.69 sys
      139.89 real       129.34 user         9.74 sys
       14.09 real        11.67 user         2.39 sys
      139.65 real       128.91 user        10.42 sys
       14.06 real        11.57 user         2.45 sys
      139.80 real       129.10 user        10.33 sys

64 pages:
       28.51 real        11.88 user         2.46 sys
      140.12 real       129.18 user        10.01 sys
       14.11 real        11.59 user         2.49 sys
      139.98 real       129.10 user        10.67 sys
       14.10 real        11.89 user         2.18 sys
      140.24 real       129.24 user        10.59 sys

128 pages:
       28.11 real        11.94 user         2.40 sys
      140.14 real       129.11 user        10.14 sys
       14.08 real        11.82 user         2.23 sys
      139.97 real       129.01 user        10.66 sys
       14.09 real        11.64 user         2.44 sys
      140.22 real       129.15 user        10.83 sys

256 pages:
       28.31 real        11.74 user         2.45 sys
      139.87 real       128.90 user        10.13 sys
       14.17 real        11.67 user         2.48 sys
      139.58 real       129.36 user         9.95 sys
       14.15 real        11.49 user         2.60 sys
      139.90 real       129.07 user        10.45 sys

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?Pine.BSF.4.10.9912030012320.3368-100000>