OpenBSD cvs log

created 2023-07-29T21:34:12Z
begin 2023-07-25T00:00:00Z
end 2023-07-26T00:00:00Z
path src/sys
commits 7

date 2023-07-25T04:42:00Z
author deraadt
files src/sys/arch/amd64/amd64/cpu.c log diff annotate
message Some hypervisors (such as Hertzner) allow msr read of DE_CFG (which does
not indicate bit 9 set, but they could have a firmware fix) but then block
a msr write to bit 9 (which disables enough AVX optimizations
to prevent the exfiltration of data), with a fault. So let's also check
the HV bit before we decide to modify the bit. hypervisors are expected
to set that bit. tested by lucas at sexy dot is.
with jsg, ok mlarkin

date 2023-07-25T04:42:02Z
author deraadt
files src/sys/arch/i386/i386/machdep.c log diff annotate
message Some hypervisors (such as Hertzner) allow msr read of DE_CFG (which does
not indicate bit 9 set, but they could have a firmware fix) but then block
a msr write to bit 9 (which disables enough AVX optimizations
to prevent the exfiltration of data), with a fault. So let's also check
the HV bit before we decide to modify the bit. hypervisors are expected
to set that bit. tested by lucas at sexy dot is.
with jsg, ok mlarkin

date 2023-07-25T06:48:37Z
author guenther
files src/sys/arch/amd64/amd64/locore.S log diff annotate
src/sys/arch/amd64/include/cpu.h log diff annotate
message cpu_idle_{enter,leave} are no-ops on amd64 now, so just #define
away the calls

ok deraadt@ mpi@ miod@

date 2023-07-25T10:00:44Z
author miod
files src/sys/arch/hppa/gsc/gsckbc.c log diff annotate
src/sys/arch/sparc64/dev/pckbc_ebus.c log diff annotate
src/sys/dev/ic/pckbc.c log diff annotate
src/sys/dev/ic/pckbcvar.h log diff annotate
src/sys/dev/pckbc/pckbd.c log diff annotate
message Extend the PCKBC_CANT_TRANSLATE feature, specific to Tadpole/RDI hardware,
to also support scan code set #3 in addition to the existing scan code set #2.

This makes the built-in keyboard on the Tadpole UltraBook IIe work.

date 2023-07-25T18:16:19Z
author cheloha
files src/sys/arch/alpha/alpha/clock.c log diff annotate
src/sys/arch/alpha/include/cpu.h log diff annotate
src/sys/arch/amd64/include/cpu.h log diff annotate
src/sys/arch/amd64/isa/clock.c log diff annotate
src/sys/arch/arm/cortex/agtimer.c log diff annotate
src/sys/arch/arm/cortex/amptimer.c log diff annotate
src/sys/arch/arm/include/cpu.h log diff annotate
src/sys/arch/arm64/dev/agtimer.c log diff annotate
src/sys/arch/armv7/omap/dmtimer.c log diff annotate
src/sys/arch/armv7/omap/gptimer.c log diff annotate
src/sys/arch/armv7/sunxi/sxitimer.c log diff annotate
src/sys/kern/kern_clock.c log diff annotate
src/sys/kern/kern_clockintr.c log diff annotate
src/sys/kern/kern_sched.c log diff annotate
src/sys/kern/sched_bsd.c log diff annotate
src/sys/kern/subr_prof.c log diff annotate
src/sys/sys/clockintr.h log diff annotate
src/sys/sys/resourcevar.h log diff annotate
src/sys/sys/sched.h log diff annotate
message statclock: move profil(2), GPROF code to profclock(), gmonclock()

This patch isolates profil(2) and GPROF from statclock(). Currently,
statclock() implements both profil(2) and GPROF through a complex
mechanism involving both platform code (setstatclockrate) and the
scheduler (pscnt, psdiv, and psratio). We have a machine-independent
interface to the clock interrupt hardware now, so we no longer need to
do it this way.

- Move profil(2)-specific code from statclock() to a new clock
interrupt callback, profclock(), in subr_prof.c. Each
schedstate_percpu has its own profclock handle. The profclock is
enabled/disabled for a given CPU when it is needed by the running
thread during mi_switch() and sched_exit().

- Move GPROF-specific code from statclock() to a new clock interrupt
callback, gmonclock(), in subr_prof.c. Where available, each cpu_info
has its own gmonclock handle . The gmonclock is enabled/disabled for
a given CPU via sysctl(2) in prof_state_toggle().

- Both profclock() and gmonclock() have a fixed period, profclock_period,
that is initialized during initclocks().

- Export clockintr_advance(), clockintr_cancel(), clockintr_establish(),
and clockintr_stagger() via <sys/clockintr.h>. They have external
callers now.

- Delete pscnt, psdiv, psratio. From schedstate_percpu, also delete
spc_pscnt and spc_psdiv. The statclock frequency is not dynamic
anymore so these variables are now useless.

- Delete code/state related to the dynamic statclock frequency from
kern_clockintr.c. The statclock frequency can still be pseudo-random,
so move the contents of clockintr_statvar_init() into clockintr_init().

With input from miod@, deraadt@, and claudio@. Early revisions
cleaned up by claudio. Early revisions tested by claudio@. Tested by
cheloha@ on amd64, arm64, macppc, octeon, and sparc64 (sun4v).
Compile- and boot- tested on i386 by mlarkin@. riscv64 compilation
bugs found by mlarkin@. Tested on riscv64 by jca@. Tested on
powerpc64 by gkoehler@.

date 2023-07-25T18:16:20Z
author cheloha
files src/sys/arch/arm64/include/cpu.h log diff annotate
src/sys/arch/hppa/dev/clock.c log diff annotate
src/sys/arch/hppa/include/cpu.h log diff annotate
src/sys/arch/i386/include/cpu.h log diff annotate
src/sys/arch/i386/isa/clock.c log diff annotate
src/sys/arch/luna88k/luna88k/clock.c log diff annotate
src/sys/arch/m88k/include/cpu.h log diff annotate
src/sys/arch/macppc/macppc/clock.c log diff annotate
src/sys/arch/mips64/include/cpu.h log diff annotate
src/sys/arch/mips64/mips64/mips64_machdep.c log diff annotate
src/sys/arch/powerpc/include/cpu.h log diff annotate
message statclock: move profil(2), GPROF code to profclock(), gmonclock()

This patch isolates profil(2) and GPROF from statclock(). Currently,
statclock() implements both profil(2) and GPROF through a complex
mechanism involving both platform code (setstatclockrate) and the
scheduler (pscnt, psdiv, and psratio). We have a machine-independent
interface to the clock interrupt hardware now, so we no longer need to
do it this way.

- Move profil(2)-specific code from statclock() to a new clock
interrupt callback, profclock(), in subr_prof.c. Each
schedstate_percpu has its own profclock handle. The profclock is
enabled/disabled for a given CPU when it is needed by the running
thread during mi_switch() and sched_exit().

- Move GPROF-specific code from statclock() to a new clock interrupt
callback, gmonclock(), in subr_prof.c. Where available, each cpu_info
has its own gmonclock handle . The gmonclock is enabled/disabled for
a given CPU via sysctl(2) in prof_state_toggle().

- Both profclock() and gmonclock() have a fixed period, profclock_period,
that is initialized during initclocks().

- Export clockintr_advance(), clockintr_cancel(), clockintr_establish(),
and clockintr_stagger() via <sys/clockintr.h>. They have external
callers now.

- Delete pscnt, psdiv, psratio. From schedstate_percpu, also delete
spc_pscnt and spc_psdiv. The statclock frequency is not dynamic
anymore so these variables are now useless.

- Delete code/state related to the dynamic statclock frequency from
kern_clockintr.c. The statclock frequency can still be pseudo-random,
so move the contents of clockintr_statvar_init() into clockintr_init().

With input from miod@, deraadt@, and claudio@. Early revisions
cleaned up by claudio. Early revisions tested by claudio@. Tested by
cheloha@ on amd64, arm64, macppc, octeon, and sparc64 (sun4v).
Compile- and boot- tested on i386 by mlarkin@. riscv64 compilation
bugs found by mlarkin@. Tested on riscv64 by jca@. Tested on
powerpc64 by gkoehler@.

date 2023-07-25T18:16:21Z
author cheloha
files src/sys/arch/powerpc64/powerpc64/clock.c log diff annotate
src/sys/arch/riscv64/include/cpu.h log diff annotate
src/sys/arch/riscv64/riscv64/clock.c log diff annotate
src/sys/arch/sh/include/cpu.h log diff annotate
src/sys/arch/sh/sh/clock.c log diff annotate
src/sys/arch/sparc64/include/cpu.h log diff annotate
src/sys/arch/sparc64/sparc64/clock.c log diff annotate
message statclock: move profil(2), GPROF code to profclock(), gmonclock()

This patch isolates profil(2) and GPROF from statclock(). Currently,
statclock() implements both profil(2) and GPROF through a complex
mechanism involving both platform code (setstatclockrate) and the
scheduler (pscnt, psdiv, and psratio). We have a machine-independent
interface to the clock interrupt hardware now, so we no longer need to
do it this way.

- Move profil(2)-specific code from statclock() to a new clock
interrupt callback, profclock(), in subr_prof.c. Each
schedstate_percpu has its own profclock handle. The profclock is
enabled/disabled for a given CPU when it is needed by the running
thread during mi_switch() and sched_exit().

- Move GPROF-specific code from statclock() to a new clock interrupt
callback, gmonclock(), in subr_prof.c. Where available, each cpu_info
has its own gmonclock handle . The gmonclock is enabled/disabled for
a given CPU via sysctl(2) in prof_state_toggle().

- Both profclock() and gmonclock() have a fixed period, profclock_period,
that is initialized during initclocks().

- Export clockintr_advance(), clockintr_cancel(), clockintr_establish(),
and clockintr_stagger() via <sys/clockintr.h>. They have external
callers now.

- Delete pscnt, psdiv, psratio. From schedstate_percpu, also delete
spc_pscnt and spc_psdiv. The statclock frequency is not dynamic
anymore so these variables are now useless.

- Delete code/state related to the dynamic statclock frequency from
kern_clockintr.c. The statclock frequency can still be pseudo-random,
so move the contents of clockintr_statvar_init() into clockintr_init().

With input from miod@, deraadt@, and claudio@. Early revisions
cleaned up by claudio. Early revisions tested by claudio@. Tested by
cheloha@ on amd64, arm64, macppc, octeon, and sparc64 (sun4v).
Compile- and boot- tested on i386 by mlarkin@. riscv64 compilation
bugs found by mlarkin@. Tested on riscv64 by jca@. Tested on
powerpc64 by gkoehler@.