• Ingo Molnar's avatar
    [PATCH] sched: voluntary kernel preemption · f8cbd99b
    Ingo Molnar authored
    This patch adds a new preemption model: 'Voluntary Kernel Preemption'.  The
    3 models can be selected from a new menu:
    
                (X) No Forced Preemption (Server)
                ( ) Voluntary Kernel Preemption (Desktop)
                ( ) Preemptible Kernel (Low-Latency Desktop)
    
    we still default to the stock (Server) preemption model.
    
    Voluntary preemption works by adding a cond_resched()
    (reschedule-if-needed) call to every might_sleep() check.  It is lighter
    than CONFIG_PREEMPT - at the cost of not having as tight latencies.  It
    represents a different latency/complexity/overhead tradeoff.
    
    It has no runtime impact at all if disabled.  Here are size stats that show
    how the various preemption models impact the kernel's size:
    
        text    data     bss     dec     hex filename
     3618774  547184  179896 4345854  424ffe vmlinux.stock
     3626406  547184  179896 4353486  426dce vmlinux.voluntary   +0.2%
     3748414  548640  179896 4476950  445016 vmlinux.preempt     +3.5%
    
    volu...
    f8cbd99b
Kconfig.preempt 2.27 KB