linux/arch/loongarch/kernel
Bibo Mao 03779999ac LoongArch: KVM: Add PV steal time support in guest side
Per-cpu struct kvm_steal_time is added here, its size is 64 bytes and
also defined as 64 bytes, so that the whole structure is in one physical
page.

When a VCPU is online, function pv_enable_steal_time() is called. This
function will pass guest physical address of struct kvm_steal_time and
tells hypervisor to enable steal time. When a vcpu is offline, physical
address is set as 0 and tells hypervisor to disable steal time.

Here is an output of vmstat on guest when there is workload on both host
and guest. It shows steal time stat information.

procs -----------memory---------- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   bi    bo   in   cs us sy id wa st
15  1      0 7583616 184112  72208    20    0  162   52 31  6 43  0 20
17  0      0 7583616 184704  72192    0     0 6318 6885  5 60  8  5 22
16  0      0 7583616 185392  72144    0     0 1766 1081  0 49  0  1 50
16  0      0 7583616 184816  72304    0     0 6300 6166  4 62 12  2 20
18  0      0 7583632 184480  72240    0     0 2814 1754  2 58  4  1 35

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2024-07-09 16:25:51 +08:00
..
.gitignore
access-helper.h LoongArch: Add exception/interrupt handling 2022-06-03 20:09:28 +08:00
acpi.c LoongArch: Change acpi_core_pic[NR_CPUS] to acpi_core_pic[MAX_CORE_PIC] 2024-02-06 12:32:05 +08:00
alternative.c LoongArch: Use common function sign_extend64() 2023-01-17 11:42:16 +08:00
asm-offsets.c arch: fix asm-offsets.c building with -Wmissing-prototypes 2023-11-23 11:32:31 +01:00
cacheinfo.c LoongArch: Refactor cache probe and flush methods 2022-10-12 16:36:14 +08:00
cpu-probe.c LoongArch: Add Loongson Binary Translation (LBT) extension support 2023-09-06 22:53:55 +08:00
crash_dump.c LoongArch: Add kdump support 2022-10-12 16:36:19 +08:00
dma.c dma-mapping: Add helpers for dma_range_map bounds 2024-04-26 12:07:24 +02:00
efi-header.S LoongArch: Calculate various sizes in the linker script 2023-06-29 20:58:42 +08:00
efi.c LoongArch: Add a missing call to efi_esrt_init() 2024-01-17 12:43:08 +08:00
elf.c LoongArch: Fix and simplify fcsr initialization on execve() 2024-01-17 12:43:08 +08:00
entry.S LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
env.c LoongArch: Parsing CPU-related information from DTS 2024-01-17 12:43:08 +08:00
fpu.S LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
ftrace_dyn.c kprobe/ftrace: bail out if ftrace was killed 2024-05-16 07:23:30 +09:00
ftrace.c LoongArch/ftrace: Add basic support 2022-12-14 08:41:53 +08:00
genex.S LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
head.S LoongArch: Fix entry point in kernel image header 2024-06-03 15:45:53 +08:00
hw_breakpoint.c LoongArch: Fix multiple hardware watchpoint issues 2024-06-21 10:18:40 +08:00
idle.c arch/idle: Change arch_cpu_idle() behavior: always exit with IRQs disabled 2023-01-13 11:48:15 +01:00
image-vars.h efi/loongarch: Directly position the loaded image file 2023-12-19 11:16:37 +01:00
inst.c LoongArch: Add larch_insn_gen_break() to generate break insns 2023-06-29 20:58:44 +08:00
io.c LoongArch: Add misc common routines 2022-06-03 20:09:28 +08:00
irq.c LoongArch: Give a chance to build with !CONFIG_SMP 2024-05-14 12:24:18 +08:00
jump_label.c LoongArch: Add jump-label implementation 2023-06-29 20:58:44 +08:00
kfpu.c LoongArch: Allow usage of LSX/LASX in the kernel 2023-09-06 22:53:55 +08:00
kgdb.c LoongArch: Add basic KGDB & KDB support 2023-09-06 22:53:55 +08:00
kprobes.c LoongArch: Use larch_insn_gen_break() for kprobes 2023-06-29 20:58:44 +08:00
lbt.S LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
machine_kexec.c LoongArch: Give a chance to build with !CONFIG_SMP 2024-05-14 12:24:18 +08:00
Makefile LoongArch: KVM: Add PV IPI support on guest side 2024-05-06 22:00:47 +08:00
mcount_dyn.S LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
mcount.S LoongArch: Replace #include <asm/export.h> with #include <linux/export.h> 2023-08-25 23:40:26 +08:00
mem.c LoongArch: Set all reserved memblocks on Node#0 at initialization 2023-09-20 14:26:29 +08:00
module-sections.c LoongArch: Fix some build warnings with W=1 2023-09-20 14:26:28 +08:00
module.c arch: make execmem setup available regardless of CONFIG_MODULES 2024-05-14 00:31:44 -07:00
numa.c NUMA: optimize detection of memory with no node id assigned by firmware 2023-12-10 16:51:34 -08:00
paravirt.c LoongArch: KVM: Add PV steal time support in guest side 2024-07-09 16:25:51 +08:00
perf_event.c LoongArch/smp: Refine some ipi functions on LoongArch platform 2024-05-06 22:00:46 +08:00
perf_regs.c LoongArch: Add perf events support 2022-10-12 16:36:14 +08:00
proc.c LoongArch: Introduce hardware page table walker 2023-06-29 20:58:44 +08:00
process.c LoongArch: Fix and simplify fcsr initialization on execve() 2024-01-17 12:43:08 +08:00
ptrace.c LoongArch: Trigger user-space watchpoints correctly 2024-06-21 10:18:40 +08:00
relocate_kernel.S LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
relocate.c LoongArch: Silence the boot warning about 'nokaslr' 2023-11-21 15:03:25 +08:00
reset.c LoongArch: Add hibernation (ACPI S4) support 2022-12-14 08:41:53 +08:00
rethook_trampoline.S LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
rethook.c LoongArch: Replace kretprobe with rethook 2023-06-29 20:58:44 +08:00
rethook.h LoongArch: Replace kretprobe with rethook 2023-06-29 20:58:44 +08:00
setup.c LoongArch: Fix built-in DTB detection 2024-06-03 15:45:53 +08:00
signal.c LoongArch: signal.c: add header file to fix build error 2023-12-27 11:49:56 -05:00
smp.c LoongArch: Add all CPUs enabled by fdt to NUMA node 0 2024-06-03 15:45:53 +08:00
stacktrace.c LoongArch: Add kernel livepatching support 2024-03-11 22:23:47 +08:00
switch.S LoongArch: Add basic STACKPROTECTOR support 2022-12-14 08:41:53 +08:00
syscall.c syscalls: mmap(): use unsigned offset type consistently 2024-06-25 15:57:38 +02:00
sysrq.c tty: sysrq: switch sysrq handlers from int to u8 2023-07-25 19:21:03 +02:00
time.c LoongArch: KVM: Add PV steal time support in guest side 2024-07-09 16:25:51 +08:00
topology.c LoongArch: convert to use arch_cpu_is_hotpluggable() 2023-12-06 12:41:50 +09:00
traps.c LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
unaligned.c LoongArch: Delete unnecessary debugfs checking 2023-06-29 20:58:42 +08:00
unwind_guess.c LoongArch: Strip guess unwinder out from prologue unwinder 2023-01-17 11:42:16 +08:00
unwind_orc.c LoongArch: Add ORC stack unwinder support 2024-03-11 22:23:47 +08:00
unwind_prologue.c LoongArch: Set unwind stack type to unknown rather than set error flag 2023-12-09 15:49:15 +08:00
unwind.c LoongArch: Set unwind stack type to unknown rather than set error flag 2023-12-09 15:49:15 +08:00
uprobes.c LoongArch: Add uprobes support 2023-06-29 20:58:44 +08:00
vdso.c LoongArch: vdso: Use generic union vdso_data_store 2024-02-20 20:56:00 +01:00
vmlinux.lds.S LoongArch: Fix entry point in kernel image header 2024-06-03 15:45:53 +08:00