[lkml]   [2007]   [Jun]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [patch] CFS scheduler, -v18

    I've accidentally discovered a problem with -v18.

    Some time ago, I wrote a small program to prevent my laptop from entering
    low-power mode, and noticed that after upgrading my laptop's kernel from to, it completely freezes if I run this

    The program is trivial, it just sets its prio to nice +20 and forks a busy
    loop. I've added the ability to stop the loop after a user-definable number
    of iterations, and I can confirm that it unfreezes when the loop ends. I'm
    not even root when I run it.

    Everything freezes, including the frame-buffer. It's not 100% reproducible, I
    would say 90% only. Sometimes it requires a few seconds before freezing. It
    *seems* to me that running another task in parallel (such as vmstat) increases
    its chances to freeze. It seems like nicing to +19 does not cause any trouble.

    I've tried it on my dual athlon, and with 1 process I see occasional pauses of
    1 or 2 seconds, and with 2 processes, I see fairly larger pauses.

    Here's the trivial program. Probably you'll find an obvious bug.



    * cfs-freeze.c
    * Fork a busy loop running with idle prio. This often results
    * in complete freezes with CFS-v18.
    * $ gcc -O2 -s -o cfs-freeze cfs-freeze.c
    * $ ./cfs-freeze

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sched.h>
    #include <sys/time.h>
    #include <sys/resource.h>

    int main(int argc, char **argv) {
    struct sched_param sch;
    long long i;

    if (argc > 1)
    i = atoll(argv[1]);

    if (i <= 0)
    i = 4 * 1000 * 1000 * 1000ULL;

    sch.sched_priority = 0;
    sched_setscheduler(0, SCHED_OTHER, &sch);
    setpriority(PRIO_PROCESS, 0, 20);
    if (fork() == 0)
    while (i--);
    return 0;


    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-06-30 23:13    [W:0.025 / U:2.908 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site