Originally posted by: Auric
More succinctly, I mean specifically not use an SMP decoder (or its option) and let the DC CPU manage load. So presumably it would manage total (multi-tasking) utilization better than having the decoder possibly hog more resources of each. Or does an SMP app actually allow for better management by the CPU?
I'm not quite sure what you mean.
Right now, libavcodec's H.264 decoder starts one thread, and it can be managed amongst an SMP system however the kernel's scheduler desires. That may mean using 40% of CPU0 and 60% of CPU1, or 100% of CPU0 or CPU1. However, the scheduler can not create or anticipate work, so no more than 100% is being used across both cores. When you have n threads, the scheduler can distribute those n threads across the number of available cores and fully utilize them. With 1 thread, you are limited to the power of one core no matter how the load is distributed.
Both of the threads started by libavcodec could very well be assigned to the first CPU if you have lots using the second CPU, and it would in effect not be any faster. But with the second CPU being unused, any scheduler (worth mentioning) would assign the second thread to the second CPU so that both could be used for 200% more POWER!!
If the decoder is fully using both cores and a small app needs to run, the kernel can preempt that app and give it 5% CPU (or whatever) for a short period of time. When you move your mouse cursor, preemption is occuring.
I tried overclocking my CPU from 1.86 GHz to 2.20 GHz and my C2D was still struggling with just one core being utilized.