Unverified Commit a212cb68 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!6676 cvm feature patches

Merge Pull Request from: @ci-robot 
 
PR sync from: hejingxian <hejingxian@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/2GTMYUXF5BHIE5KLRKNBBGURBPRYBFWU/ 
From: Jingxian He <hejingxian@huawei.com>

Add cvm feature patches::
  kvm: add cvm host feature
  pmu: enable pmu phys irq inject for cvm
  kvm: add support for multi-numa and fix kabi change
  swiotlb: Add restricted DMA alloc/free support
  swiotlb: add swiotlb io_tlb_list release slots methd
  mm: enable swiotlb alloc for cvm share mem
  config: modify arm64 defconfig for cvm feature
  gicv3: add lpi support for cvm guest


-- 
2.33.0
 
https://gitee.com/openeuler/kernel/issues/I9CC0X 
 
Link:https://gitee.com/openeuler/kernel/pulls/6676

 

Reviewed-by: default avatarZhang Jianhua <chris.zjh@huawei.com>
Reviewed-by: default avatarKevin Zhu <zhukeqian1@huawei.com>
Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Reviewed-by: default avatarLiu Chao <liuchao173@huawei.com>
Reviewed-by: default avatarXu Kuohai <xukuohai@huawei.com>
Signed-off-by: default avatarJialin Zhang <zhangjialin11@huawei.com>
parents 84951421 b5370613
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -2283,6 +2283,14 @@ config ARCH_ENABLE_THP_MIGRATION
	def_bool y
	depends on TRANSPARENT_HUGEPAGE

config CVM_GUEST
	bool "Enable cvm guest run"
	depends on DMA_RESTRICTED_POOL
	help
	  Support CVM guest based on S-EL2

	  If unsure, say N.

menu "Power management options"

source "kernel/power/Kconfig"
+3 −0
Original line number Diff line number Diff line
@@ -110,6 +110,9 @@ CONFIG_ACPI_APEI_MEMORY_FAILURE=y
CONFIG_ACPI_APEI_EINJ=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_CVM_HOST=y
CONFIG_CVM_GUEST=y
CONFIG_DMA_RESTRICTED_POOL=y
CONFIG_ARM64_CRYPTO=y
CONFIG_CRYPTO_SHA1_ARM64_CE=y
CONFIG_CRYPTO_SHA2_ARM64_CE=y
+3 −0
Original line number Diff line number Diff line
@@ -762,6 +762,9 @@ CONFIG_ACPI_PPTT=y
CONFIG_IRQ_BYPASS_MANAGER=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
CONFIG_CVM_HOST=y
CONFIG_CVM_GUEST=y
CONFIG_DMA_RESTRICTED_POOL=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
CONFIG_HAVE_KVM_IRQ_ROUTING=y
+0 −1
Original line number Diff line number Diff line
@@ -2,5 +2,4 @@
generic-y += early_ioremap.h
generic-y += mcs_spinlock.h
generic-y += qrwlock.h
generic-y += set_memory.h
generic-y += user.h
+46 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (C) 2024. Huawei Technologies Co., Ltd. All rights reserved.
 */
#ifndef __CVM_GUEST_H
#define __CVM_GUEST_H

#ifdef CONFIG_CVM_GUEST
struct device;

extern int set_cvm_memory_encrypted(unsigned long addr, int numpages);

extern int set_cvm_memory_decrypted(unsigned long addr, int numpages);

extern bool is_cvm_world(void);

#define is_swiotlb_for_alloc is_swiotlb_for_alloc
static inline bool is_swiotlb_for_alloc(struct device *dev)
{
	/* Force dma alloc by swiotlb in Confidential VMs */
	return is_cvm_world();
}

extern void __init swiotlb_cvm_update_mem_attributes(void);

#else

static inline int set_cvm_memory_encrypted(unsigned long addr, int numpages)
{
	return 0;
}

static inline int set_cvm_memory_decrypted(unsigned long addr, int numpages)
{
	return 0;
}

static inline bool is_cvm_world(void)
{
	return false;
}

static inline void __init swiotlb_cvm_update_mem_attributes(void) {}

#endif /* CONFIG_CVM_GUEST */
#endif /* __CVM_GUEST_H */
Loading