bus_dmamap_destroy() can not be executed in soft interrupt context,
and msk_stop() can be called in soft interrupt context.
As such, move creation and destruction of tx dmamaps to attach() and
detach() functions.
stored internal or not. Also make a note that the datablocks predictor takes
NO extended attributes stored in the node into account
In rare cases it could lead to confusion where the predictor would say it
wouldn't fit internally when it could just have fitted. This would trigger the
assertion. Now it will on rare accasions create a datablock even though it
might have fitted.
virtual memory, a "virtual object address". This is not a reference to
a physical byte of memory, per se, but a reference to a byte residing
in a page, owned by a unique UVM object (either a uobj or an anon). Two
separate address+addresses space tuples that reference the same byte in
an object (such as a location in a shared memory segment) will resolve
to equivalent virtual object addresses. Even if the residency status
of the page changes, the virtual object address remains unchanged.
struct uvm_voaddr -- a structure that encapsulates this address reference.
uvm_voaddr_acquire() -- a function to acquire this address reference,
given a vm_map and a vaddr_t.
uvm_voaddr_release() -- a function to release this address reference.
uvm_voaddr_compare() -- a function to compare two such address references.
uvm_voaddr_acquire() resolves the COW status of the object address before
acquiring.
In collaboration with riastradh@ and chs@.
C++ without real static_assert() can be incompatible with the C fallback
as presented in openjdk.
A pre-C11 compiler can be picky on the implementation.
Clang now implements a restriction on giving non-C-compatible anonymous
structs a typedef name for linkage purposes, as described in C++ committee
paper `P1766R1 <http://wg21.link/p1766r1>'.
https://reviews.llvm.org/D74103
http://mail-index.netbsd.org/source-changes/2020/04/16/msg116278.html
The reasoning turned out to be wrong; __KERNEL_RCSID() in header files
does *not* overwrite RCSID in main source files. The real problem is that
it inserts its RCSID into *every* object files. However, it can be still
useful even if heavily duplicated.
and everything gets more than 10 times slower by __HAVE_UNLOCKED_PMAP.
Note that we support three supervisor-level architectures for powerpc:
oea, booke, and 4xx. We have three different implementations of pmap as
a result. Whereas oea and booke support multiprocessor, 4xx does not.
overwriting RCSID in main source files.
XXX
The first argument of __KERNEL_RCSID() is neglected for ELF. If we wish
to have RCSID of header files in kernel binary, we need something like
__FBSDID() macro in FreeBSD.