Wes,

I patched in the patch shown below and it didn't fix the problem, it
only changed the frequency of the spikes to 32 on/off.  Please see
the second chart at this URL:

http://www.employees.org/~rsargent/flops/charts2.html

Did you run the script [long enuf] to see what frequency you experience with the kern
pacthed on your system?


JT


From: Wes Peters <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED] (Dag-Erling Smørgrav),Alexandr Kovalenko <[EMAIL PROTECTED]>
CC: [EMAIL PROTECTED], Juan Tumani <[EMAIL PROTECTED]>
Subject: Re: FreeBSD 5.2 v/s FreeBSD 4.9 MFLOPS performance (gcc3.3.3 v/sgcc2.9.5)
Date: Mon, 16 Feb 2004 03:52:16 -0800


On Sunday 15 February 2004 12:46, Dag-Erling Smørgrav wrote:
> Alexandr Kovalenko <[EMAIL PROTECTED]> writes:
> > Could you please explain me this? Result is fully reproduceable. Please
> > note, that the only difference is the output file name. Even resulting
> > files match bit-to-bit. [...]
>
> Definitely some kind of alignment problem, but it only shows up at
> some optimization levels and not others.


I've tested the patch Dan mentioned before and the results were astonishing.
Running the flops.c 1.2 program in a loop, lengthening the environment string
by one byte each time, I get 8 successive runs of fast, then 8 successive
runs of slow, where fast and slow vary between 650 and 990 mflops. With the
patch, the performance is always 990, within a few percent.


Should I commit this?

RCS file: /big/ncvs/src/sys/kern/kern_exec.c,v
retrieving revision 1.235
diff -u -w -r1.235 kern_exec.c
--- kern_exec.c 28 Dec 2003 04:37:59 -0000 1.235
+++ kern_exec.c 11 Feb 2004 16:47:28 -0000
@@ -1014,6 +1014,15 @@
*/
vectp = (char **)(destp - (imgp->argc + imgp->envc + 2) *
sizeof(char *));
+
+ /*
+ * Align stack to a multiple of 0x20.
+ * XXX vectp has the wrong type; we usually want a vm_offset_t;
+ * the suword() family takes a void *, but should take a vm_offset_t.
+ * XXX should align stack for signals too.
+ * XXX should do this more machine/compiler-independently.
+ */
+ vectp = (char **)(((vm_offset_t)vectp & ~(vm_offset_t)0x1F) - 4);


        /*
         * vectp also becomes our initial stack base


-- "Where am I, and what am I doing in this handbasket?"

Wes Peters                                                  Softweyr LLC
[EMAIL PROTECTED]                                    http://softweyr.com/

_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

_________________________________________________________________
Click here for a FREE online computer virus scan from McAfee. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963


_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to