History log of /openbsd/sys/dev/pv/xen.c (Results 1 – 25 of 98)
Revision Date Author Comments
# 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


1234