linux_dsm_epyc7002/arch/powerpc/include/asm
Paul Mackerras c35635efdc KVM: PPC: Book3S HV: Report VPA and DTL modifications in dirty map
At present, the KVM_GET_DIRTY_LOG ioctl doesn't report modifications
done by the host to the virtual processor areas (VPAs) and dispatch
trace logs (DTLs) registered by the guest.  This is because those
modifications are done either in real mode or in the host kernel
context, and in neither case does the access go through the guest's
HPT, and thus no change (C) bit gets set in the guest's HPT.

However, the changes done by the host do need to be tracked so that
the modified pages get transferred when doing live migration.  In
order to track these modifications, this adds a dirty flag to the
struct representing the VPA/DTL areas, and arranges to set the flag
when the VPA/DTL gets modified by the host.  Then, when we are
collecting the dirty log, we also check the dirty flags for the
VPA and DTL for each vcpu and set the relevant bit in the dirty log
if necessary.  Doing this also means we now need to keep track of
the guest physical address of the VPA/DTL areas.

So as not to lose track of modifications to a VPA/DTL area when it gets
unregistered, or when a new area gets registered in its place, we need
to transfer the dirty state to the rmap chain.  This adds code to
kvmppc_unpin_guest_page() to do that if the area was dirty.  To simplify
that code, we now require that all VPA, DTL and SLB shadow buffer areas
fit within a single host page.  Guests already comply with this
requirement because pHyp requires that these areas not cross a 4k
boundary.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2013-04-26 20:27:13 +02:00
..
8xx_immap.h powerpc: Fix multicast problem in fs_enet driver 2011-04-21 16:59:30 -07:00
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: Remove unused BITOP_LE_SWIZZLE macro 2013-03-05 16:56:28 +11: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 powerpc: Add 64bit csum_and_copy_to_user 2010-09-02 14:07:30 +10:00
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
cpm1.h Fix common misspellings 2011-03-31 11:26:23 -03:00
cpm2.h
cpm.h Fix common misspellings 2011-03-31 11:26:23 -03:00
cputable.h powerpc: Add transactional memory to POWER8 cpu features 2013-02-15 17:02:24 +11:00
cputhreads.h powerpc: Fixing a cputhread code documentation 2012-05-22 14:37:00 +10:00
cputime.h cputime: Generic on-demand virtual cputime accounting 2013-01-27 19:23:27 +01:00
current.h
dbdma.h
dbell.h powerpc: Select either privileged or hypervisor doorbell when sending 2013-01-10 15:09:06 +11:00
dcr-generic.h
dcr-mmio.h
dcr-native.h
dcr-regs.h
dcr.h
debug.h powerpc: Rename set_break to avoid naming conflict 2013-01-16 05:25:47 +11:00
delay.h
device.h powerpc: IOMMU fault injection 2012-07-10 19:18:59 +10:00
disassemble.h
div64.h
dma-mapping.h powerpc: dma_debug: add debug_dma_mapping_error support 2012-11-28 15:28:59 +01:00
dma.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
edac.h
eeh_event.h powerpc/eeh: Handle EEH error based on PE 2012-09-10 09:35:43 +10:00
eeh.h powerpc/eeh: Fix crash when adding a device in a slot with DDW 2013-01-10 17:01:58 +11:00
ehv_pic.h irq_domain/powerpc: Use common irq_domain structure instead of irq_host 2012-02-14 14:06:50 -07:00
elf.h default SET_PERSONALITY() in linux/elf.h 2013-02-26 02:46:08 -05:00
emergency-restart.h
emulated_ops.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
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/kvm/book3s_hv: Preserve guest CFAR register value 2013-02-15 16:54:33 +11:00
exec.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
fadump.h fadump: Invalidate registration and release reserved memory for general use. 2012-02-23 10:50:02 +11:00
fb.h
feature-fixups.h powerpc: Use new CPU feature bit to select 2.06 tlbie 2011-05-04 15:19:26 +10:00
firmware.h powerpc/pseries: Cleanup best_energy_hcall detection 2013-01-10 15:08:37 +11:00
fixmap.h
floppy.h powerpc/irq: Remove IRQF_DISABLED 2011-11-08 14:51:46 +11:00
fs_pd.h
fsl_85xx_cache_sram.h powerpc/85xx: add cache-sram support 2010-10-14 00:54:38 -05:00
fsl_gtm.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
fsl_guts.h powerpc/iommu/fsl: Add PAMU bypass enable register to ccsr_guts struct 2012-11-25 07:19:39 -06: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 powerpc/85xx: Add lbc suspend support for PM 2011-11-24 02:01:40 -06:00
ftrace.h powerpc/ftrace: Implement raw syscall tracepoints on PowerPC 2011-05-26 13:38:57 +10:00
futex.h powerpc: Fix atomic_xxx_return barrier semantics 2011-11-17 16:26:07 +11:00
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 highmem: kill all __kmap_atomic() 2012-03-20 21:48:30 +08:00
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: Disable relocation on exceptions whenever PR KVM is active 2013-01-10 17:00:42 +11:00
hvconsole.h
hvcserver.h
hvsi.h powerpc/hvsi: Fix conflict with old HVSI driver 2011-07-01 13:10:21 +10:00
hw_breakpoint.h powerpc: Change hardware breakpoint to allow longer ranges 2013-01-29 11:35:08 +11:00
hw_irq.h KVM updates for the 3.6 merge window 2012-07-24 12:01:20 -07:00
hydra.h Update broken web addresses in arch directory. 2010-10-18 11:03:21 +02:00
i8259.h irq_domain/powerpc: Use common irq_domain structure instead of irq_host 2012-02-14 14:06:50 -07:00
ibmebus.h
ide.h
immap_cpm2.h
immap_qe.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
io_event_irq.h powerpc/pseries: Add support for IO event interrupts 2011-05-06 13:19:01 +10:00
io-defs.h
io-workarounds.h POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
io.h powerpc: Disable /dev/port interface on systems without an ISA bridge 2012-07-11 18:22:32 +10:00
iommu.h powerpc/iommu: Implement IOMMU pools to improve multiqueue adapter performance 2012-07-03 14:14:48 +10:00
ipic.h
irq_regs.h
irq.h powerpc/irqdomain: Fix broken NR_IRQ references 2012-04-30 10:45:26 +10:00
irqflags.h powerpc: Rework lazy-interrupt handling 2012-03-09 13:25:06 +11:00
jump_label.h static keys: Introduce 'struct static_key', static_key_true()/false() and static_key_slow_[inc|dec]() 2012-02-24 10:05:59 +01:00
Kbuild Merge tag 'kvm-3.8-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2012-12-13 15:31:08 -08:00
kdebug.h
kdump.h powerpc: Rename mapping based RELOCATABLE to DYNAMIC_MEMSTART for BookE 2011-12-20 10:20:19 -05:00
kexec.h powerpc: Cleanup crash/kexec code 2011-12-08 14:02:23 +11:00
keylargo.h Typos: change aditional to additional. 2012-02-21 11:40:36 +01:00
kgdb.h kgdb,ppc: Individual register get/set for ppc 2010-10-29 13:14:42 -05:00
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: PPC: booke: add sregs support 2011-05-22 08:47:53 -04:00
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_32.h powerpc: Build fix for powerpc KVM 2012-10-18 10:37:52 +11:00
kvm_book3s_64.h KVM: PPC: Book3S HV: Make HPT reading code notice R/C bit changes 2013-04-26 20:27:12 +02:00
kvm_book3s_asm.h powerpc/kvm/book3s_hv: Preserve guest CFAR register value 2013-02-15 16:54:33 +11:00
kvm_book3s.h KVM: PPC: Book3S HV: Report VPA and DTL modifications in dirty map 2013-04-26 20:27:13 +02:00
kvm_booke_hv_asm.h KVM: PPC: bookehv64: Add support for interrupt handling 2012-12-06 01:34:11 +01:00
kvm_booke.h Added ONE_REG interface for debug instruction 2013-04-17 15:21:14 +02:00
kvm_fpu.h powerpc: Remove fpscr use from [kvm_]cvt_{fd,df} 2010-09-02 14:07:32 +10:00
kvm_host.h KVM: PPC: Book3S HV: Report VPA and DTL modifications in dirty map 2013-04-26 20:27:13 +02:00
kvm_para.h Merge remote-tracking branch 'master' into queue 2012-10-29 19:15:32 -02:00
kvm_ppc.h Rename EMULATE_DO_PAPR to EMULATE_EXIT_USER 2013-04-26 20:27:03 +02:00
libata-portmap.h
local64.h
local.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
lppaca.h cputime: Generic on-demand virtual cputime accounting 2013-01-27 19:23:27 +01:00
lv1call.h powerpc/ps3: Correct lv1 repository routine names 2012-04-24 15:34:16 -07:00
machdep.h powerpc: Add the DAWR support to the set_break() 2013-01-10 17:01:47 +11:00
macio.h treewide: Convert uses of struct resource to resource_size(ptr) 2011-06-10 14:55:36 +02:00
mc146818rtc.h
mediabay.h
mman.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
mmu_context.h powerpc: Add Initiate Coprocessor Store Word (icswx) support 2011-05-04 15:19:26 +10:00
mmu-8xx.h
mmu-40x.h
mmu-44x.h
mmu-book3e.h KVM: PPC: booke: Extend MAS2 EPN mask for 64-bit 2012-12-06 01:34:15 +01:00
mmu-hash32.h
mmu-hash64.h powerpc: Rename USER_ESID_BITS* to ESID_BITS* 2013-03-17 12:45:44 +11:00
mmu.h powerpc: POWER8 cputable entry 2012-11-15 13:00:45 +11:00
mmzone.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
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_psc.h powerpc/5200: add mpc5200_psc_ac97_gpio_reset 2010-08-06 20:49:18 -06:00
mpc52xx.h powerpc/mpc52xx_lpbfifo: optionally defer fifo transfer start 2012-09-14 10:15:35 +02:00
mpc5121.h powerpc/mpc512x: fix sparce warnings for non static symbols 2013-02-05 07:40:35 +00:00
mpc8260.h
mpic_msgr.h powerpc/mpic_msgr: Add missing includes 2012-08-24 20:26:04 +10:00
mpic.h powerpc/mpic: FSL MPIC error interrupt support. 2012-09-12 14:57:10 -05: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 powerpc/powernv: Update OPAL interfaces 2011-12-07 18:02:02 +11:00
oprofile_impl.h treewide: fix typo of "suport" in various comments and Kconfig 2012-11-19 14:16:09 +01:00
paca.h powerpc: Add transactional memory paca scratch register to show_regs 2013-02-15 16:58:51 +11:00
page_32.h dma-mapping: rename ARCH_KMALLOC_MINALIGN to ARCH_DMA_MINALIGN 2010-08-11 08:59:21 -07:00
page_64.h powerpc/mm: Make some of the PGTABLE_RANGE dependency explicit 2012-09-17 16:31:53 +10:00
page.h powerpc: Define virtual-physical translations for RELOCATABLE 2011-12-20 10:21:34 -05:00
parport.h POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
pasemi_dma.h Fix common misspellings 2011-03-31 11:26:23 -03:00
pci-bridge.h powerpc/eeh: Fix crash on converting OF node to edev 2012-09-18 15:32:51 +10:00
pci.h powerpc/PCI: compute I/O space bus-to-resource offset consistently 2012-03-20 10:41:44 -07:00
percpu.h
perf_event_fsl_emb.h
perf_event_server.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-02-23 17:09:55 -08:00
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
pgalloc-32.h
pgalloc-64.h
pgalloc.h mm, powerpc: move the RCU page-table freeing into generic code 2011-05-25 08:39:16 -07:00
pgtable-ppc32.h mm: remove pte_*map_nested() 2010-10-26 16:52:08 -07:00
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 Fix common misspellings 2011-03-31 11:26:23 -03:00
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
ppc4xx_ocm.h powerpc/44x: Support OCM(On Chip Memory) for APM821xx SoC and Bluestone board 2013-01-10 15:08:37 +11:00
ppc4xx.h
ppc_asm.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-02-23 17:09:55 -08:00
ppc-opcode.h powerpc: Add new instructions for transactional memory 2013-02-15 16:58:49 +11:00
ppc-pci.h powerpc/eeh: Cleanup on EEH PCI address cache 2012-09-10 09:59:00 +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 powerpc: New macros for transactional memory support 2013-02-15 16:58:50 +11:00
prom.h powerpc+of: Move of_drconf_cell struct definition to asm/prom.h 2012-11-15 09:43:55 +11:00
ps3.h powerpc/ps3: Add macro PS3_VERBOSE_RESULT 2013-02-15 16:54:39 +11:00
ps3av.h
ps3gpu.h
ps3stor.h
pte-8xx.h
pte-40x.h
pte-44x.h
pte-book3e.h powerpc: Hugetlb for BookE 2011-09-20 09:19:40 +10:00
pte-common.h powerpc: Don't write protect kernel text with CONFIG_DYNAMIC_FTRACE enabled 2011-04-18 13:08:21 +10:00
pte-fsl-booke.h
pte-hash32.h
pte-hash64-4k.h
pte-hash64-64k.h Fix misspellings of "whether" in comments. 2012-11-19 14:31:35 +01: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_ic.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
qe.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
reg_8xx.h
reg_a2.h powerpc: Add early debug for WSP platforms 2011-05-06 13:32:41 +10:00
reg_booke.h booke: Added DBCR4 SPR number 2013-02-13 12:56:42 +01:00
reg_fsl_emb.h
reg.h powerpc: Add DSCR FSCR register bit definition 2013-03-05 16:56:30 +11:00
rheap.h
rio.h powerpc/fsl_rio: Fix compile error when CONFIG_FSL_RIO not set 2011-06-02 15:29:08 -05:00
rtas.h powerpc+of: Remove the pSeries_reconfig.h file 2012-11-15 12:56:55 +11:00
rtc.h
runlatch.h Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
scom.h powerpc: Add SCOM infrastructure 2011-04-20 17:01:19 +10:00
sections.h powerpc: Relocate prom_init.c on 64bit 2013-01-10 17:00:25 +11:00
serial.h
setjmp.h
setup.h powerpc: Remove stale function prototypes from setup.h 2012-11-15 13:00:54 +11:00
sfp-machine.h
shmparam.h
signal.h consolidate kernel-side struct sigaction declarations 2013-02-03 15:09:22 -05:00
smp.h POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
smu.h Fix misspellings of "whether" in comments. 2012-11-19 14:31:35 +01:00
sparsemem.h powerpc/mm: Add 64TB support 2012-09-17 16:31:51 +10:00
spinlock_types.h
spinlock.h powerpc: Avoid debug_smp_processor_id() check in SHARED_PROCESSOR 2013-01-29 11:35:06 +11:00
spu_csa.h
spu_info.h UAPI: (Scripted) Disintegrate arch/powerpc/include/asm 2012-10-09 09:47:26 +01:00
spu_priv1.h Fix common misspellings 2011-03-31 11:26:23 -03:00
spu.h Merge branch 'for-linus2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2012-01-08 12:19:57 -08:00
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 powerpc: Fix atomic_xxx_return barrier semantics 2011-11-17 16:26:07 +11:00
syscall.h powerpc/ftrace: Implement raw syscall tracepoints on PowerPC 2011-05-26 13:38:57 +10:00
syscalls.h powerpc: trim the crap from syscalls.h 2013-02-03 18:16:11 -05:00
systbl.h powerpc: Wireup the kcmp syscall to sys_ni 2013-03-05 16:56:29 +11:00
tce.h powerpc/powernv: Add TCE SW invalidation support 2011-11-25 14:32:57 +11:00
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 mm, powerpc: move the RCU page-table freeing into generic code 2011-05-25 08:39:16 -07:00
tlbflush.h powerpc/mm: Make some of the PGTABLE_RANGE dependency explicit 2012-09-17 16:31:53 +10:00
tm.h powerpc: Add helper functions for transactional memory context switching 2013-02-15 16:58:52 +11: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_irq.h
tsi108_pci.h
tsi108.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_fast.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
ucc_slow.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
ucc.h powerpc: Fix typos in Freescale copyright claims 2012-11-15 13:00:58 +11:00
udbg.h powerpc/udbg: Remove unused udbg_read() 2012-11-15 12:59:33 +11:00
uic.h
unaligned.h
uninorth.h Revert wrong fixes for common misspellings 2011-04-26 23:31:11 -07:00
unistd.h powerpc: Wireup the kcmp syscall to sys_ni 2013-03-05 16:56:29 +11: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_datapage.h Fix common misspellings 2011-03-31 11:26:23 -03:00
vdso.h powerpc: Add VDSO version of getcpu 2012-07-11 14:18:40 +10:00
vga.h
vio.h POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08: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 powerpc: Add WSP platform 2011-05-06 13:32:35 +10:00
xics.h irq_domain/powerpc: Use common irq_domain structure instead of irq_host 2012-02-14 14:06:50 -07:00
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h