[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC 00/10] hw/mos6522: VIA timer emulation fixes and improvements
From: |
Finn Thain |
Subject: |
Re: [RFC 00/10] hw/mos6522: VIA timer emulation fixes and improvements |
Date: |
Wed, 1 Sep 2021 12:20:32 +1000 (AEST) |
On Tue, 31 Aug 2021, Mark Cave-Ayland wrote:
> You mentioned that the OS may compensate for the fact that the 6522
> doesn't have an overflow flag: can you explain more as to how this works
> in Linux?
When running on real hardware, Linux/mac68k does so by
- Elevating the interrupt priority of VIA 1 so that other drivers do not
interfere with timekeeping
- Constraining intervals during which the IPL is kept elevated (i.e.
local_irq_disable/enable).
When runing on QEMU, none of that is sufficient and the Linux/mac68k
kernel can do very little to influence interrupt latency.
Linux ports to other platforms typically have multiple timers and counters
with which to implement reliable clocksource devices.
When running on other virtualization platforms, Linux may solve the
problem using a paravirtual clock device. Please see
CONFIG_PARAVIRT_CLOCK, arch/x86/include/asm/pvclock-abi.h,
arch/x86/kernel/pvclock.c, arch/x86/include/asm/vdso/gettimeofday.h
arch/x86/xen/time.c and so on.