Age | Commit message (Collapse) | Author |
|
miod@ ok
|
|
|
|
painfully aware of what the comment:
"This makes the algorithm O(n^2), but do you think I care?"
actually means. I started to care.
Fix up the cache_purgevfs algorithm to not be O(n^2) since it's not
preemptible anyway and while I'm here, make this code actually return
the cache entries to the pool instead of hogging them and implement a
marginally faster free list. This way we return memory to the system
when some parameters change.
miod@ ok
|
|
to wire more memory than we are allowed to.
miod@ ok
|
|
ok art@ kettenis@
|
|
to separate locking, on most modern machines this is not enough
since operations on short types touch other short types that share the
same word in memory.
Merge pg_flags and pqflags again and now use atomic operations to change
the flags. Also bump wire_count to an int and pg_version might go
int as well, just for alignment.
tested by many, many. ok miod@
|
|
multiple defines all over;
ok tedu@
|
|
ok thib
|
|
flag. This effectively makes the simplelock argument to lockmgr() fluff.
ok miod@
|
|
leave macros behind for now to keep the commit small
ok art beck miod pedro
|
|
and make sure that nothing can ever be mapped at theses addresses.
Only i386 overrides the default for now.
From mickey@, ok art@ miod@
|
|
ok pedro@, sturm@
|
|
for the list to become empty)
ok art
|
|
kmem_object) just so that we can remove them, just use pmap_extract
to get the pages to free and simplify a lot of code to not deal with
the list of intrsafe maps, intrsafe objects, etc.
miod@ ok
|
|
ok pedro@ art@
|
|
|
|
spec_read();
ok pedro@
|
|
|
|
for the list to become empty)
|
|
|
|
without letting any other exclusive locks in between. As opposed to upgrading
locks, this is easy and solves real problems.
deraadt@ ok
|
|
to "pg_flags" and "pg_version", so that they are a bit easier to work with.
Whoever uses generic names like this for a popular struct obviously doesn't
read much code.
Most architectures compile and there are no functionality changes.
deraadt@ ok ("if something fails to compile, we fix that by hand")
|
|
deraadt@ ok
|
|
|
|
currently already happens in exit1(), okay art@
|
|
a new struct. Instead of doing a huge rename and deal with the fallout
for weeks, like other projects that need no mention, we will slowly and
carefully move things out of struct proc into a new struct process.
- Create struct process and the infrastructure to create and remove them.
- Move threads in a process into struct process.
deraadt@, tedu@ ok
|
|
ok art@
|
|
random panics with kqueue under high load with many events.
tested by me
cookies for dlg@ deraadt@
ok dlg@ tedu@ art@
|
|
weren't used recursively anyway.
tested by hsoexer@ fkr@ ok pedro@
|
|
ok pedro@
|
|
from brad.
|
|
|
|
Instead, keep the proc pointer in it and put the selinfo on a list
in struct proc in selrecord. Then clean up the list when leaving
sys_select and sys_poll.
miod@ ok, testing by many, including Bobs spamd boxes.
|
|
of new fields in the future is less disruptive. This is done similar
to how struct proc is handled for ps(1). ok jmc (man page changes)
tested fkr simon, and more suggestions from millert
|
|
Zap all calls to simple_lock/unlock() on it (those calls are
#defined away though). Remove the LK_INTERLOCK from the calls
to vn_lock() and cleanup the filesystems wich implement VOP_LOCK().
(by remvoing the v_interlock from there calls to lockmgr()).
ok pedro@, art@, tedu@
|
|
everything into it" function, there are now 6 stages of tsleep with
an on-stack (remember that kernel stacks are not swappable now?)
structure that keeps track of the state.
This way we first setup the sleep, setup the events that might break the
sleep, finish the sleep (actually sleeping) and then take care of the
events that could wake us up.
In the future this will make it easier to implement functionality like:
setup sleep, release lock or check some condition, finish sleep, in a
race-free way and without duplicating or complicating the tsleep function
too much.
miod@, millert@ ok.
|
|
|
|
ok pedro@
|
|
way, rather than requiring some glue in each machines mainbus probe.
it is still commented out.
based on a discussion with miod@ ok marco@ deraadt@
|
|
the timedelta sensor when no PPS signal is available.
Previously, the timestamp was taken at the leading '$' character
of a GPRMC message, which was not always correct, as some GPS units
send other messages first; we do not know when the GPRMC message
is sent within a data block (we refer to a data block as the set
of NMEA messages that are sent by a GPS unit in one go, usually
once per second).
nmea(4) now takes the timestamp at the first '$' character received
after the start of a new seconds. Since GPS units transmit a data
block every second, the first message can be found by measuring the
gap between consecutive messages: after the longest gap, the first
message of the next second follows. And it is at the leading '$'
character of this message that we take the timestamp.
$GPGGA,..... <- take timestamp here
$GPGSA,.....
$GPRMC,..... <- decode time here
... <- possibly more messages
<- longer gap till start of next second
$GPGGA,..... <- it starts all over, take next timestamp
This code has been designed to work independent of the baudrate and
the rate at which the GPS sends out it's data blocks (usually 1 Hz,
but 5 Hz units are common as well):
With this change, precision is greatly improved in the absence of a
PPS signal and as a side effect, jitter is reduced.
Note that while this is much better than before, there is still a
slight offset to the real time, as calculating the fix in the GPS unit
and transmitting the '$' character takes a short, but unpredictable
amount of time.
When tty timestamping is enabled, but there is no PPS signal available,
the sensor status will be degraded to CRITICAL, which means "check your
hardware".
Thanks to Chris Kuethe for testing and feedback. ok ckuethe.
|
|
weren't on the sleep queues, the condition we were sleeping on might
have changed, so we need to go back to userland and recheck that condition.
This fixes the majority of lockups and and hanging threads in rthreads
since it fixes a race in the semaphore code.
ok tedu@
|
|
MGETHDR and fail if it's NULL.
ok miod@
|
|
OK beck@ deraadt@ pyr@
|
|
it's a good idea to use atomic.h operations on it. This mechanic
change updates all bit operations on p_flag to atomic_{set,clear}bits_int.
Only exception is that P_OWEUPC is set by MI code before calling
need_proftick and it's automatically cleared by ADDUPC. There's
no reason for MD handling of that flag since everyone handles it the
same way.
kettenis@ ok
|
|
|
|
|
|
|
|
warning message and unconditionally set the sensor state to WARNING.
discussed with otto, ckuethe; ok otto, "i like it" ckuethe
|
|
|
|
by adding a sb_datacc count to sockbuf that counts data excluding
MT_CONTROL and MT_SONAME mbuf types. w/help from deraadt@.
okay deraadt@ claudio@
|