OpenBSD cvs log

created 2022-07-03T20:28:10Z
begin 2022-06-28T00:00:00Z
end 2022-06-29T00:00:00Z
path src/sys
commits 31

date 2022-06-28T08:01:40Z
author mvs
files src/sys/net/if.c log diff annotate
src/sys/net/netisr.h log diff annotate
src/sys/net/pipex.c log diff annotate
message Introduce `pipexoutq' mbuf(9) queue, and put outgoing pipex(4) related
PPPOE packets within. Do (*if_output)() calls within netisr handler with
netlock held.

We can't predict netlock state when pipex(4) related (*if_qstart)()
handlers called. This means we can't use netlock within pppac_qstart()
and pppx_if_qstart() handlers.

ok bluhm@

date 2022-06-28T08:14:03Z
author kettenis
files src/sys/dev/acpi/xhci_acpi.c log diff annotate
message Add hardware ID for XHCI-compliant USB controller without standard debug.

ok jsg@

date 2022-06-28T08:15:04Z
author kettenis
files src/sys/dev/acpi/ehci_acpi.c log diff annotate
message Add hardware ID for EHCI-compliant USB controller with standard debug.

ok jsg@

date 2022-06-28T08:24:29Z
author bluhm
files src/sys/netinet6/ip6_input.c log diff annotate
message The ip6_hbhchcheck() function never reads the nxtp parameter, it
only sets its value. It is more obvious to return the next protocol
or IPPROTO_DONE to signal error. All IP protocol functions do that.
OK sashan@ florian@

date 2022-06-28T09:32:27Z
author bluhm
files src/sys/dev/dt/dt_prov_static.c log diff annotate
src/sys/dev/dt/dtvar.h log diff annotate
src/sys/kern/kern_synch.c log diff annotate
src/sys/netinet/in_pcb.c log diff annotate
src/sys/netinet/ip_ipsp.c log diff annotate
message Use btrace(8) to debug reference counting. dt(4) provides a static
tracepoint for each type of refcnt we have. As a start, add inpcb
and tdb refcnt. When the counter changes, btrace may print the
actual object, the current counter, the change value and optionally
the stack trace.
discussed with visa@; OK mpi@

date 2022-06-28T09:32:28Z
author bluhm
files src/sys/sys/refcnt.h log diff annotate
src/sys/sys/tracepoint.h log diff annotate
message Use btrace(8) to debug reference counting. dt(4) provides a static
tracepoint for each type of refcnt we have. As a start, add inpcb
and tdb refcnt. When the counter changes, btrace may print the
actual object, the current counter, the change value and optionally
the stack trace.
discussed with visa@; OK mpi@

date 2022-06-28T09:41:24Z
author jan
files src/sys/net/if.c log diff annotate
message ifconfig(8) return "Not supported" if you try to configure tso on a non-tso
supported interface.

pointed out by bluhm@

OK bluhm@

date 2022-06-28T10:01:13Z
author bluhm
files src/sys/net/route.c log diff annotate
src/sys/net/route.h log diff annotate
src/sys/net/rtable.c log diff annotate
src/sys/net/rtsock.c log diff annotate
message Use refcnt API for struct rtentry instead of hand-crafted atomic
operations.
OK mvs@

date 2022-06-28T10:38:55Z
author mpi
files src/sys/uvm/uvm_fault.c log diff annotate
message Do not consider adjacent pages when doing a CoW.

Those pages should already be entered, this speeds up CoW faults.

Stolen from NetBSD.

ok miod@, kettenis@

date 2022-06-28T10:45:55Z
author mpi
files src/sys/uvm/uvm_fault.c log diff annotate
src/sys/uvm/uvm_pager.c log diff annotate
message Do not clean PG_BUSY before calling uvm_anon_release().

Fix an assertion reported by gkoehler@.

ok kettenis@

date 2022-06-28T12:08:17Z
author claudio
files src/sys/kern/kern_sig.c log diff annotate
message Cleanup the sleep loop in single_thread_check_locked(). The deep checks
only matter on entry and the pr->ps_single check is done in the while body.
With and OK mpi@

date 2022-06-28T12:10:37Z
author mpi
files src/sys/uvm/uvm_pager.c log diff annotate
message Move the guts of uvm_aio_aiodone() into a separate function.

This will help dealing with error cases.

No functionnal changes.

date 2022-06-28T12:11:41Z
author jsg
files src/sys/arch/amd64/amd64/cacheinfo.c log diff annotate
src/sys/arch/amd64/include/Attic/cacheinfo.h log diff annotate
src/sys/arch/amd64/include/cpu.h log diff annotate
message rewrite amd64 printing of cache details

Previously we looked at cpuid 0x80000005 for L1/TLB details
which Intel documents as reserved.
And cpuid 0x80000006 for L2 details.

Intel also encode cache details in cpuid 4.
AMD have mostly the same encoding with cpuid 0x8000001d
0x80000005/0x80000006 is used as a fallback.

Prompted by Intel Tiger Lake and Alder Lake machines
returning an associativity value of 7 from cpuid 0x80000006.
The previous code would print "disabled L2 cache", 7 is
documented by Intel as "See CPUID leaf 04H, sub-leaf 2".

tested by Hrvoje Popovski on EPYC 7413, and myself on various machines
ok mlarkin@

date 2022-06-28T13:05:42Z
author deraadt
files src/sys/dev/pci/pcidevs log diff annotate
message a start at qualcomm products

date 2022-06-28T13:06:21Z
author deraadt
files src/sys/dev/pci/pcidevs.h log diff annotate
src/sys/dev/pci/pcidevs_data.h log diff annotate
message sync

date 2022-06-28T13:48:06Z
author henning
files src/sys/net/pf.c log diff annotate
message fix syncookies in conjunction with tcp fast port reuse.
This really pointed out that the place syncookies were hooked in was almost,
but not completely right. The way it was the special case for tcp fast port
reuse in pf_test_state wasn't hit, because the first packet
hitting that was the ACK from the peer finishing the 3WHS, and the
reconstructed SYN came after. We're now doing pf_find_state (and *only* that)
first, then syncookies, then going on so that the old state is thrown away
properly and we get a new one with the sequence number modulator set up
correctly
Bonus: -11 lines of code
tracked down (that took a while) + fixed under contract with Hush
Communications Canada; special thanks to Lyndon
ok sashan

date 2022-06-28T14:43:50Z
author visa
files src/sys/arch/amd64/amd64/conf.c log diff annotate
src/sys/arch/amd64/include/conf.h log diff annotate
src/sys/arch/arm/include/conf.h log diff annotate
src/sys/arch/arm64/include/conf.h log diff annotate
src/sys/arch/i386/i386/conf.c log diff annotate
src/sys/arch/i386/include/conf.h log diff annotate
src/sys/arch/landisk/include/conf.h log diff annotate
src/sys/arch/loongson/include/conf.h log diff annotate
src/sys/arch/luna88k/include/conf.h log diff annotate
src/sys/arch/macppc/include/conf.h log diff annotate
src/sys/arch/octeon/include/conf.h log diff annotate
src/sys/arch/powerpc64/include/conf.h log diff annotate
src/sys/arch/riscv64/include/conf.h log diff annotate
src/sys/arch/sparc64/include/conf.h log diff annotate
src/sys/sys/conf.h log diff annotate
message Remove unused field d_poll from struct cdevsw.

OK miod@ mpi@

date 2022-06-28T16:10:43Z
author mvs
files src/sys/net/if_ethersubr.c log diff annotate
message Don't call pipex_rele_session() when `session' is NULL.

Reported by Hrvoje Popovski. ok bluhm@

date 2022-06-28T16:28:08Z
author anton
files src/sys/dev/ic/pluart.c log diff annotate
message Remove commented out variables and excessive blank lines in
pluart_param().

date 2022-06-28T16:29:03Z
author anton
files src/sys/dev/fdt/bcm2835_dmac.c log diff annotate
message No need to pass a copy of the bcmdmac_channel structure to predicate
routines.

ok deraadt@ kettenis@

date 2022-06-28T16:29:56Z
author anton
files src/sys/dev/acpi/com_acpi.c log diff annotate
message A com_acpi_softc pointer is used as the interrupt callback cookie which
is later on interpreted as a com_softc pointer. This is not a problem in
practice as a com_softc structure is the first member of the
com_acpi_softc structure.

Using the actual types consistently yields a better symmetry in my
opinion between registering the interrupt and the corresponding
interrupt handler.

ok deraadt@ kettenis@

date 2022-06-28T19:07:40Z
author mpi
files src/sys/uvm/uvm_pager.c log diff annotate
message Reserve a second segment for the page daemon.

This ensures uvm_swap_io() can succeeds even in OOM situations because two
uvm_pagermapin() allocations, requiring a segment each, are needed to bounce
or encrypt a swap cluster.

ok beck@, kettenis@

date 2022-06-28T19:19:34Z
author mpi
files src/sys/uvm/uvm_swap.c log diff annotate
src/sys/uvm/uvm_swap.h log diff annotate
message Pre-allocate pages in DMA-reachable region to ensure progress in the swapper.

Currently swap encryption is not done in place and some architectures need to
bounce pages into a DMA-reachable region for I/Os, for that uvm_swap_io() needs
to allocate at most 64K to write a swap cluster to disk. Pre-allocate such
amount of memory to be sure the page daemon can make progress in OOM situation.

Also introduce a sleeping point to wait for the previous asynchronous I/O
holding the pre-allocated pages, there's no point in building clusters if no
progress can be made.

ok beck@, kettenis@

date 2022-06-28T19:23:08Z
author mpi
files src/sys/uvm/uvm_pdaemon.c log diff annotate
message Use new & shiny define for the maximum number of pages of a swap cluster.

ok beck@, kettenis@

date 2022-06-28T19:31:30Z
author mpi
files src/sys/uvm/uvm_pdaemon.c log diff annotate
message Consider pmemrange regions when trying to free pages from the inactive list.

Instead of starting with the first page on the inactive list pick the first
one that fits in the range of a given pmemrange region.

Fix an issue where the page daemon would be hogging a CPU without freeing any
page because the global limits are satisfied.

The algorithm could certainly be revisited, the LRU is not really working and
there is a huge delay before recovering when the first pages need to be swapped and the system is in OOM situation but at least there is no starvation and the
system now recovers.

ok beck@, kettenis@

date 2022-06-28T19:39:54Z
author mpi
files src/sys/uvm/uvm_swap.c log diff annotate
message Make sure uvm_swap_get() always sleep and do not return and error.

If no memory was immediately available to decrypt (bounce) a page from swap
an error was returned to the fault handler which would result in processes
dying when a lot of memory pressure was applied to a system.

Note that reading from swap is always done synchronously.

ok beck@, kettenis@

date 2022-06-28T19:50:40Z
author kettenis
files src/sys/arch/arm64/dev/acpipci.c log diff annotate
message The x13s uses Memory32Fixed() to describe the windows forwarded by the
host bridges. Add support for this.

ok mlarkin@, patrick@

date 2022-06-28T19:55:22Z
author kettenis
files src/sys/arch/arm64/stand/efiboot/efiboot.c log diff annotate
message On the x13s, using the EfiLoaderData memory type for the memory block
that we load the kernel into doesn't work. But changing it to EfiLoaderCode
makes it work. Presumably the firmware creates a mapping with executable
permissions in that case, which is obviously needed for executing kernel
code.

ok patrick@, mlarkin@

date 2022-06-28T21:02:14Z
author kettenis
files src/sys/dev/acpi/com_acpi.c log diff annotate
message Add support for the Synopsys DesignWare UART found on the Ryzen Embedded
V1000 SoCs.

ok anton@

date 2022-06-28T23:43:12Z
author naddy
files src/sys/dev/fdt/amlclock.c log diff annotate
src/sys/dev/fdt/amlpinctrl.c log diff annotate
src/sys/dev/fdt/axppmic.c log diff annotate
src/sys/dev/fdt/bd718x7.c log diff annotate
src/sys/dev/fdt/hiclock.c log diff annotate
src/sys/dev/fdt/hitemp.c log diff annotate
src/sys/dev/fdt/imxccm.c log diff annotate
src/sys/dev/fdt/imxccm_clocks.h log diff annotate
src/sys/dev/fdt/imxsrc.c log diff annotate
src/sys/dev/fdt/mvpinctrl.c log diff annotate
src/sys/dev/fdt/mvpinctrl_pins.h log diff annotate
src/sys/dev/fdt/mvtemp.c log diff annotate
src/sys/dev/fdt/rkclock.c log diff annotate
src/sys/dev/fdt/rkpinctrl.c log diff annotate
src/sys/dev/fdt/rkpmic.c log diff annotate
src/sys/dev/fdt/rktemp.c log diff annotate
src/sys/dev/fdt/sxiccmu.c log diff annotate
src/sys/dev/fdt/sxiccmu_clocks.h log diff annotate
src/sys/dev/fdt/sxipio.c log diff annotate
src/sys/dev/fdt/sxipio_pins.h log diff annotate
message constify miscellaneous arm64 pin and clock tables

ok miod@

date 2022-06-28T23:43:13Z
author naddy
files src/sys/dev/ic/imxiicvar.h log diff annotate
message constify miscellaneous arm64 pin and clock tables

ok miod@