OpenCloudOS-Kernel/arch
Bibo Mao 05e7e13eb9 LoongArch: Add pv ipi support on guest kernel side
Upstream: no

PARAVIRT option and pv ipi is added on guest kernel side, function
pv_ipi_init() is to add ipi sending and ipi receiving hooks. This function
firstly checks whether system runs on VM mode. If kernel runs on VM mode,
it will call function kvm_para_available() to detect current hypervirsor
type. Now only KVM type detection is supported, the paravirt function can
work only if current hypervisor type is KVM, since there is only KVM
supported on LoongArch now.

PV IPI uses virtual IPI sender and virtual IPI receiver function. With
virutal IPI sender, ipi message is stored in DDR memory rather than
emulated HW. IPI multicast is supported, and 128 vcpus can received IPIs
at the same time like X86 KVM method. Hypercall method is used for IPI
sending.

With virtual IPI receiver, HW SW0 is used rather than real IPI HW. Since
VCPU has separate HW SW0 like HW timer, there is no trap in IPI interrupt
acknowledge. And IPI message is stored in DDR, no trap in get IPI message.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Xianglai Li <lixianglai@loongson.cn>
2024-04-12 20:59:06 +08:00
..
alpha rtc: Add support for configuring the UIP timeout for RTC reads 2024-01-31 16:18:56 -08:00
arc work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:24:47 +01:00
arm ARM: ep93xx: Add terminator to gpiod_lookup_table 2024-03-01 13:35:01 +01:00
arm64 Add iommu support for Phytium S2500 2024-03-21 19:07:28 +08:00
csky work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:24:47 +01:00
hexagon Add x86 shadow stack support 2023-08-31 12:20:12 -07:00
ia64 cpu-hotplug: Provide prototypes for arch CPU registration 2023-10-11 14:27:37 +02:00
loongarch LoongArch: Add pv ipi support on guest kernel side 2024-04-12 20:59:06 +08:00
m68k mm: Introduce flush_cache_vmap_early() 2024-02-16 19:10:52 +01:00
microblaze Microblaze patches for 6.6-rc1 2023-09-05 10:15:22 -07:00
mips MIPS: reserve exception vector space ONLY ONCE 2024-03-01 13:34:50 +01:00
nios2 mm: Introduce flush_cache_vmap_early() 2024-02-16 19:10:52 +01:00
openrisc OpenRISC updates for 6.6 2023-09-05 10:09:31 -07:00
parisc parisc: Fix stack unwinder 2024-03-01 13:35:07 +01:00
powerpc Merge branch 'linux-6.6.y' 2024-03-04 10:25:33 +08:00
riscv Makefile, dist: add "make tencentconfig" support 2024-03-04 13:25:26 +08:00
s390 Merge branch 'linux-6.6.y' 2024-03-04 10:25:33 +08:00
sh mm: Introduce flush_cache_vmap_early() 2024-02-16 19:10:52 +01:00
sparc sparc: Fix undefined reference to fb_is_primary_device 2024-03-01 13:35:00 +01:00
um um: Fix adding '-no-pie' for clang 2024-02-23 09:25:03 +01:00
x86 x86: configs: Enable Intel QAT_4XXX as kernel module 2024-04-12 20:55:43 +08:00
xtensa work around gcc bugs with 'asm goto' with outputs 2024-02-23 09:24:47 +01:00
.gitignore
Kconfig scs: add CONFIG_MMU dependency for vfree_atomic() 2024-02-23 09:24:54 +01:00