Date: Mon, 16 Feb 2004 13:44:29 -0500 From: "Juan Tumani" <jtumani55@hotmail.com> To: wes@softweyr.com, des@des.no, never@nevermind.kiev.ua Cc: freebsd-hackers@freebsd.org Subject: Re: FreeBSD 5.2 v/s FreeBSD 4.9 MFLOPS performance (gcc3.3.3 v/sgcc2.9.5) Message-ID: <BAY12-F28dGg1fDc5DY00030a95@hotmail.com>
next in thread | raw e-mail | index | archive | help
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 <wes@softweyr.com> >To: des@des.no (Dag-Erling Smørgrav),Alexandr Kovalenko ><never@nevermind.kiev.ua> >CC: freebsd-hackers@freebsd.org, Juan Tumani <jtumani55@hotmail.com> >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 <never@nevermind.kiev.ua> 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 >wes@softweyr.com http://softweyr.com/ > >_______________________________________________ >freebsd-hackers@freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-hackers >To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" _________________________________________________________________ Click here for a FREE online computer virus scan from McAfee. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BAY12-F28dGg1fDc5DY00030a95>