lkml.org 
[lkml]   [2008]   [May]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: Horrendous Audio Stutter - current git
    From
    Date
    On Fri, 2008-05-02 at 12:35 +0200, Peter Zijlstra wrote:
    > On Fri, 2008-05-02 at 12:32 +0200, Frans Pop wrote:
    > > On Friday 02 May 2008, Peter Zijlstra wrote:
    > > > So by default we have both enabled; could you report if either
    > > > NO_NEW_FAIR_SLEEPERS
    > > > NEW_FAIR_SLEEPERS + NO_NORMALIZED_SLEEPERS
    > > > works for you?
    > >
    > > Both work for me. Tested with current git head (mainline) + your patch.
    > >
    > > > Also, could you apply this patch, and report the bonus_max value for
    > > > your music player under all three scenarios?
    > >
    > > I've restarted amarok and the glibc build each time after change to
    > > sched_features.
    > >
    > > # cat sched_features
    > > NEW_FAIR_SLEEPERS WAKEUP_PREEMPT START_DEBIT AFFINE_WAKEUPS CACHE_HOT_BUDDY
    > > SYNC_WAKEUPS HRTICK NO_DOUBLE_TICK NORMALIZED_SLEEPER DEADLINE
    > >
    > > => skips in music (amarok)
    > >
    > > /proc/20734/task/20734/sched:se.bonus_max : 40960.000000
    > > /proc/20734/task/20775/sched:se.bonus_max : 40960.000000
    > > /proc/20734/task/20779/sched:se.bonus_max : 40960.000000
    > > /proc/20734/task/20780/sched:se.bonus_max : 40960.000000
    > > /proc/20734/task/20781/sched:se.bonus_max : 40960.000000
    > > /proc/20734/task/20782/sched:se.bonus_max : 39.960966
    > > /proc/20734/task/20799/sched:se.bonus_max : 40960.000000
    >
    > Ok, that's _WAY_ too big, something went seriously wrong. Thanks!

    In fact, that is exactly 1024 time too large.

    How does this work for you:

    Index: linux-2.6-2/kernel/sched_fair.c
    ===================================================================
    --- linux-2.6-2.orig/kernel/sched_fair.c
    +++ linux-2.6-2/kernel/sched_fair.c
    @@ -685,6 +685,7 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
    * Update run-time statistics of the 'current'.
    */
    update_curr(cfs_rq);
    + account_entity_enqueue(cfs_rq, se);

    if (wakeup) {
    place_entity(cfs_rq, se, 0);
    @@ -695,7 +696,6 @@ enqueue_entity(struct cfs_rq *cfs_rq, st
    check_spread(cfs_rq, se);
    if (se != cfs_rq->curr)
    __enqueue_entity(cfs_rq, se);
    - account_entity_enqueue(cfs_rq, se);
    }

    static void update_avg(u64 *avg, u64 sample)



    \
     
     \ /
      Last update: 2008-05-02 13:11    [W:0.022 / U:0.452 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site