2009-04-25, 10:39
I am running INTREPID on an Intel DualCore rig and I also saw this issue with uneven loading of the cpus. I have not verified this in detail, but the fix for me was to start xbmc under a different process scheduling policy. Currently I am using 'schedtool -B -e /usr/local/bin/xbmc --standalone' which works ok.
There is a better result with one of the policies reserved for root, but I am running xbmc under a normal user account.
The default INTREPID policy kind of makes sense as keeping all processes on one cpu improves latency and loss on task switching. It's just that it does not react to load peaks fast enough to avoid frame drops.
The policy I use means that cpu reallocation happens slower, so there is a higher preference to stay on two cpu once a peak has happened. The load is not perfectly even, I'd say about 60/40 ratio. I had guessed that this was due to single thread audio decoding (and there still being a preference to consolidate threads onto one cpu).
Killa sample runs without framedrops, where as before it was consistently loosing about five+ frames per loop. (I test with making a playlist with repeat to isolate disk/network caching.)
Hope it helps someone...
There is a better result with one of the policies reserved for root, but I am running xbmc under a normal user account.
The default INTREPID policy kind of makes sense as keeping all processes on one cpu improves latency and loss on task switching. It's just that it does not react to load peaks fast enough to avoid frame drops.
The policy I use means that cpu reallocation happens slower, so there is a higher preference to stay on two cpu once a peak has happened. The load is not perfectly even, I'd say about 60/40 ratio. I had guessed that this was due to single thread audio decoding (and there still being a preference to consolidate threads onto one cpu).
Killa sample runs without framedrops, where as before it was consistently loosing about five+ frames per loop. (I test with making a playlist with repeat to isolate disk/network caching.)
Hope it helps someone...