Unexpected behaviour of O(1) scheduler on SMP 2.6 Kernel

From: Deepti Vyas (dvyas_at_cs.uh.edu)
Date: 05/13/05

  • Next message: Douglas Gilbert: "Re: SCSI/ISCSI, hardware/software"
    Date:	Thu, 12 May 2005 23:27:46 -0500 (CDT)
    To: linux-kernel@vger.kernel.org
    
    

    I am running some experiments with the new O(1) scheduler. I am running my
    experiments on a cluster of 10 machines, running Rocks4.0 Beta (which
    comes with 2.6 kernel and hence the new scheduler)

    The behaviour of scheduler is unexplained, and am getting some very
    unexpected results. I read about the design of O(1) scheduler, and my
    results completely DISAGREE with the theory. Any insight into explaining
    this will be helpful.

    --------------------------CASE 1-------------------------------------------

    On a dual processor CPU, I have 2 processes running P1 and P2.

    Here is snapshot of CPU utilization:

            User Sys Nice
    CPU1 40 30 0 P1
    CPU2 40 30 0 P2

    Now I add a niced process with nice value =19. So I expect it to utilize
    the left over 30% CPU on either one of the CPUs. But instead the new
    snapshot of the system is

            User Sys Nice
    CPU1 0 0 100 niced_process
    CPU2 50 40 0 P1 & P2

    So overall the nice process finishes in time. And normal process gets
    slowed down by 30-40 %.

    **NOTE: P1 and P2 and MPI jobs, so they wait on gettting data from other
    nodes and consume only 70% CPU max.
    nice process is cpu hog and consume 100% CPU
    ---------------------------------------------------------------------

    --------------------------CASE 2-------------------------------------------

    On a dual processor CPU, I have 2 processes running P1 and P2. But this
    time P1 and P2 are CPU hogs themselves

    Here is snapshot of CPU utilization:

            User Sys Nice
    CPU1 100 0 0 P1
    CPU2 100 0 0 P2

    Now I add a niced process with nice value =19.

            User Sys Nice
    CPU1 100 0 0 P1
    CPU2 95 0 5 P2 & niced_process

    This is GREAT! As expected.

    But the CATCH is, if the niced_process is started first, and then P1 and
    P2 are initiated, the behaviour is completely unexpected.

            User Sys Nice
    CPU1 0 0 100 niced_process
    CPU2 0 0 0 -

    Now I add P1 and P2

            User Sys Nice
    CPU1 0 0 100 niced_process
    CPU2 100 0 0 P1 & P2

    I expected the nice process to give up CPU to either P1 and P2.

    NOTE: Here P1 , P2 and Niced_process are CPU hogs, and run at 100% cpu
    utilization

    ---------------------------------------------------------------------

    Any comments will be appreciated.

    PLEASE EMAIL ME AT : dvyas@cs.uh.edu

    Thanks
    Deepti

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Douglas Gilbert: "Re: SCSI/ISCSI, hardware/software"

    Relevant Pages

    • One minute delay when booting 2.6.24.1
      ... Switched to high resolution mode on CPU 1 ... io scheduler anticipatory registered ... # Infrared-port device drivers ...
      (Linux-Kernel)
    • [RFC][PATCH] O(1) Entitlement Based Scheduler
      ... This patch is a modification of the Oscheduler that introduces ... _entitlement_ to CPU resources that is determined by the number of _shares_ ... This patch provides both soft and hard CPU usage rate caps per ... one getting the most can be given a better priority, ...
      (Linux-Kernel)
    • Scheduler Economy prototype patch for CFS
      ... X should get more CPU time simply ... the clients, not relative to any client individually. ... today i've implemented a quick prototype of this "Scheduler Economy" ... * Scheduler work account object: it consists of the price, ...
      (Linux-Kernel)
    • Re: Re: OSDL Bug 3770
      ... We're discussing the fact that on SMP machines, ... N> CPU to be starved, while tasks on another CPU with the same low ... L> could had run on another CPU if the scheduler had decided otherwise). ... Does Linux tolerate hard CPU binding? ...
      (Linux-Kernel)
    • Re: [PATCH] CFS: sched-design-CFS.txt - ambiguity about leftmost and some formatting
      ... this is the CFS scheduler. ... precise multi-tasking CPU" on real hardware. ... disadvantage - the current task gets an unfair amount of CPU time. ... the task schedules (or a scheduler tick happens) the task's CPU usage is ...
      (Linux-Kernel)