• R
    sched: cfs: add bpf hooks to control wakeup and tick preemption · f9a09a81
    Roman Gushchin 提交于
    maillist inclusion
    category: feature
    bugzilla: https://gitee.com/openeuler/kernel/issues/I5F6X6
    CVE: NA
    
    Reference: https://lore.kernel.org/all/20210916162451.709260-1-guro@fb.com/
    
    -------------------
    
    This patch adds 3 hooks to control wakeup and tick preemption:
      cfs_check_preempt_tick
      cfs_check_preempt_wakeup
      cfs_wakeup_preempt_entity
    
    The first one allows to force or suppress a preemption from a tick
    context. An obvious usage example is to minimize the number of
    non-voluntary context switches and decrease an associated latency
    penalty by (conditionally) providing tasks or task groups an extended
    execution slice. It can be used instead of tweaking
    sysctl_sched_min_granularity.
    
    The second one is called from the wakeup preemption code and allows
    to redefine whether a newly woken task should preempt the execution
    of the current task. This is useful to minimize a number of
    preemptions of latency sensitive tasks. To some extent it's a more
    flexible analog of a sysctl_sched_wakeup_granularity.
    
    The third one is similar, but it tweaks the wakeup_preempt_entity()
    function, which is called not only from a wakeup context, but also
    from pick_next_task(), which allows to influence the decision on which
    task will be running next.
    
    It's a place for a discussion whether we need both these hooks or only
    one of them: the second is more powerful, but depends more on the
    current implementation. In any case, bpf hooks are not an ABI, so it's
    not a deal breaker.
    
    The idea of the wakeup_preempt_entity hook belongs to Rik van Riel. He
    also contributed a lot to the whole patchset by proving his ideas,
    recommendations and a feedback for earlier (non-public) versions.
    Signed-off-by: NRoman Gushchin <guro@fb.com>
    Signed-off-by: NChen Hui <judy.chenhui@huawei.com>
    Signed-off-by: NRen Zhijie <renzhijie2@huawei.com>
    f9a09a81
sched_hook_defs.h 340 字节