linux/arch/powerpc/include/asm
Paul Mackerras a2932923cc KVM: PPC: Book3S HV: Provide a method for userspace to read and write the HPT
A new ioctl, KVM_PPC_GET_HTAB_FD, returns a file descriptor.  Reads on
this fd return the contents of the HPT (hashed page table), writes
create and/or remove entries in the HPT.  There is a new capability,
KVM_CAP_PPC_HTAB_FD, to indicate the presence of the ioctl.  The ioctl
takes an argument structure with the index of the first HPT entry to
read out and a set of flags.  The flags indicate whether the user is
intending to read or write the HPT, and whether to return all entries
or only the "bolted" entries (those with the bolted bit, 0x10, set in
the first doubleword).

This is intended for use in implementing qemu's savevm/loadvm and for
live migration.  Therefore, on reads, the first pass returns information
about all HPTEs (or all bolted HPTEs).  When the first pass reaches the
end of the HPT, it returns from the read.  Subsequent reads only return
information about HPTEs that have changed since they were last read.
A read that finds no changed HPTEs in the HPT following where the last
read finished will return 0 bytes.

The format of the data provides a simple run-length compression of the
invalid entries.  Each block of data starts with a header that indicates
the index (position in the HPT, which is just an array), the number of
valid entries starting at that index (may be zero), and the number of
invalid entries following those valid entries.  The valid entries, 16
bytes each, follow the header.  The invalid entries are not explicitly
represented.

Signed-off-by: Paul Mackerras <paulus@samba.org>
[agraf: fix documentation]
Signed-off-by: Alexander Graf <agraf@suse.de>
2012-12-06 01:33:57 +01:00
..
8xx_immap.h
agp.h
asm-compat.h powerpc: Change mtcrf to use real register names 2012-07-10 19:18:11 +10:00
asm-offsets.h
async_tx.h
atomic.h atomic: implement generic atomic_dec_if_positive() 2012-10-09 16:22:46 +09:00
backlight.h
barrier.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
bitops.h powerpc: bitops: introduce {clear,set}_bit_le() 2012-10-06 03:04:55 +09:00
bootx.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
btext.h
bug.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
bugs.h
cache.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
cacheflush.h powerpc/85xx: add HOTPLUG_CPU support 2012-09-12 14:57:08 -05:00
cell-pmu.h
cell-regs.h
checksum.h
clk_interface.h
cmpxchg.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
code-patching.h powerpc: Have patch_instruction detect faults 2012-07-03 14:14:38 +10:00
compat.h compat: move compat_siginfo_t definition to asm/compat.h 2012-10-06 03:05:16 +09:00
cpm.h
cpm1.h
cpm2.h
cputable.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
cputhreads.h powerpc: Fixing a cputhread code documentation 2012-05-22 14:37:00 +10:00
cputime.h
current.h
dbdma.h
dbell.h KVM: PPC: e500mc: Add doorbell emulation support 2012-04-08 12:54:50 +03:00
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h
dcr.h
debug.h powerpc: Rework set_dabr so it can take a DABRX value as well 2012-09-10 09:59:10 +10:00
delay.h
device.h powerpc: IOMMU fault injection 2012-07-10 19:18:59 +10:00
disassemble.h
div64.h
dma-mapping.h common: dma-mapping: add support for generic dma_mmap_* calls 2012-07-30 12:25:46 +02:00
dma.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
edac.h
eeh.h powerpc/eeh: Remove EEH PE for normal PCI hotplug 2012-09-18 15:32:23 +10:00
eeh_event.h powerpc/eeh: Handle EEH error based on PE 2012-09-10 09:35:43 +10:00
ehv_pic.h
elf.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
emergency-restart.h
emulated_ops.h
epapr_hcalls.h PPC: ePAPR: Convert hcall header to uapi (round 2) 2012-10-31 13:45:32 +01:00
exception-64e.h powerpc/booke64: Use SPRG0/3 scratch for bolted TLB miss & crit int 2012-09-05 15:35:52 +10:00
exception-64s.h powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
exec.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
fadump.h
fb.h
feature-fixups.h
firmware.h
fixmap.h
floppy.h
fs_pd.h
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_guts.h powerpc/85xx: implement hardware timebase sync 2012-09-12 14:57:08 -05:00
fsl_hcalls.h PPC: Don't use hardcoded opcode for ePAPR hcall invocation 2012-10-05 23:38:38 +02:00
fsl_ifc.h powerpc/mpc85xx: Add new ext fields to Integrated FLash Controller 2012-09-12 14:57:10 -05:00
fsl_lbc.h
ftrace.h
futex.h
gpio.h gpiolib/arches: Centralise bolierplate asm/gpio.h 2012-05-11 18:00:14 -06:00
grackle.h
hardirq.h
heathrow.h
highmem.h
hugetlb.h mm: hugetlb: add arch hook for clearing page flags before entering pool 2012-10-09 16:22:24 +09:00
hvcall.h powerpc: cleanup old DABRX #defines 2012-09-10 09:59:16 +10:00
hvconsole.h
hvcserver.h
hvsi.h
hw_breakpoint.h powerpc: Dynamically calculate the dabrx based on kernel/user/hypervisor 2012-09-10 09:59:13 +10:00
hw_irq.h KVM updates for the 3.6 merge window 2012-07-24 12:01:20 -07:00
hydra.h
i8259.h
ibmebus.h
ide.h
immap_cpm2.h
immap_qe.h powerpc/qe: set IReady in QE Microcode Upload 2012-07-10 07:08:58 -05:00
io-defs.h
io-workarounds.h
io.h powerpc: Disable /dev/port interface on systems without an ISA bridge 2012-07-11 18:22:32 +10:00
io_event_irq.h
iommu.h powerpc/iommu: Implement IOMMU pools to improve multiqueue adapter performance 2012-07-03 14:14:48 +10:00
ipic.h
irq.h powerpc/irqdomain: Fix broken NR_IRQ references 2012-04-30 10:45:26 +10:00
irq_regs.h
irqflags.h
jump_label.h
Kbuild PPC: ePAPR: Convert header to uapi 2012-10-30 10:54:52 +01:00
kdebug.h
kdump.h
kexec.h
keylargo.h
kgdb.h
kmap_types.h powerpc: remove km_type definitions 2012-07-24 15:27:29 +08:00
kprobes.h powerpc/kprobes: Rename opcode_t in probes.h to ppc_opcode_t 2012-09-07 09:48:50 +10:00
kvm_44x.h
kvm_asm.h KVM: PPC: Book3s HV: Don't access runnable threads list without vcore lock 2012-10-30 10:54:55 +01:00
kvm_book3s.h KVM: PPC: Book3S HV: Make a HPTE removal function available 2012-12-06 01:33:55 +01:00
kvm_book3s_32.h powerpc: Build fix for powerpc KVM 2012-10-18 10:37:52 +11:00
kvm_book3s_64.h KVM: PPC: Book3S HV: Provide a method for userspace to read and write the HPT 2012-12-06 01:33:57 +01:00
kvm_book3s_asm.h powerpc: Restore VDSO information on critical exception om BookE 2012-09-07 09:48:49 +10:00
kvm_booke.h KVM: PPC: factor out lpid allocator from book3s_64_mmu_hv 2012-04-08 12:51:02 +03:00
kvm_booke_hv_asm.h KVM: PPC: bookehv: Allow duplicate calls of DO_KVM macro 2012-10-05 23:38:50 +02:00
kvm_fpu.h
kvm_host.h KVM: PPC: Book3S HV: Add a mechanism for recording modified HPTEs 2012-12-06 01:33:54 +01:00
kvm_para.h Merge remote-tracking branch 'master' into queue 2012-10-29 19:15:32 -02:00
kvm_ppc.h KVM: PPC: Book3S HV: Provide a method for userspace to read and write the HPT 2012-12-06 01:33:57 +01:00
libata-portmap.h
local.h
local64.h
lppaca.h powerpc: Reformat lppaca.h 2012-04-30 15:37:16 +10:00
lv1call.h powerpc/ps3: Correct lv1 repository routine names 2012-04-24 15:34:16 -07:00
machdep.h powerpc/mm: Convert virtual address to vpn 2012-09-17 16:31:49 +10:00
macio.h
mc146818rtc.h
mediabay.h
mman.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
mmu-8xx.h
mmu-40x.h
mmu-44x.h
mmu-book3e.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
mmu-hash32.h
mmu-hash64.h powerpc/mm: Make some of the PGTABLE_RANGE dependency explicit 2012-09-17 16:31:53 +10:00
mmu.h powerpc/mm: Make some of the PGTABLE_RANGE dependency explicit 2012-09-17 16:31:53 +10:00
mmu_context.h
mmzone.h
module.h Make most arch asm/module.h files use asm-generic/module.h 2012-09-28 14:31:03 +09:30
mpc5xxx.h
mpc6xx.h
mpc8xx.h
mpc52xx.h powerpc/mpc52xx_lpbfifo: optionally defer fifo transfer start 2012-09-14 10:15:35 +02:00
mpc52xx_psc.h
mpc5121.h
mpc8260.h
mpic.h powerpc/mpic: FSL MPIC error interrupt support. 2012-09-12 14:57:10 -05:00
mpic_msgr.h powerpc/mpic_msgr: Add missing includes 2012-08-24 20:26:04 +10:00
msi_bitmap.h
mutex.h
nvram.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
ohare.h
opal.h
oprofile_impl.h
paca.h powerpc/mm: Use 32bit array for slb cache 2012-09-17 16:31:51 +10:00
page.h
page_32.h
page_64.h powerpc/mm: Make some of the PGTABLE_RANGE dependency explicit 2012-09-17 16:31:53 +10:00
parport.h
pasemi_dma.h
pci-bridge.h powerpc/eeh: Fix crash on converting OF node to edev 2012-09-18 15:32:51 +10:00
pci.h
percpu.h
perf_event.h powerpc/perf: Move code to select SIAR or pt_regs into perf_read_regs 2012-07-10 19:18:41 +10:00
perf_event_fsl_emb.h
perf_event_server.h powerpc/perf: Sample only if SIAR-Valid bit is set in P7+ 2012-09-27 12:51:05 +10:00
pgalloc-32.h
pgalloc-64.h
pgalloc.h
pgtable-ppc32.h
pgtable-ppc64-4k.h powerpc/mm: Add 64TB support 2012-09-17 16:31:51 +10:00
pgtable-ppc64-64k.h powerpc/mm: Add 64TB support 2012-09-17 16:31:51 +10:00
pgtable-ppc64.h powerpc/mm: Make some of the PGTABLE_RANGE dependency explicit 2012-09-17 16:31:53 +10:00
pgtable.h powerpc/mm: Make some of the PGTABLE_RANGE dependency explicit 2012-09-17 16:31:53 +10:00
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
ppc-opcode.h powerpc: Add denormalisation exception handling for POWER6/7 2012-09-17 16:31:47 +10:00
ppc-pci.h powerpc/eeh: Cleanup on EEH PCI address cache 2012-09-10 09:59:00 +10:00
ppc4xx.h
ppc_asm.h powerpc: Enforce usage of R0-R31 where possible 2012-07-10 19:18:30 +10:00
probes.h powerpc/kprobes: Rename opcode_t in probes.h to ppc_opcode_t 2012-09-07 09:48:50 +10:00
processor.h cpuidle/powerpc: Fix smt_snooze_delay functionality. 2012-10-18 10:57:24 +11:00
prom.h
ps3.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
ps3av.h
ps3gpu.h
ps3stor.h
pSeries_reconfig.h powerpc/pseries: Add pseries update notifier for OFDT prop changes 2012-05-14 10:49:06 +10:00
pte-8xx.h
pte-40x.h
pte-44x.h
pte-book3e.h
pte-common.h
pte-fsl-booke.h
pte-hash32.h
pte-hash64-4k.h
pte-hash64-64k.h powerpc/mm: Convert virtual address to vpn 2012-09-17 16:31:49 +10:00
pte-hash64.h
ptrace.h Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-10-13 11:21:15 +09:00
qe.h powerpc/qe: set IReady in QE Microcode Upload 2012-07-10 07:08:58 -05:00
qe_ic.h
reg.h powerpc/perf: Sample only if SIAR-Valid bit is set in P7+ 2012-09-27 12:51:05 +10:00
reg_8xx.h
reg_a2.h
reg_booke.h KVM: PPC: booke: Add watchdog emulation 2012-10-05 23:38:47 +02:00
reg_fsl_emb.h
rheap.h
rio.h
rtas.h Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
rtc.h
runlatch.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
scatterlist.h
scom.h
sections.h
serial.h
setjmp.h
sfp-machine.h
shmparam.h
signal.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
smp.h Merge commit 'origin/queue' into for-queue 2012-10-31 13:36:18 +01:00
smu.h
sparsemem.h powerpc/mm: Add 64TB support 2012-09-17 16:31:51 +10:00
spinlock.h
spinlock_types.h
spu.h
spu_csa.h
spu_info.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
spu_priv1.h
sstep.h
string.h
swab.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
swiotlb.h powerpc/swiotlb: Enable at early stage and disable if not necessary 2012-09-12 14:57:09 -05:00
switch_to.h Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2012-05-24 16:17:30 -07:00
synch.h
syscall.h
syscalls.h powerpc: switch to generic sys_execve()/kernel_execve() 2012-09-30 23:35:51 -04:00
systbl.h compat: fs: Generic compat_sys_sendfile implementation 2012-10-02 21:35:55 -04:00
tce.h
termios.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
thread_info.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-10-12 10:49:08 +09:00
time.h cputime: Consolidate vtime handling on context switch 2012-08-20 13:05:28 +02:00
timex.h
tlb.h
tlbflush.h powerpc/mm: Make some of the PGTABLE_RANGE dependency explicit 2012-09-17 16:31:53 +10:00
topology.h sched/numa: Rewrite the CONFIG_NUMA sched domain support 2012-05-09 15:00:55 +02:00
trace.h powerpc: tracing: Avoid tracepoint duplication with DECLARE_EVENT_CLASS 2012-07-03 14:14:41 +10:00
tsi108.h
tsi108_irq.h
tsi108_pci.h
types.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
uaccess.h powerpc: Remove unused __get_user64() and __put_user64() 2012-09-18 15:32:36 +10:00
ucc.h
ucc_fast.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
ucc_slow.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
udbg.h powerpc: Random little legacy iSeries removal tidy ups 2012-03-28 11:33:23 +11:00
uic.h
unaligned.h
uninorth.h
unistd.h Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-10-13 11:21:15 +09:00
uprobes.h powerpc/kprobes: Rename opcode_t in probes.h to ppc_opcode_t 2012-09-07 09:48:50 +10:00
user.h
vdso.h powerpc: Add VDSO version of getcpu 2012-07-11 14:18:40 +10:00
vdso_datapage.h
vga.h
vio.h powerpc: Call dma_debug_add_bus for PCI and VIO buses 2012-07-10 19:18:57 +10:00
word-at-a-time.h powerpc: Use the new generic strncpy_from_user() and strnlen_user() 2012-05-27 21:00:07 -07:00
wsp.h
xics.h
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h