created | 2024-02-11T13:40:20Z |
---|---|
begin | 2024-02-09T00:00:00Z |
end | 2024-02-10T00:00:00Z |
path | src/sys |
commits | 18 |
date | 2024-02-09T09:53:50Z | |||
---|---|---|---|---|
author | stsp | |||
files | src/sys/dev/ic/qwx.c | log | diff | annotate |
message | remove qwx debug prints for management frame events we are already handling |
date | 2024-02-09T09:55:17Z | |||
---|---|---|---|---|
author | stsp | |||
files | src/sys/dev/ic/qwx.c | log | diff | annotate |
src/sys/dev/ic/qwxvar.h | log | diff | annotate | |
message | add missing node reference counting to qwx's Tx completion path |
date | 2024-02-09T09:59:01Z | |||
---|---|---|---|---|
author | stsp | |||
files | src/sys/dev/ic/qwx.c | log | diff | annotate |
message | make ifconfig display the Tx rate selected by qwx firmware |
date | 2024-02-09T11:05:22Z | |||
---|---|---|---|---|
author | bluhm | |||
files | src/sys/arch/sparc64/conf/GENERIC | log | diff | annotate |
message |
Enable igc(4) on sparc64. OK deraadt@ jan@ |
date | 2024-02-09T11:24:52Z | |||
---|---|---|---|---|
author | stsp | |||
files | src/sys/dev/pci/if_qwx_pci.c | log | diff | annotate |
message | qwx pci code must include bpfilter.h, too; spotted by kettenis |
date | 2024-02-09T12:45:10Z | |||
---|---|---|---|---|
author | jsg | |||
files | src/sys/dev/ic/qwx.c | log | diff | annotate |
message |
avoid uninitialised var use if qwx_core_fetch_bdf() errors ok stsp@ |
date | 2024-02-09T12:50:10Z | |||
---|---|---|---|---|
author | bluhm | |||
files | src/sys/dev/ic/qwxvar.h | log | diff | annotate |
message |
Struct layout of qwx_softc should not depend on NBPFILTER. Due to a missing #include "bpfilter.h", the size of struct qwx_softc varied in different object files. This made the kernel crash on arm64. To make debugging core dumps and libkvm easier, kernel object layout should not depend on kernel config. Remove #if NBPFILTER > 0 from struct definition. problem analysis kettenis@ OK deraadt@ stsp@ |
date | 2024-02-09T14:02:11Z | |||
---|---|---|---|---|
author | bluhm | |||
files | src/sys/net/route.c | log | diff | annotate |
src/sys/netinet/in.h | log | diff | annotate | |
src/sys/netinet/in_pcb.c | log | diff | annotate | |
message |
Route cache function returns hit or miss. The route_cache() function can easily return whether it was a cache hit or miss. Then the logic to perform a route lookup gets a bit simpler. Some more complicated if (ro->ro_rt == NULL) checks still exist elsewhere. Also use route cache in in_pcbselsrc() instead of filling struct route manually. OK claudio@ |
date | 2024-02-09T14:02:12Z | |||
---|---|---|---|---|
author | bluhm | |||
files | src/sys/netinet6/in6.h | log | diff | annotate |
src/sys/netinet6/in6_pcb.c | log | diff | annotate | |
src/sys/netinet6/in6_src.c | log | diff | annotate | |
message |
Route cache function returns hit or miss. The route_cache() function can easily return whether it was a cache hit or miss. Then the logic to perform a route lookup gets a bit simpler. Some more complicated if (ro->ro_rt == NULL) checks still exist elsewhere. Also use route cache in in_pcbselsrc() instead of filling struct route manually. OK claudio@ |
date | 2024-02-09T14:05:48Z | |||
---|---|---|---|---|
author | stsp | |||
files | src/sys/dev/ic/qwx.c | log | diff | annotate |
message | implement qwx_dp_process_rx_err() |
date | 2024-02-09T14:07:27Z | |||
---|---|---|---|---|
author | stsp | |||
files | src/sys/dev/ic/qwx.c | log | diff | annotate |
src/sys/dev/ic/qwxvar.h | log | diff | annotate | |
message | implement qwx_dp_process_reo_status() |
date | 2024-02-09T14:09:19Z | |||
---|---|---|---|---|
author | stsp | |||
files | src/sys/dev/ic/qwx.c | log | diff | annotate |
src/sys/dev/ic/qwxvar.h | log | diff | annotate | |
message | implement qwx_dp_rx_process_wbm_err() |
date | 2024-02-09T14:11:00Z | |||
---|---|---|---|---|
author | stsp | |||
files | src/sys/dev/ic/qwx.c | log | diff | annotate |
message | implement qwx_dp_process_rxdma_err() |
date | 2024-02-09T14:57:36Z | |||
---|---|---|---|---|
author | bluhm | |||
files | src/sys/dev/pci/if_qwx_pci.c | log | diff | annotate |
message |
Include sys/lock.h to make qwx(4) compile with GENERIC kernel. OK stsp@ |
date | 2024-02-09T15:06:23Z | |||
---|---|---|---|---|
author | cheloha | |||
files | src/sys/kern/kern_clockintr.c | log | diff | annotate |
message |
clockintr: refactor clockintr_cancel() into clockintr_cancel_locked() Move the mutex-protected portions of clockintr_cancel() into a separate function, clockintr_cancel_locked(), so that the code can be reused by other callers. Thread: https://marc.info/?l=openbsd-tech&m=170629367121800&w=2 ok mpi@ |
date | 2024-02-09T15:22:41Z | |||
---|---|---|---|---|
author | jan | |||
files | src/sys/dev/pci/if_vmx.c | log | diff | annotate |
message |
vmx(4): add missing NVLAN checks ok bluhm@ |
date | 2024-02-09T16:52:58Z | |||
---|---|---|---|---|
author | cheloha | |||
files | src/sys/kern/kern_clockintr.c | log | diff | annotate |
src/sys/sys/clockintr.h | log | diff | annotate | |
message |
clockintr: add clockintr_unbind() The clockintr_unbind() function cancels any pending execution of the given clock interrupt object's callback and severs the binding between the object and its host CPU. Upon return from clockintr_unbind(), the clock interrupt object may be rebound with a call to clockintr_bind(). The optional CL_BARRIER flag tells clockintr_unbind() to block if the clockintr's callback function is executing at the moment of the call. This is useful when the clockintr's arg is a shared reference and the caller needs to be certain the reference is inactive. Now that clockintrs can be bound and unbound repeatedly, there is more room for error. To help catch programmer errors, clockintr_unbind() sets cl_queue to NULL. Calls to other API functions after a clockintr is unbound will then fault on a NULL dereference. clockintr_bind() also KASSERTs that cl_queue is NULL to ensure the clockintr is not already bound. These checks are not perfect, but they do catch some common errors. With input from mpi@. Thread: https://marc.info/?l=openbsd-tech&m=170629367121800&w=2 ok mpi@ |
date | 2024-02-09T17:42:18Z | |||
---|---|---|---|---|
author | cheloha | |||
files | src/sys/dev/dt/dt_dev.c | log | diff | annotate |
src/sys/dev/dt/dt_prov_profile.c | log | diff | annotate | |
src/sys/dev/dt/dtvar.h | log | diff | annotate | |
src/sys/kern/kern_clock.c | log | diff | annotate | |
message |
dt(4): move interval/profile entry points to dedicated clockintr callback To improve the utility of dt(4)'s interval and profile probes we need to move the probe entry points from the fixed-frequency hardclock() to a dedicated clock interrupt callback so that the probes can fire at arbitrary frequencies. - Remove entry points for interval/profile probes from hardclock(). - Merge dt_prov_profile_enter(), dt_prov_interval_enter(), and dt_prov_profile_fire() into one function, dt_clock(). This is the now-unified callback for interval/profile probes. dt_clock() will consume multiple events during a single execution if it is delayed, but on platforms with high quality interrupt clocks this should be rare. - Each struct dt_pcb gets its own clockintr handle, dp_clockintr. - In struct dt_pcb, replace dp_maxtick/dp_nticks with dp_nsecs, the PCB's sampling period. Aynchronous probes must initialize dp_nsecs to a non-zero value during dtpv_alloc(). - In struct dt_pcb, replace dp_cpuid with dp_cpu so that dt_ioctl_record_start() knows where to bind the PCB's dp_clockintr. - dt_ioctl_record_start() binds, staggers, and starts all interval/profile PCBs on the given dt_softc. Each dp_clockintr is given a reference to its enclosing PCB so that dt_clock() doesn't need to search for it. The staggering sort-of simulates the current behavior under hardclock(). - dt_ioctl_record_stop() unbinds all interval/profile PCBs. The CL_BARRIER ensures that dp_clockintr's PCB reference is not in use by dt_clock() so that the PCB may be safely freed upon return from dt_ioctl_record_stop(). Blocking while holding dt_lock is not ideal, but in practice blocking in this spot is rare and dt_clock() completes quickly on all but the oldest hardware. An extremely unlucky thread could block for every interval/profile PCB on the softc, but this is implausible. DT_FA_PROFILE values are up-to-date for amd64, i386, and macppc. Somebody with the right hardware needs to check-and-maybe-fix the values on octeon, powerpc64, and sparc64. Joint effort with mpi@. Thread: https://marc.info/?l=openbsd-tech&m=170629371821879&w=2 ok mpi@ |