找到偶发的CPU内核
我有一个在中速ARMv7处理器上运行的2.6.35 PREEMPT内核。大约每100-125s发生一次,某些原因导致内核无法足够快地处理某些与音频相关的驱动程序,从而避免欠载。保持时间通常在15到30毫秒之间,但可能会更长。目前尚不清楚保留是完全在内核中还是可能与以实时优先级运行的用户进程的调度有关(SCHED_RR,2)。 我的猜测是,有(至少一个)驱动程序在抢先状态下表现不佳。 尽管我不确定如何解释各种时间报告,但用户进程中的一些strace输出说明了正常和异常行为的某些方面。 正常情况: 0.000518 poll([{fd = 10,events = POLLIN | POLLERR | POLLNVAL,revents = POLLIN}],1,3415)= 1 0.010202 poll([{fd = 10,events = POLLIN | POLLERR | POLLNVAL},{fd = 6,events = POLLOUT | POLLERR | POLLNVAL,revents = POLLOUT}],2,3404)= 1 0.000585 poll([{fd = 10,events = POLLIN | POLLERR | POLLNVAL},{fd = …