summaryrefslogtreecommitdiff
path: root/distrib/sets/lists
AgeCommit message (Collapse)Author
2023-01-28syncTheo Buehler
2023-01-28syncTheo de Raadt
2023-01-28syncTheo Buehler
2023-01-27syncTheo de Raadt
2023-01-18syncTheo de Raadt
2023-01-17syncTheo de Raadt
2023-01-16syncTheo de Raadt
2023-01-15syncTheo de Raadt
2023-01-14syncTheo de Raadt
2023-01-13syncTheo de Raadt
2023-01-08syncTheo de Raadt
2023-01-07syncTheo de Raadt
2023-01-07syncTheo de Raadt
2022-12-31syncJonathan Gray
2022-12-24syncTheo de Raadt
2022-12-19syncTheo de Raadt
2022-12-17syncTheo de Raadt
2022-12-15syncTheo de Raadt
2022-12-13syncTheo de Raadt
2022-12-02syncStuart Henderson
2022-11-28syncMatthieu Herrb
2022-11-24sycnTheo de Raadt
2022-11-23syncTheo de Raadt
2022-11-22syncTheo de Raadt
2022-11-22syncTheo de Raadt
2022-11-18syncTheo de Raadt
2022-11-16syncTheo de Raadt
2022-11-15syncStuart Henderson
2022-11-13syncTheo Buehler
2022-11-11syncMatthieu Herrb
2022-11-11syncTheo de Raadt
2022-11-11syncAnton Lindqvist
2022-11-07syncTheo de Raadt
2022-11-05clockintr(9): initial commitScott Soule Cheloha
clockintr(9) is a machine-independent clock interrupt scheduler. It emulates most of what the machine-dependent clock interrupt code is doing on every platform. Every CPU has a work schedule based on the system uptime clock. For now, every CPU has a hardclock(9) and a statclock(). If schedhz is set, every CPU has a schedclock(), too. This commit only contains the MI pieces. All code is conditionally compiled with __HAVE_CLOCKINTR. This commit changes no behavior yet. At a high level, clockintr(9) is configured and used as follows: 1. During boot, the primary CPU calls clockintr_init(9). Global state is initialized. 2. Primary CPU calls clockintr_cpu_init(9). Local, per-CPU state is initialized. An "intrclock" struct may be installed, too. 3. Secondary CPUs call clockintr_cpu_init(9) to initialize their local state. 4. All CPUs repeatedly call clockintr_dispatch(9) from the MD clock interrupt handler. The CPUs complete work and rearm their local interrupt clock, if any, during the dispatch. 5. Repeat step (4) until the system shuts down, suspends, or hibernates. 6. During resume, the primary CPU calls inittodr(9) and advances the system uptime. 7. Go to step (2). This time around, clockintr_cpu_init(9) also advances the work schedule on the calling CPU to skip events that expired during suspend. This prevents a "thundering herd" of useless work during the first clock interrupt. In the long term, we need an MI clock interrupt scheduler in order to (1) provide control over the clock interrupt to MI subsystems like timeout(9) and dt(4) to improve their accuracy, (2) provide drivers like acpicpu(4) a means for slowing or stopping the clock interrupt on idle CPUs to conserve power, and (3) reduce the amount of duplicated code in the MD clock interrupt code. Before we can do any of that, though, we need to switch every platform over to using clockintr(9) and do some cleanup. Prompted by "the vmm(4) time bug," among other problems, and a discussion at a2k19 on the subject. Lots of design input from kettenis@. Early versions reviewed by kettenis@ and mlarkin@. Platform-specific help and testing from kettenis@, gkoehler@, mlarkin@, miod@, aoyama@, visa@, and dv@. Babysitting and spiritual guidance from mlarkin@ and kettenis@. Link: https://marc.info/?l=openbsd-tech&m=166697497302283&w=2 ok kettenis@ mlarkin@
2022-10-27syncTheo de Raadt
2022-10-24syncTheo de Raadt
2022-10-21syncStuart Henderson
2022-10-14syncStuart Henderson
2022-10-07syncTheo de Raadt
2022-10-04syncTheo de Raadt
2022-09-14syncTheo de Raadt
2022-09-11syncTheo Buehler
2022-09-09syncMoritz Buhl
2022-09-09syncStuart Henderson
2022-09-05syncGeorge Koehler
2022-09-05syncStuart Henderson
2022-09-01syncStuart Henderson
2022-08-30Nuke disktab.h references in preparation for nuking disktab.h.Kenneth R Westerback
disktab.h has not been used or useful for a looooong time. Detailed historical research by jsg@. ok jsg@ deraadt@
2022-08-29syncJonathan Gray
2022-08-23sync (/var/agentx)Stuart Henderson