Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
ok espie
|
|
- while here, sort NAME
|
|
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@
|
|
Only five legacy half-duplex hardware drivers require this function to
change between playing and recording:
i386: ess(4), gus(4), pas(4), sb(4)
luna88k: nec86(4)
If defined, it is always called early in audio_open(), so just move the
call from audio(4) to each hardware driver's open() handler.
SPKR_ON/OFF remain defined to leave driver-specific code unchanged.
Further cleanup (unchecked speaker_ctl() return values,
FWRITE -> AUMODE_PLAY -> SPKR_ON dances, etc.) can happen later.
Builds fine on i386.
OK ratchov
|
|
Major changes:
o Mexico will no longer observe DST except near the US border.
o Chihuahua moves to year-round -06 on 2022-10-30.
o Fiji no longer observes DST.
|
|
All audio drivers have been cleaned up and, if needed, now check for duplex
mode in their open() handler.
OK ratchov miod
|
|
- just call it (a sh(1)) script, in line with MAKEDEV(8) and rc.d(8)
- use only .Nm thereafter instead of .Nm/the .Nm script/...
- zap the additional rc.conf(8) bits for they can be found in this manual
- zap unhelpful "(or can be)"
Feedback OK jmc
|
|
Found by Alec olp_76 <at> yahoo <dot> ca
OK sthen@, denis@
|
|
- use plural to clarify how more than interface may be passed
- drop the distinction between interface and bridge
- drop useless example: netstart is as trivial as echo(1)
- mention options the usual way, this also adds tags which makes ":tn" work
as expected in the pager to jump to `-n's definition
OK jmc
|
|
|
|
while here, knock out the Tn macros and patch up AUTHORS;
|
|
|
|
Contrary to other scripts in base like rc.d(8) or MAKEDEV(8), netstart(8)
itself is not executable and must be passed as file to sh(1):
$ man -h netstart
/etc/netstart [-n] [interface ...]
$ /etc/netstart
ksh: /etc/netstart: cannot execute - Permission denied
Fix usage and synopsis to provide required usage:
$ man -h netsart
sh /etc/netstart [-n] [interface ...]
OK jmc
|
|
with and ok jmc@ ok mglocker@
|
|
|
|
|
|
status information.
ok deraadt@
|
|
|
|
from Raf Czlonka, thanks
|
|
|
|
formating help from jcw@ and schwarze@
ok mlarkin@
|
|
|
|
|
|
All consumers now use C99 struct init and none of them sets `.setfd'.
OK ratchov miod
|
|
At least the built-in controller on sparc64 T4-2 machines supports 1E from
which OpenBSD boots just fine, but bioctl(8) reports it as RAID 10:
mpii0 at pci15 dev 0 function 0 "Symbios Logic SAS2008" rev 0x03: msi
mpii0: Solana On-Board, firmware 9.0.0.0 IR, MPI 2.0
scsibus1 at mpii0: 834 targets
sd0 at scsibus1 targ 0 lun 0: <LSI, Logical Volume, 3000> naa.600508e0000000006cd1dcd59022a30a
sd0: 713824MB, 512 bytes/sector, 1461911552 sectors
root on sd0a (efde5b2c6ab7b8ac.a) swap on sd0b dump on sd0b
# bioctl mpii0
Volume Status Size Device
mpii0 0 Online 748498714112 sd0 RAID10
0 Online 500107861504 0:2.0 noencl <ATA CT500MX500SSD1>
1 Online 500107861504 0:1.0 noencl <ATA CT500MX500SSD1>
2 Online 500107861504 0:0.0 noencl <ATA CT500MX500SSD1>
mpii(4) simply munged 1E into 10.
Report it as 0x1E just like softraid(4) RAID 1C is 0x1C internally:
# ./obj/bioctl mpii0 | grep RAID
mpii0 0 Online 748498714112 sd0 RAID1E
OK jsing
|
|
Major changes:
o Jordan and Syria switch from +02/+03 with DST to year-round +03.
|
|
|
|
DEC standard 144 bad sector information is no longer a thing. As
evidenced by bad144(8) moving to the attic 16 years ago.
ok miod@, who points out that badsect(8) is now the nail sticking
out.
|
|
|
|
ok jmc@
|
|
|
|
reminded by jmc
|
|
- add /var/agentx; text from martijn
|
|
|
|
OK jmc deraadt
|
|
tweak/ok claudio
|
|
Major changes:
o Palestine DST transitions are now Saturdays at 02:00.
|
|
|
|
|
|
|
|
|
|
|
|
spotted by kn@
|
|
|
|
|
|
|