OpenBSD cvs log

created 2022-02-20T02:52:48Z
begin 2022-02-14T00:00:00Z
end 2022-02-15T00:00:00Z
path src/sys
commits 19

date 2022-02-14T00:53:40Z
author jsg
files src/sys/arch/arm64/dev/aplhidev.c log diff annotate
src/sys/dev/fdt/imxspi.c log diff annotate
src/sys/dev/fdt/simpleamp.c log diff annotate
message OF_getproplen() returns -1 on error, so don't store result in size_t
ok kettenis@

date 2022-02-14T02:57:21Z
author jsg
files src/sys/dev/acpi/dwgpio.c log diff annotate
message test the correct pointer for acpi_intr_establish() result
ok deraadt@ gnezdo@

date 2022-02-14T03:51:42Z
author jsg
files src/sys/dev/pci/drm/amd/amdgpu/amdgpu_kms.c log diff annotate
src/sys/dev/pci/drm/radeon/radeon_kms.c log diff annotate
message change a NULL pa_memex test after use to an earlier KASSERT
from Ted Bullock

date 2022-02-14T04:33:18Z
author dlg
files src/sys/kern/uipc_mbuf.c log diff annotate
src/sys/kern/uipc_socket2.c log diff annotate
src/sys/sys/mbuf.h log diff annotate
message update sbchecklowmem() to better detect actual mbuf memory usage.

previously sbchecklowmem() (and sonewconn()) would look at the mbuf
and mbuf cluster pools to see if they were approaching their hard
limits. based on how many mbufs/clusters were allocated against the
limits, socket operations would start to fail with ENOBUFS until
utilisation went down.

mbufs and clusters have changed a lot since then though. there are
now many mbuf cluster pools, not just one for 2k clusters. because
of this the mbuf layer now limits the amount of memory all the mbuf
pools can allocate backend pages from rather than limit the individual
pools. this means sbchecklowmem() ends up looking at the default
pool hard limit, which is UINT_MAX, which in turn means means
sbchecklowmem() probably never applies backpressure. this is made
worse on multiprocessor systems where per cpu caches of mbuf and
cluster pool items are enabled because the number of in use pool
items is distorted by the cpu caches.

this switches sbchecklowmem to looking at the page allocations made
by all the pools instead. the big benefit of this is that the page
allocations are much more representative of the overall mbuf memory
usage in the system. the downside is is that the backend page
allocation accounting does not see idle memory held by pools. pools
cannot release partially free pages to the page backend (obviously),
and pools cache idle items to avoid thrashing on the backend page
allocator. this means the page allocation level is higher than the
memory used by actual in-flight mbufs.

however, this can also be a benefit. the backend page allocation is a
kind of smoothed out "trend" line. mbuf utilisation over short periods
can be extremely bursty because of things like rx ring dequeue and fill
cycles, or large socket sends. if you're trying to grow socket
buffers while these things are happening, luck becomes an important
factor in whether it will work or not. because pools cache idle items,
the backend page utilisation better represents the overall trend
of activity in the system and will give more consistent behaviour here.

this diff is deliberately simple. we're basically going from "no
limits" to "some sort of limit" for sockets again, so keeping the
code simple means it should be easy to understand and tweak in the
future.

ok djm@ visa@ claudio@

date 2022-02-14T04:41:13Z
author jsg
files src/sys/dev/pci/drm/radeon/radeon_kms.c log diff annotate
message no need for ifndef __sparc64__
from Ted Bullock who tested on sparc64 with xvr-100

date 2022-02-14T04:55:55Z
author jsg
files src/sys/dev/pci/drm/radeon/radeon_kms.c log diff annotate
message remove unused code

date 2022-02-14T05:20:03Z
author jsg
files src/sys/dev/pci/drm/amd/amdgpu/amdgpu_kms.c log diff annotate
src/sys/dev/pci/drm/i915/i915_drv.c log diff annotate
src/sys/dev/pci/drm/radeon/radeon_kms.c log diff annotate
message check return value of drm_attach_pci()
adapted from a diff by Ted Bullock

date 2022-02-14T05:30:53Z
author jsg
files src/sys/dev/pci/drm/amd/amdgpu/amdgpu_kms.c log diff annotate
src/sys/dev/pci/drm/radeon/radeon_kms.c log diff annotate
message reprint device name in attach error paths if needed

date 2022-02-14T11:26:05Z
author claudio
files src/sys/kern/kern_exit.c log diff annotate
src/sys/kern/kern_sig.c log diff annotate
src/sys/kern/kern_synch.c log diff annotate
src/sys/sys/signalvar.h log diff annotate
src/sys/ufs/mfs/mfs_vfsops.c log diff annotate
message Introduce a signal context that is used to pass signal related information
from cursig() to postsig() or the caller itself. This will simplify locking.
Also alter sigactsfree() a bit and move it into process_zap() so ps_sigacts
is always a valid pointer.
OK semarie@

date 2022-02-14T12:54:43Z
author jsg
files src/sys/dev/ofw/ofw_regulator.c log diff annotate
message OF_getproplen() returns -1 on error, so don't store result in size_t
spotted by and ok tb@, ok tobhe@

date 2022-02-14T13:03:52Z
author aoyama
files src/sys/arch/luna88k/include/bus.h log diff annotate
message Delete incomplete implementation of bus_space_{alloc,free} in bus.h.

This prevents errors on luna88k in src/usr.sbin/fw_update/pattern.c
which includes dev/pci/pcivar.h, which includes machine/bus.h.

Suggested by miod@

date 2022-02-14T14:55:53Z
author kettenis
files src/sys/arch/arm64/dev/apliic.c log diff annotate
message Pass the entire compatible property for devices attaching to the iic(4) bus.

ok visa@

date 2022-02-14T14:57:00Z
author kettenis
files src/sys/dev/fdt/tascodec.c log diff annotate
message Use iic_is_compatible(9) and use the more generic compatible string to
match the device.

ok visa@

date 2022-02-14T18:09:08Z
author rob
files src/sys/sys/sysctl.h log diff annotate
message Revert change to ps for displaying chrooted process.
Ok deraadt

date 2022-02-14T19:25:03Z
author deraadt
files src/sys/dev/acpi/acpi_x86.c log diff annotate
message acpi_indicator() can take the softc*, instead of void*

date 2022-02-14T21:11:02Z
author kn
files src/sys/uvm/uvm_map.c log diff annotate
message Unwire with map lock held

This is an updated version of uvm_map.c r1.283 "Unwire with map lock held".

The previous version introduced a use-after-free by not unlocking vm_map
locks in uvm_map_teardown(), resulting in dangling references on the
reaper's lock list (thanks visa!).

Lock and unlock the map in around uvm_map_teardown() instead.
This code path holds the last reference, hence the lock isn't strictly
needed except for satisfying upcoming locking assertions.

Tested on amd64, arm64, i386, macppc, octeon, sparc64.
This time also with WITNESS enabled (except on sparc64 which builds but does
not boot with WITNESS; this is a known issue).

OK mpi visa

date 2022-02-14T23:02:15Z
author jsg
files src/sys/dev/pcmcia/if_malo.c log diff annotate
message fix cmalo_media_change() test
ok claudio@ deraadt@

date 2022-02-14T23:20:46Z
author jsg
files src/sys/arch/hppa/dev/mongoose.c log diff annotate
src/sys/arch/macppc/dev/openpic.c log diff annotate
message don't deref pointer before test it is safe
ok miod@

date 2022-02-14T23:42:37Z
author kettenis
files src/sys/dev/acpi/acpi_x86.c log diff annotate
message Make sure we call acpi_resume_cpu() with the right ACPI state. This was
accidentally broken with the reorganization of the suspend/resume code that
was committed a few days ago.

ok deraadt@