[OpenBIOS] PATCH: Implement Forth source debugger for OpenBIOS
Mark Cave-Ayland
mark.cave-ayland at siriusit.co.uk
Mon Nov 9 18:34:21 CET 2009
Mark Cave-Ayland wrote:
> Indeed. I had a similar inspiration earlier this evening, with the only
> problem being how to switch code into next() without causing a
> performance hit. However, I think I've just worked out a cute little
> hack that would solve this. I'm at a conference over the next few days,
> so it might not be until next week that I get a chance re-work the patch
> and resubmit.
Okay, so I've come across an interesting problem with regard to
reworking this. Attached is a patch that demonstrates some very alarming
behaviour, at least here on x86_64 gcc 4.3.2. What happens is that just
by adding a single function pointer to kernel/internal.c, the runtime
for my fibonacci benchmark goes up by 40%!
With the attached patch for OpenBIOS SVN, I get the following runtime
for the Fibonacci benchmark:
build at zeno:~/src/openbios/openbios-devel$ time echo "28 fib-rec u. bye"
| ./obj-x86/openbios-unix ./obj-x86/openbios-x86.dict
Welcome to OpenBIOS v1.0 built on Nov 9 2009 17:17
Type 'help' for detailed information
[unix] Booting default not supported.
0 > 28 fib-rec u. bye 6197ecb
Farewell!
ok
real 0m52.564s
user 0m52.027s
sys 0m0.012s
If the line "void (*debughook) (void);" is then commented out from
kernel/internal.c then the runtime looks like below (which is roughly
the same as running the fib-rec benchmark on plain OpenBIOS SVN):
build at zeno:~/src/openbios/openbios-devel$ time echo "28 fib-rec u. bye"
| ./obj-x86/openbios-unix ./obj-x86/openbios-x86.dict
Welcome to OpenBIOS v1.0 built on Nov 9 2009 17:12
Type 'help' for detailed information
[unix] Booting default not supported.
0 > 28 fib-rec u. bye 6197ecb
Farewell!
ok
real 0m37.946s
user 0m37.178s
sys 0m0.020s
So in other words, simply defining a pointer variable (which hasn't even
been used anywhere in the code yet) is increasing the runtime by 40%?!
Can anyone shed any light on this behaviour? It just doesn't seem to
make any sense to me.
ATB,
Mark.
--
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
-------------- next part --------------
A non-text attachment was scrubbed...
Name: openbios-speed.patch
Type: text/x-diff
Size: 1215 bytes
Desc: not available
URL: <http://lists.openbios.org/pipermail/openbios/attachments/20091109/a3766323/attachment.bin>
More information about the OpenBIOS
mailing list