freebsd-src/sys/powerpc/include
John Baldwin 254e4e5b77 Simplify swi for bus_dma.
When a DMA request using bounce pages completes, a swi is triggered to
schedule pending DMA requests using the just-freed bounce pages.  For
a long time this bus_dma swi has been tied to a "virtual memory" swi
(swi_vm).  However, all of the swi_vm implementations are the same and
consist of checking a flag (busdma_swi_pending) which is always true
and if set calling busdma_swi.  I suspect this dates back to the
pre-SMPng days and that the intention was for swi_vm to serve as a
mux.  However, in the current scheme there's no need for the mux.

Instead, remove swi_vm and vm_ih.  Each bus_dma implementation that
uses bounce pages is responsible for creating its own swi (busdma_ih)
which it now schedules directly.  This swi invokes busdma_swi directly
removing the need for busdma_swi_pending.

One consequence is that the swi now works on RISC-V which had previously
failed to invoke busdma_swi from swi_vm.

Reviewed by:	imp, kib
Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D33447
2021-12-28 13:51:25 -08:00
..
_align.h
_bus.h
_inttypes.h
_limits.h
_stdint.h
_types.h Reduce code duplication in machine/_types.h 2021-06-14 16:30:16 +01:00
altivec.h
asm.h Add CFI start/end proc directives to arm64, i386, and ppc 2020-12-05 00:33:28 +00:00
atomic.h [PowerPC] Fix ISA_206 subword atomics 2021-03-30 20:23:04 -05:00
bat.h
bus.h
bus_dma.h Rename struct device to struct _device 2021-04-12 09:32:30 -04:00
clock.h
counter.h
cpu.h Simplify swi for bus_dma. 2021-12-28 13:51:25 -08:00
cpufunc.h powerpc: change mfpvr return type to uint32_t 2021-07-28 14:08:19 -03:00
db_machdep.h
dbdma.h
dump.h minidump: Use the provided dump bitset 2021-11-19 15:05:52 -04:00
efi.h
elf.h
endian.h Consolidate machine/endian.h definitions 2021-03-26 19:00:22 -03:00
exec.h
float.h
floatingpoint.h
fpu.h [POWERPC] Floating-Point Exception trap support 2020-11-06 13:34:30 +00:00
frame.h
gdb_machdep.h gdb: report specific stop reason for watchpoints 2021-03-30 11:36:41 -03:00
hid.h
ieee.h
ieeefp.h
ifunc.h
in_cksum.h netinet: Remove in_cksum_update() 2021-11-24 13:31:15 -05:00
intr_machdep.h
kdb.h Introduce kdb-level watchpoint functions 2021-03-29 12:05:43 -03:00
limits.h
machdep.h
md_var.h Simplify swi for bus_dma. 2021-12-28 13:51:25 -08:00
memdev.h
metadata.h
minidump.h
mmuvar.h minidump: Use the provided dump bitset 2021-11-19 15:05:52 -04:00
ofw_machdep.h
openpicreg.h
openpicvar.h
param.h
pcb.h [PowerPC64LE] Fix LE VSX/fpr interop 2020-12-03 01:39:59 +00:00
pcpu.h Remove PCPU_INC 2021-03-20 19:23:59 -07:00
pcpu_aux.h
pio.h
platform.h
platformvar.h
pmap.h powerpc64: fix OFWFB with Radix MMU 2021-10-14 10:39:52 -03:00
pmc_mdep.h powerpc64: add Power8 and Power9 PMCs 2021-07-26 10:27:23 -03:00
proc.h Make struct syscall_args machine independent 2021-12-08 18:45:33 +00:00
procctl.h
profile.h
psl.h [POWERPC] Floating-Point Exception trap support 2020-11-06 13:34:30 +00:00
pte.h Implement superpages for PowerPC64 (HPT) 2020-11-06 14:12:45 +00:00
ptrace.h
reg.h powerpc: Make machine/reg.h self-contained 2021-11-23 21:21:18 -07:00
reloc.h
resource.h
rtas.h
runq.h
sc_machdep.h
setjmp.h
sigframe.h
signal.h
slb.h Implement superpages for PowerPC64 (HPT) 2020-11-06 14:12:45 +00:00
smp.h
spr.h Wrap the default SPE config in its own #define 2021-05-29 21:53:26 -05:00
sr.h
stack.h
stdarg.h
sysarch.h
tlb.h
tls.h Add <machine/tls.h> header to hold MD constants and helpers for TLS. 2021-12-09 13:17:13 -08:00
trap.h
ucontext.h
vdso.h
vm.h Create VM_MEMATTR_DEVICE on all architectures 2021-04-12 06:15:31 +00:00
vmparam.h Implement superpages for PowerPC64 (HPT) 2020-11-06 14:12:45 +00:00