[mythtv] [mythtv-commits] Ticket #5749: Internal player stutters on 720p content

Michael T. Dean mtdean at thirdcontact.com
Sat Oct 4 16:20:17 UTC 2008


On 10/03/2008 11:54 AM, MythTV wrote:
> #5749: Internal player stutters on 720p content
> --------------------------------+-------------------------------------------
>  Reporter:  zgeggy2k            |        Owner:  janne     
>      Type:  defect              |       Status:  assigned  
>  Priority:  major               |    Milestone:  unknown   
> Component:  Video Playback      |      Version:  0.21-fixes
>  Severity:  medium              |   Resolution:            
>   Mlocked:  0                   |  
> --------------------------------+-------------------------------------------
>
> Comment(by zgeggy2k):
>   
...
>  When you tried to reproduce the problem did you use Fedora 9? (I'm
>  wondering if libs/kernel that the frontend relies on have a specific
>  behaviour).
>  Maybe a scheduler issue (they may have introduced the "Completely Fair
>  Scheduler"), but again, without CPU maxed out, it shouldn't be an issue,
>  unless there's added latency when switching tasks that would make the
>  frontend miss its deadlines.
>
>  One thing I haven't tried is running it as root _with_real_time_priority_
>  settings (which hopefully even CFS would honor). I'll give it a try.

Do they enable GROUP_SCHED?  If so, are they using USER_SCHED as the 
"Basis for grouping tasks?"  If so, that's almost definitely the issue 
and your system configuration should be fixed.

See, also:  
http://www.mythtv.org/wiki/index.php/Troubleshooting:Prebuffering_pause#Kernel_Scheduler_Misconfiguration 
and http://www.gossamer-threads.com/lists/mythtv/users/349300#349300

Note that the recommended fix there is to use CGROUP_SCHED as the "Basis 
for grouping tasks."  However, another approach is to continue to use 
USER_SCHED and use, IIRC, uevent to recognize the creation of a new uid 
and specify the cpu_share for the user, though this approach requires a 
lot more work determining the appropriate cpu_share for each user.

Note, also, that even if the system is configured to use CGROUP_SCHED, 
it's quite possible to break the configuration by specifying an 
inappropriate cpu.share (yes, it really is cpu_share for USER_SCHED and 
cpu.share for CGROUP_SCHED...) for some process groups.

To find out if you're using USER_SCHED, run:

if [ -d /sys/kernel/uids ]; then
echo USER_SCHED is enabled.
else
echo USER_SCHED is not enabled.
fi

If you're not, what's the output of:

if [ -d /dev/cpuctl ]; then
  find /dev/cpuctl;
fi

Mike


More information about the mythtv-dev mailing list