Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • linux-rt linux-rt
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Arch LinuxArch Linux
  • Packaging
  • Upstream
  • linux-rtlinux-rt
  • Repository
  • linux-rt
  • kernel
  • sched
  • idle.c
Find file BlameHistoryPermalink
  • Sebastian Andrzej Siewior's avatar
    sched: Make the idle timer expire always in hardirq context. · 2c14fa80
    Sebastian Andrzej Siewior authored Sep 06, 2021
    The intel powerclamp driver will setup a per-CPU worker with RT
    priority. The worker will then invoke play_idle() in which it remains in
    the idle poll loop until it is stopped by the timer it started earlier.
    
    That timer needs to expire in hardirq context on PREEMPT_RT. Otherwise
    the timer will expire in ksoftirqd as a SOFT timer but that task won't
    be scheduled on the CPU because its priority is lower than the priority
    of the worker which is in the idle loop.
    
    Always expire the idle timer in hardirq context.
    
    Fixes:c1de45ca
    
     ("sched/idle: Add support for tasks that inject idle")
    Reported-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
    Link: https://lkml.kernel.org/r/20210906113034.jgfxrjdvxnjqgtmc@linutronix.de
    2c14fa80