#
b4155af8 |
| 24-May-2024 |
jsg <jsg@openbsd.org> |
remove unneeded includes
|
#
3eec3140 |
| 29-Jun-2020 |
jsg <jsg@openbsd.org> |
avoid a NULL deref in xen_intr_barrier()
intr_barrier() now uses the argument so directly call sched_barrier(NULL) which is what intr_barrier(NULL) used to do until recently.
From Todd Carson on bu
avoid a NULL deref in xen_intr_barrier()
intr_barrier() now uses the argument so directly call sched_barrier(NULL) which is what intr_barrier(NULL) used to do until recently.
From Todd Carson on bugs@ ok dlg@
show more ...
|
#
c8f27247 |
| 29-May-2020 |
deraadt <deraadt@openbsd.org> |
dev/rndvar.h no longer has statistical interfaces (removed during various conversion steps). it only contains kernel prototypes for 4 interfaces, all of which legitimately belong in sys/systm.h, whi
dev/rndvar.h no longer has statistical interfaces (removed during various conversion steps). it only contains kernel prototypes for 4 interfaces, all of which legitimately belong in sys/systm.h, which are already included by all enqueue_randomness() users.
show more ...
|
#
78588113 |
| 13-Feb-2020 |
mikeb <mikeb@openbsd.org> |
Resolve a few issues with interrupt handling
Upon a failed task_add, the adjusted reference counter needs to be decremented.
xen_intr_schedule should follow the same logic as xen_intr.
Tested by N
Resolve a few issues with interrupt handling
Upon a failed task_add, the adjusted reference counter needs to be decremented.
xen_intr_schedule should follow the same logic as xen_intr.
Tested by Niklas Hallqvist. Ok mpi@
show more ...
|
#
0296da5a |
| 13-Dec-2019 |
mikeb <mikeb@openbsd.org> |
Always release interrupt source when unmasking the interrupt
xen_intr_unmask_release was not decrementing the reference counter on the interrupt source structure when bailing out early which led to
Always release interrupt source when unmasking the interrupt
xen_intr_unmask_release was not decrementing the reference counter on the interrupt source structure when bailing out early which led to the refcnt overflow.
From niklas, ok mlarkin
show more ...
|
#
220dd317 |
| 21-Jan-2018 |
mikeb <mikeb@openbsd.org> |
Release interrupt source if the interrupt task is already scheduled
Tested by Imre Oolberg, thanks!
|
#
b5e9546a |
| 21-Jan-2018 |
mikeb <mikeb@openbsd.org> |
Improve panic message
|
#
5be04472 |
| 26-Nov-2017 |
mikeb <mikeb@openbsd.org> |
Xen interrupt task barrier is just a taskq_barrier so call it instead of rolling its own now that it's been made available.
OK dlg
|
#
cd9bddd2 |
| 10-Aug-2017 |
mikeb <mikeb@openbsd.org> |
Don't forget to call va_end in xen_hypercall
Coverity CID 1453343
|
#
e0053cc6 |
| 21-Jul-2017 |
mikeb <mikeb@openbsd.org> |
Replace MD _bus_dmamap_* function calls with MI ones
|
#
944249e8 |
| 19-Jul-2017 |
mikeb <mikeb@openbsd.org> |
Turn this into a panic since there's no way to recover from it
|
#
6a831e9a |
| 17-Jul-2017 |
mikeb <mikeb@openbsd.org> |
Forbid overwriting a grant table entry currently in use
|
#
e885e14e |
| 17-Jul-2017 |
mikeb <mikeb@openbsd.org> |
Reduce amount of CAS attempts in a busy-wait loop by a factor of 100
|
#
cd638ebf |
| 14-Jul-2017 |
mikeb <mikeb@openbsd.org> |
Spacing
|
#
65ba8a21 |
| 14-Jul-2017 |
mikeb <mikeb@openbsd.org> |
Reduce the number of CAS loops from ludicrous to ridiculous
Now that the source of the delay with releasing grant table entries has been identified and fixed the number of attempts to CAS entry flag
Reduce the number of CAS loops from ludicrous to ridiculous
Now that the source of the delay with releasing grant table entries has been identified and fixed the number of attempts to CAS entry flags can be substantially reduced and while it's decreased by a factor of 100000, it should go down at least a 100 more in the future.
show more ...
|
#
e33c817b |
| 14-Jul-2017 |
mikeb <mikeb@openbsd.org> |
Silence the interrupt source until the interrupt task has done its job
This small change significantly improves performance under load and halves the number of received interrupts.
|
#
c929981a |
| 02-Jun-2017 |
mikeb <mikeb@openbsd.org> |
Perform grant table page allocation outside of the table mutex
witness(4) has found that km_alloc will trigger an rw_enter via uvm_map and vm_map_lock. While rw_enter is called with RW_SLEEPFAIL, t
Perform grant table page allocation outside of the table mutex
witness(4) has found that km_alloc will trigger an rw_enter via uvm_map and vm_map_lock. While rw_enter is called with RW_SLEEPFAIL, there's also an msleep in there, so it's easier to avoid getting in the middle of that.
show more ...
|
#
e86b66eb |
| 19-Mar-2017 |
mikeb <mikeb@openbsd.org> |
Improve comments slightly
|
#
87eabc7c |
| 13-Mar-2017 |
mikeb <mikeb@openbsd.org> |
Fixup format string and type issues found by cppcheck
|
#
a327e742 |
| 24-Feb-2017 |
mikeb <mikeb@openbsd.org> |
Update license
Some final touches before the release, increase the maximum number of CAS iterations before we declare the grant table entry lost forever. This happens on older Xen 3.x versions as r
Update license
Some final touches before the release, increase the maximum number of CAS iterations before we declare the grant table entry lost forever. This happens on older Xen 3.x versions as reported by Kirill Miazine.
show more ...
|
#
6123be62 |
| 08-Feb-2017 |
mikeb <mikeb@openbsd.org> |
Introduce Xen interrupt barriers
intr_barrier(9) is useful to make sure that after an interrupt is masked, the interrupt handler for the device has finished executing before proceeding with further
Introduce Xen interrupt barriers
intr_barrier(9) is useful to make sure that after an interrupt is masked, the interrupt handler for the device has finished executing before proceeding with further device configuration.
However, since Xen interrupt handlers run in the thread context, we need to make sure that they have finished as well. By scheduling a xen_barrier_task modelled after (or rather copied ;) ifq_barrier_task we can ensure that the interrupt handler is no longer running.
show more ...
|
#
5acf1e3c |
| 08-Feb-2017 |
mikeb <mikeb@openbsd.org> |
Fixup incorrect test when allocating grant table entries
An xnf & xbf attach/detach loop has revealed that sometimes when we're about to free a grant table entry that is still in use which is a grav
Fixup incorrect test when allocating grant table entries
An xnf & xbf attach/detach loop has revealed that sometimes when we're about to free a grant table entry that is still in use which is a grave mistake code wise. Turned out we could allocate an entry twice because of an incorrect test that took flags value into account when making the decision regarding availability of a given entry. At the same time, upon releasing the entry we explicitly CAS in 0 into the flags making this check bogus.
While here be explicit about starting flags by initializing them to 0 and always panic when the "double free" condition is encountered.
rzalamena@ has lent me his eyes and has double-checked the condition.
show more ...
|
#
1d84a0c2 |
| 06-Feb-2017 |
mikeb <mikeb@openbsd.org> |
Add proper locking for the interrupt source list
Now that we can attach and detach devices, we need to make sure we can do so while interrupts are running. Thankfully, in the meantime the refcnt_in
Add proper locking for the interrupt source list
Now that we can attach and detach devices, we need to make sure we can do so while interrupts are running. Thankfully, in the meantime the refcnt_init(9) API came around to help us out.
show more ...
|
#
ac3f660d |
| 06-Feb-2017 |
mikeb <mikeb@openbsd.org> |
XST_POLL turned out to be pretty useless since it's only set when cold
|
#
df0a9447 |
| 06-Feb-2017 |
mikeb <mikeb@openbsd.org> |
Use separate compile time debug flags for xen, xnf and xbf
|