kernel-hacking-2024-linux-s.../arch/s390/include/asm
Christian Borntraeger 92e6ecf392 [S390] Fix hypervisor detection for KVM
Currently we use the cpuid (via STIDP instruction) to recognize LPAR,
z/VM and KVM.
The architecture states, that bit 0-7 of STIDP returns all zero, and
if STIDP is executed in a virtual machine, the VM operating system
will replace bits 0-7 with FF.

KVM should not use FE to distinguish z/VM from KVM for interested
guests. The proper way to detect the hypervisor is the STSI (Store
System Information) instruction, which return information about the
hypervisors via function code 3, selector1=2, selector2=2.

This patch changes the detection routine of Linux to use STSI instead
of STIDP. This detection is earlier than bootmem, we have to use a
static buffer. Since STSI expects a 4kb block (4kb aligned) this
patch also changes the init.data alignment for s390. As this section
will be freed during boot, this should be no problem.

Patch is tested with LPAR, z/VM, KVM on LPAR, and KVM under z/VM.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2009-03-26 15:24:09 +01:00
..
airq.h
appldata.h
atomic.h atomic_t: unify all arch definitions 2009-01-06 15:59:10 -08:00
auxvec.h [S390] introduce vdso on s390 2008-12-25 13:38:55 +01:00
bitops.h [S390] fix ext2_find_next_bit 2008-08-21 19:46:41 +02:00
bug.h [S390] remove warnings with functions ending in BUG 2008-12-25 13:39:12 +01:00
bugs.h
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h
cacheflush.h
ccwdev.h
ccwgroup.h
checksum.h
chpid.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
chsc.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
cio.h
cmb.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
compat.h
cpcmd.h
cpu.h [PATCH] improve idle cputime accounting 2008-12-31 15:11:48 +01:00
cputime.h [S390] Fix timeval regression on s390 2009-02-19 15:19:19 +01:00
current.h
dasd.h [S390] dasd: add large volume support 2009-03-26 15:24:05 +01:00
debug.h
delay.h [S390] Move private simple udelay function to arch/s390/lib/delay.c. 2008-10-10 21:33:58 +02:00
device.h
diag.h
div64.h
dma.h
ebcdic.h
elf.h [S390] personality: fix personality loss on execve 2009-01-23 16:40:28 +01:00
emergency-restart.h
errno.h
etr.h
extmem.h
fb.h
fcntl.h
fcx.h [S390] cio: update sac values 2008-12-25 13:39:06 +01:00
ftrace.h [S390] ftrace: function tracer backend for s390 2008-12-25 13:39:03 +01:00
futex.h
hardirq.h
hugetlb.h
idals.h [S390] dasd: add High Performance FICON support 2009-03-26 15:24:05 +01:00
io.h
ioctl.h
ioctls.h
ipcbuf.h
ipl.h
irq.h
irq_regs.h
irqflags.h
isc.h [S390] zcrypt: Use of Thin Interrupts 2008-12-25 13:38:57 +01:00
itcw.h
Kbuild byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
kdebug.h
kexec.h
kmap_types.h
kprobes.h
kvm.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
kvm_host.h
kvm_para.h
kvm_virtio.h virtio: use KVM_S390_VIRTIO_RING_ALIGN instead of relying on pagesize 2008-12-30 09:26:03 +10:30
linkage.h
local.h
lowcore.h [S390] Automatic IPL after dump 2009-03-26 15:24:03 +01:00
mathemu.h
mman.h [S390] make page table upgrade work again 2009-03-18 13:28:13 +01:00
mmu.h [S390] introduce vdso on s390 2008-12-25 13:38:55 +01:00
mmu_context.h [S390] pgtables: Fix race in enable_sie vs. page table ops 2008-10-28 11:12:03 +01:00
module.h
monwriter.h
msgbuf.h
mutex.h
page.h [S390] introduce vdso on s390 2008-12-25 13:38:55 +01:00
param.h
pci.h
percpu.h
pgalloc.h [S390] clear_table inline assembly contraints 2008-12-25 13:39:15 +01:00
pgtable.h [S390] pgtable.h: Fix oops in unmap_vmas for KVM processes 2008-11-27 11:06:57 +01:00
poll.h
posix_types.h [S390] asm-s390/posix_types.h: drop __USE_ALL usage 2009-01-09 12:15:04 +01:00
processor.h [S390] make page table walking more robust 2009-03-18 13:28:13 +01:00
ptrace.h [S390] ptrace: no extern declarations for userspace 2009-01-09 12:15:03 +01:00
qdio.h [S390] qdio: fix qeth port count detection 2008-12-25 13:38:58 +01:00
qeth.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
reset.h
resource.h
rwsem.h
s390_ext.h
scatterlist.h
schid.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
sclp.h
sections.h
segment.h
sembuf.h
setup.h [S390] fix "mem=" handling in case of standby memory 2009-02-19 15:19:19 +01:00
sfp-machine.h
sfp-util.h
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h
sigp.h [S390] convert s390 to generic IPI infrastructure 2008-12-25 13:38:56 +01:00
smp.h [S390] convert s390 to generic IPI infrastructure 2008-12-25 13:38:56 +01:00
socket.h
sockios.h
sparsemem.h
spinlock.h
spinlock_types.h
stat.h
statfs.h S390: Update comments about why we don't use <asm-generic/statfs.h> 2008-09-06 19:30:19 +01:00
string.h
suspend.h
swab.h [S390] types: add/fix types.h include in header files 2009-01-09 12:15:06 +01:00
syscall.h [S390] fix system call parameter functions. 2008-11-27 11:06:56 +01:00
sysinfo.h [S390] Fix hypervisor detection for KVM 2009-03-26 15:24:09 +01:00
system.h [S390] Automatic IPL after dump 2009-03-26 15:24:03 +01:00
tape390.h
termbits.h
termios.h
thread_info.h [PATCH] improve precision of process accounting. 2008-12-31 15:11:47 +01:00
timer.h [PATCH] improve idle cputime accounting 2008-12-31 15:11:48 +01:00
timex.h
tlb.h
tlbflush.h
todclk.h
topology.h [S390] topology: define SD_MC_INIT to fix performance regression 2009-03-18 13:28:12 +01:00
types.h [S390] Use unsigned long long for u64 on 64bit. 2009-01-09 12:15:07 +01:00
uaccess.h
ucontext.h
unaligned.h
unistd.h
user.h
vdso.h [PATCH] fast vdso implementation for CLOCK_THREAD_CPUTIME_ID 2008-12-31 15:11:49 +01:00
vtoc.h [S390] dasd: add large volume support 2009-03-26 15:24:05 +01:00
xor.h
zcrypt.h