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

Reply via email to