| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change bd_rtout to a uint64_t of nanoseconds. Update the code in
bpfioctl() and bpfread() accordingly.
Add a local copy of nsecuptime() to make the diff smaller. This will
need to move to kern_tc.c if/when we have another user elsewhere in
the kernel.
Prompted by mpi@. With input from dlg@.
ok dlg@ mpi@ visa@
|
|
|
|
|
|
|
| |
We can simulate the current behavior without lbolt by sleeping for 1
second on the &nowake channel.
ok mpi@
|
|
|
|
|
|
|
| |
We can simulate the current behavior without lbolt by sleeping for 1
second on the &nowake channel.
ok mpi@
|
| |
|
|
|
|
|
|
| |
Also remove dead DIALOUT macro.
ok mpi@
|
| |
|
|
|
|
|
|
|
|
| |
on Amlogic SoCs where amltemp(4) doesn't fully attach before the first
polling timeout runs. This would stop the polling which means there was no
thermal management on these platforms.
ok patrick@
|
|
|
|
|
| |
via dt(4) and btrace(8).
OK mpi@ millert@
|
| |
|
|
|
|
| |
original diff from and ok cheloha@
|
| |
|
|
|
|
| |
OK anton@, mpi@
|
|
|
|
|
|
| |
These are essentially equivalent to the simple queue macros from
NetBSD but predate them and are more widely available on other systems.
OK mpi@ denis@
|
|
|
|
| |
ok claudio@ kn@
|
|
|
|
|
|
| |
local variable. This argument was always passed as 0.
ok kn@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When opal(4) attaches, look in the device tree for a psscr value. In
cpu_idle_cycle(), use this psscr value and the stop instruction to
wait for the next interrupt. In mp kernels, cpu_unidle() now sends an
interrupt. In "sysctl hw.sensors", the power and temperature sensors
from opalsens(4) may show lower values.
The cpu may exit stop at the system reset vector after losing user
registers. If so, restore some registers. For now, ignore deeper
stop states that would lose hypervisor registers.
Our mp kernel uses only the first hardware thread of each core. Take
the extra threads from the firmware and stop them forever; this may
switch the core from SMT4 to single-thread mode and increase
performance.
partly by kettenis@, ok kettenis@
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
devices, introduce kern.video.record for video(4) devices. By default
kern.video.record will be set to zero, blanking all data delivered
by device drivers which attach to video(4).
The idea was initially proposed by
Laurence Tratt <laurie AT tratt DOT net>.
ok mpi@
|
|
|
|
|
|
|
|
|
| |
enc(4) does not use the ifqueue API at all; IPsec packets are directly
transformed in the IP input/output routines.
enc_start() is never called (by design) so remove it for clarity.
OK mpi
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Poison the IPL value of `pm_mtx' since it isn't supposed to be used
and add an assert to make sure splraise() isn't called with a poisoned
value.
Fix a missing initialization found by WITNESS and reported by gnezdo@.
ok millert@
|
|
|
|
| |
ok kettenis@, dlg@
|
|
|
|
| |
ok patrick@
|
| |
|
| |
|
|
|
|
| |
it is used by acpihpet.c
|
|
|
|
|
| |
is just too different from GENERIC or GENERIC.MP
pointed out by jsg
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This saves about 2.5 KiB off amd64's RAMDISK after gzip compression.
OK deraadt@, mpi@, cheloha@
|
|
|
|
|
|
|
| |
it used a pointer in an argument to communicate that back to the
caller, while being a void functon. this seems more natural and
brings it in line with how the rx completion function returns free
slots to its caller too.
|
|
|
|
| |
ok jmatthew@
|
|
|
|
|
| |
hrvoje popovski reports the current code faults on some boxes. i'm
working on it, but the code isn't being used right now.
|
|
|
|
| |
ok jmatthew@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bd_rdStart is strange. It nominally represents the start of a read(2)
on a given bpf(4) descriptor, but there are several problems with it:
1. If there are multiple readers, the bd_rdStart is not set by subsequent
readers, so their timeout is screwed up. The read timeout should really
be tracked on a per-thread basis in bpfread().
2. We set bd_rdStart for poll(2), select(2), and kevent(2), even though
that makes no sense. We should not be setting bd_rdStart in bpfpoll()
or bpfkqfilter().
3. bd_rdStart is buggy. If ticks is 0 when the read starts then
bpf_catchpacket() won't wake up the reader. This is a problem
inherent to the design of bd_rdStart: it serves as both a boolean
and a scalar value, even though 0 is a valid value in the scalar
range.
So let's replace it with a better struct member. "bd_nreaders" is a
count of threads sleeping in bpfread(). It is incremented before a
thread goes to sleep in bpfread() and decremented when a thread wakes
up. If bd_nreaders is greater than zero when we reach bpf_catchpacket()
and fbuf is non-NULL we wake up all readers.
The read timeout, if any, is now tracked locally by the thread in
bpfread().
Unlike bd_rdStart, bpfpoll() and bpfkqfilter() don't touch
bd_nreaders.
Prompted by mpi@. Basic idea from dlg@. Lots of input from dlg@.
Tested by dlg@ with tcpdump(8) (blocking read) and flow-collector
(https://github.com/eait-itig/flow-collector, non-blocking read).
ok dlg@
|
|
|
|
| |
OK mpi@
|
|
|
|
| |
doing the maths again feels error prone.
|
|
|
|
| |
ok jmatthew@
|
|
|
|
| |
ok jmatthew@
|
|
|
|
| |
ok jmatthew@
|
|
|
|
| |
ok jmatthew@
|
|
|
|
| |
ok jmatthew@
|
|
|
|
|
|
|
|
| |
Just sleep for 1 second on the nowake channel instead.
With input from kettenis@, mpi@, and claudio@.
ok kettenis@
|
|
|
|
|
|
|
|
|
|
| |
this is mostly to help me better understand where i accumulate error
when trying to sync the chip to the kernel clocks. ie, if im using
mcx as the kernel clock source and my attempts to sync to it still
produce errors, then my code is very wrong instead of slightly
wrong.
it's also fun and a tiny amount of code.
|
|
|
|
|
| |
Makes touchpad work on Joel Carnat's Teclast F7 Plus laptop.
Patch from James Hastings.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rename klist_{insert,remove}() to klist_{insert,remove}_locked().
These functions assume that the caller has locked the klist. The current
state of locking remains intact because the kernel lock is still used
with all klists.
Add new functions klist_insert() and klist_remove() that lock the klist
internally. This allows some code simplification.
OK mpi@
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make the SMR thread maintain an explicit system-wide grace period and
make CPUs observe the current grace period when crossing a quiescent
state. This lets the SMR thread avoid a forced context switch for CPUs
that have already entered the latest grace period.
This change provides a small improvement in smr_grace_wait()'s
performance in terms of context switching.
OK mpi@, anton@
|
|
|
|
|
|
|
|
|
|
|
|
| |
of zero length TDs can cause our free TRBs to run out, causing xhci(4)
to return USBD_NOMEM to the USB stack.
The issue was reported by
Jonathon Fletcher <jonathon.fletcher () gmail ! com> -- Thanks!
Reviewed/suggestions by patrick@.
ok mpi@
|