git: clock: Piggyback passive IPIQ processing

Sepherosa Ziehau sephe at crater.dragonflybsd.org
Tue Apr 7 20:14:36 PDT 2015


commit e76d2ad39d255dbd48399fe9b26b0b636d12b536
Author: Sepherosa Ziehau <sephe at dragonflybsd.org>
Date:   Mon Apr 6 20:52:28 2015 +0800

    clock: Piggyback passive IPIQ processing
    
    Passive IPIs will be flushed by the target CPU at clock interrupt.
    But we _never_ completely conform to the passive IPI description.
    
    Before we implemented LAPIC interrupt timer, systimers on non-CPU0
    were actually IPIQ processing, which processed the passive IPIs;
    however, passive IPIQ processing on CPU0 didn't conform to the passive
    IPIs description.
    
    After the introduction of LAPIC interrupt timer, none of the systimers
    were related to IPIQ processing, thus passive IPIQ processing no longer
    conformed to the passive IPI description at all.
    
    As of this commit we piggyback passive IPIQ processing in doreti after
    hardclock(), which matches the passive IPI description.
    
    * NOTE:
    - We don't piggypack passive IPIQ processing directly in hardclock() to
      avoid introducing extra jitters to system time.
    - We choose not to check passive IPIQ in systimer_intr(), since systimer
      rate could be pretty high, e.g. rate set by polling(4).
    
    With-feedback-from: dillon@

Summary of changes:
 sys/kern/kern_clock.c |  7 ++++++-
 sys/sys/thread2.h     | 12 ++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/e76d2ad39d255dbd48399fe9b26b0b636d12b536


-- 
DragonFly BSD source repository



More information about the Commits mailing list