[Stackless] Stackless CVS on Sparc - typo in switch_sparc_sun_gcc.h
Lars Immisch
lars at ibp.de
Wed Jan 14 16:59:29 CET 2004
Hi,
I just compiled Stackless for Sparc. I suspect I am on the bleeding edge
here :-)
Compilation failed because "cst" was undeclared in switch_sparc_sun_gcc.h.
My guess was that cst should be _cst.
After having renamed cst to _cst, stackless compiled. I ran some tests.
They produced output; the output looked good, but I didn't do any
analysis to determine if the output actually *was* ok.
I also ran taskspeed.py (on a SunFire V100 @ 550 MHz and 1 GB RAM).
Since the output might be interesting, I have attached the results[1].
For the sake of completeness, also attached is a patch[2]. Sun's diff
aparently does not understand -u. Grrr.
- Lars
[1]
2.2.3 Stackless 3.0 040108 (#1, Jan 14 2004, 15:39:22)
[GCC 3.3]
10000000 frame switches took 111.71000 seconds, rate = 89517/s
10000000 frame softswitches took 8.86000 seconds, rate = 1128668/s
10000000 cfunction calls took 7.33000 seconds, rate = 1364256/s
10000000 cframe softswitches took 2.73000 seconds, rate = 3663003/s
10000000 function calls took 18.71000 seconds, rate = 534473/s
10000000 generator calls took 9.95000 seconds, rate = 1005025/s
10000000 cframe switches took 79.97000 seconds, rate = 125046/s
10000000 cframe 100 words took 122.89000 seconds, rate = 81373/s
10000000 cframe from outside took 559.79000 seconds, rate = 17863/s
The penalty per stack word is about 3.555 percent of raw switching.
Stack size of initial stub = 112
Stack size of frame tasklet = 356
Stack size of cframe tasklet = 230
[2]
*** switch_sparc_sun_gcc.h.~1.3.~ Sun Nov 24 16:37:10 2002
--- switch_sparc_sun_gcc.h Wed Jan 14 15:35:05 2004
***************
*** 53,59 ****
"ld [%0+60], %%i7\n\t"
"add %1, %%sp, %%sp\n\t"
"add %1, %%fp, %%fp"
! : : "r" (cst->stack), "r" (stsizediff)
: "%l0", "%l1", "%l2", "%l3", "%l4", "%l5", "%l6", "%l7",
"%i0", "%i1", "%i2", "%i3", "%i4", "%i5");
--- 53,59 ----
"ld [%0+60], %%i7\n\t"
"add %1, %%sp, %%sp\n\t"
"add %1, %%fp, %%fp"
! : : "r" (_cst->stack), "r" (stsizediff)
: "%l0", "%l1", "%l2", "%l3", "%l4", "%l5", "%l6", "%l7",
"%i0", "%i1", "%i2", "%i3", "%i4", "%i5");
_______________________________________________
Stackless mailing list
Stackless at stackless.com
http://www.stackless.com/mailman/listinfo/stackless
More information about the Stackless
mailing list