hulk inclusion category: feature bugzilla: https://atomgit.com/openeuler/kernel/issues/8729 -------------------------------------------------------------------- Add research paper references to xcall feature source files to document the academic foundation of the design. Reference papers: 1. XPC (ISCA 2019) - XPC: Architectural Support for Secure and Efficient Cross Process Call Authors: Dong Du, Zhichao Hua, Yubin Xia, Binyu Zang, Haibo Chen 2. Boosting IPC (TOCS 2022) - Boosting Inter-Process Communication with Architectural Support Authors: Yubin Xia, Dong Du, Zhichao Hua, Binyu Zang, Haibo Chen, Haibing Guan Signed-off-by: Yipeng Zou <zouyipeng@huawei.com> --- arch/arm64/include/asm/xcall.h | 9 +++++++++ arch/arm64/kernel/xcall/core.c | 7 +++++++ arch/arm64/kernel/xcall/entry.S | 7 ++++++- arch/arm64/kernel/xcall/proc.c | 7 +++++++ arch/arm64/kernel/xcall/xcall.c | 7 ++++++- include/linux/xcall.h | 7 +++++++ 6 files changed, 42 insertions(+), 2 deletions(-) diff --git a/arch/arm64/include/asm/xcall.h b/arch/arm64/include/asm/xcall.h index 0d0c4c794010..6ea03cc6cb20 100644 --- a/arch/arm64/include/asm/xcall.h +++ b/arch/arm64/include/asm/xcall.h @@ -1,4 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0 */ +/* + * ARM64-specific xcall definitions and inline functions. + * + * Inspired by: + * 1. XPC (ISCA 2019) - Dong Du, Zhichao Hua, Yubin Xia, Binyu Zang, Haibo Chen; + * 2. Boosting IPC (TOCS 2022) - Yubin Xia, Dong Du, Zhichao Hua, Binyu Zang, + * Haibo Chen, Haibing Guan. + */ + #ifndef __ASM_XCALL_H #define __ASM_XCALL_H diff --git a/arch/arm64/kernel/xcall/core.c b/arch/arm64/kernel/xcall/core.c index 5dc6e4aebf11..5dc8e3b505b4 100644 --- a/arch/arm64/kernel/xcall/core.c +++ b/arch/arm64/kernel/xcall/core.c @@ -1,6 +1,13 @@ // SPDX-License-Identifier: GPL-2.0-only /* + * xcall core implementation: syscall interception and xcall_area management. + * * Copyright (C) 2025 Huawei Limited. + * + * Inspired by: + * 1. XPC (ISCA 2019) - Dong Du, Zhichao Hua, Yubin Xia, Binyu Zang, Haibo Chen; + * 2. Boosting IPC (TOCS 2022) - Yubin Xia, Dong Du, Zhichao Hua, Binyu Zang, + * Haibo Chen, Haibing Guan. */ #define pr_fmt(fmt) "xcall: " fmt diff --git a/arch/arm64/kernel/xcall/entry.S b/arch/arm64/kernel/xcall/entry.S index f531f1e17f48..d5ed68db1547 100644 --- a/arch/arm64/kernel/xcall/entry.S +++ b/arch/arm64/kernel/xcall/entry.S @@ -1,10 +1,15 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Low-level exception handling code + * xcall low-level exception handling and register saving. * * Copyright (C) 2012 ARM Ltd. * Authors: Catalin Marinas <catalin.marinas@arm.com> * Will Deacon <will.deacon@arm.com> + * + * Inspired by: + * 1. XPC (ISCA 2019) - Dong Du, Zhichao Hua, Yubin Xia, Binyu Zang, Haibo Chen; + * 2. Boosting IPC (TOCS 2022) - Yubin Xia, Dong Du, Zhichao Hua, Binyu Zang, + * Haibo Chen, Haibing Guan. */ .macro hw_xcall_save_base_regs diff --git a/arch/arm64/kernel/xcall/proc.c b/arch/arm64/kernel/xcall/proc.c index 9dea182340ef..f2fcc9c8eaa2 100644 --- a/arch/arm64/kernel/xcall/proc.c +++ b/arch/arm64/kernel/xcall/proc.c @@ -1,6 +1,13 @@ // SPDX-License-Identifier: GPL-2.0-only /* + * xcall proc interface for attach/detach operations. + * * Copyright (C) 2025 Huawei Limited. + * + * Inspired by: + * 1. XPC (ISCA 2019) - Dong Du, Zhichao Hua, Yubin Xia, Binyu Zang, Haibo Chen; + * 2. Boosting IPC (TOCS 2022) - Yubin Xia, Dong Du, Zhichao Hua, Binyu Zang, + * Haibo Chen, Haibing Guan. */ #include <linux/namei.h> diff --git a/arch/arm64/kernel/xcall/xcall.c b/arch/arm64/kernel/xcall/xcall.c index f3fc89ef8e2f..a239f8b1b88a 100644 --- a/arch/arm64/kernel/xcall/xcall.c +++ b/arch/arm64/kernel/xcall/xcall.c @@ -1,8 +1,13 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * xcall related code + * xcall task lifecycle management and context switch implementation. * * Copyright (C) 2025 Huawei Ltd. + * + * Inspired by: + * 1. XPC (ISCA 2019) - Dong Du, Zhichao Hua, Yubin Xia, Binyu Zang, Haibo Chen; + * 2. Boosting IPC (TOCS 2022) - Yubin Xia, Dong Du, Zhichao Hua, Binyu Zang, + * Haibo Chen, Haibing Guan. */ #include <linux/bitmap.h> diff --git a/include/linux/xcall.h b/include/linux/xcall.h index 26c60cd3dd38..222bd2cfb843 100644 --- a/include/linux/xcall.h +++ b/include/linux/xcall.h @@ -1,6 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* + * xcall data structures and function declarations. + * * Copyright (C) 2025 Huawei. + * + * Inspired by: + * 1. XPC (ISCA 2019) - Dong Du, Zhichao Hua, Yubin Xia, Binyu Zang, Haibo Chen; + * 2. Boosting IPC (TOCS 2022) - Yubin Xia, Dong Du, Zhichao Hua, Binyu Zang, + * Haibo Chen, Haibing Guan. */ #ifndef _LINUX_XCALL_H -- 2.34.1