On Fri, May 8, 2009 at 1:18 AM, Magnus Lundin <lun...@mlu.mine.nu> wrote: > Ųyvind Harboe wrote: >>> >>> The problem with the "fix" and the whole change set is that the >>> fields{1].in_value variable is not assigned any return value until after >>> jtag_execute_queue(), and that is long after we exit this function and >>> temp >>> is out of scope. >>> >> >> Did you look at jtag_add_dr_scan_now() implemenation? >> >> It calls jtag_execute_queue_noclear(), so we *can* use stack variables >> here for in_value. >> >> > > Yes, not my favourite modification, and we do NOT want to call > jtag_execute_queue for every value we vant to read, that will kill > performance.
I have profiled OpenOCD quite a bit and improved performance for parport by 2x and other interfaces too. (Michael Fischer did the tests, I don't remember the figures). If there are any measurable performance regressions from these changes, then really we will be able to identify areas where things can be optimized significantly by moving lots of small calls into a bigger loop and then doing a large out/in scan and post processing. >From my patches you can see that I *do* avoid flushing the queue when possible. So if you see performance degradation and report it, I'll look into fixing that degradation too and I'm pretty sure we'll be *FASTER* than when we started. The code will execute faster now, but that makes no difference on a PC host, it's all about the roundtrip time... -- Øyvind Harboe Embedded software and hardware consulting services http://consulting.zylin.com _______________________________________________ Openocd-development mailing list Openocd-development@lists.berlios.de https://lists.berlios.de/mailman/listinfo/openocd-development