Closed
add support for loongarch64 #17
dpdwajAdd on Aug 18Closed at 10 days ago
add support for loongarch64 #17
Closed
dpdwajAdd on Aug 18Closed at 10 days ago
Total: 2 files changed+62-2
@@ -0,0 +1,56 @@
1+From 3e2a8981ede116782fc5cb63d0ebb9e36c550feb Mon Sep 17 00:00:00 2001
2+From: doupengda <doupengda@loongson.cn>
3+Date: Tue, 18 Aug 2026 17:06:30 +0800
4+Subject: [PATCH] knet-1.0.0 add support for loongarch64
5+ 
6+---
7+ CMakeLists.txt | 2 ++
8+ src/knet/framework/base/include/knet_lock.h | 5 +++++
9+ src/stack/tcp/src/dpfwk/utils/include/inner/utils_spinlock.h | 2 ++
10+ 3 files changed, 9 insertions(+)
11+ 
12+diff --git a/CMakeLists.txt b/CMakeLists.txt
13+index d87f76f..d55eb89 100644
14+--- a/CMakeLists.txt
15++++ b/CMakeLists.txt
16+@@ -8,6 +8,8 @@ if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "aarch64")
17+ add_compile_options(-march=armv8-a+crc)
18+ elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "x86_64")
19+ add_compile_options(-msse4.2)
20++elseif(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "loongarch64")
21++ add_compile_options(-march=loongarch64)
22+ endif()
23+
24+ #设置头文件依赖路径
25+diff --git a/src/knet/framework/base/include/knet_lock.h b/src/knet/framework/base/include/knet_lock.h
26+index 4a77f5f..158ad80 100644
27+--- a/src/knet/framework/base/include/knet_lock.h
28++++ b/src/knet/framework/base/include/knet_lock.h
29+@@ -52,6 +52,11 @@ KNET_WaitPolicy KNET_HalGetWaitPolicy(void);
30+ {
31+ __asm__ __volatile__("pause \n" ::: "memory");
32+ }
33++#elif defined(__loongarch64)
34++ static inline void KNET_HalCpuRelax(void)
35++ {
36++ __asm__ __volatile__("dbar 0" : : : "memory");
37++ }
38+ #else
39+ static inline void KNET_HalCpuRelax(void)
40+ {
41+diff --git a/src/stack/tcp/src/dpfwk/utils/include/inner/utils_spinlock.h b/src/stack/tcp/src/dpfwk/utils/include/inner/utils_spinlock.h
42+index 429f5f8..4bae0b1 100644
43+--- a/src/stack/tcp/src/dpfwk/utils/include/inner/utils_spinlock.h
44++++ b/src/stack/tcp/src/dpfwk/utils/include/inner/utils_spinlock.h
45+@@ -34,6 +34,8 @@ static inline void SPINLOCK_CpuRelax(void)
46+ __asm__ __volatile__("pause": : :"memory");
47+ #elif defined(__aarch64__) || defined(_M_ARM64)
48+ __asm__ __volatile__("yield": : :"memory");
49++#elif defined(__loongarch64)
50++ __asm__ __volatile__("dbar 0" : : : "memory");
51+ #else
52+ return;
53+ #endif
54+--
55+2.54.0
56+ 
@@ -1,7 +1,7 @@
1Summary: libknet1Summary: libknet
2Name: knet2Name: knet
3Version: 1.0.03Version: 1.0.0
4-Release: 24+Release: 3
5License: MulanPSL-2.05License: MulanPSL-2.0
6Group: Development/Libraries6Group: Development/Libraries
7Vendor: Huawei Technologies Co., Ltd.7Vendor: Huawei Technologies Co., Ltd.
@@ -11,6 +11,7 @@ BuildRequires: dpdk >= 21.11-5
11BuildRequires: libboundscheck cjson-devel cjson11BuildRequires: libboundscheck cjson-devel cjson
12Source: %{name}-%{version}.tar.gz12Source: %{name}-%{version}.tar.gz
13 13 
14+Patch1: knet-1.0.0-add-support-for-loongarch64.patch
14 15 
15%define project %{name}-%{version}16%define project %{name}-%{version}
16%define projectdir %(echo $PWD)/rpmbuild/BUILD/%{project}17%define projectdir %(echo $PWD)/rpmbuild/BUILD/%{project}
@@ -23,7 +24,7 @@ Source: %{name}-%{version}.tar.gz
23A multi-protocol framework, enables NIC acceleration and provides seamless application migration.24A multi-protocol framework, enables NIC acceleration and provides seamless application migration.
24 25 
25%prep26%prep
26-%setup -q27+%autosetup -p1
27 28 
28 29 
29%build30%build
@@ -94,6 +95,9 @@ fi
94%dir %{knetsysdir}/knet/run95%dir %{knetsysdir}/knet/run
95 96 
96%changelog97%changelog
98+* Tue Aug 18 2026 doupengda <doupengda@loongson.cn> 1.0.0-3
99+- add support for loongarch64
100+ 
97* Tue Feb 10 2026 Build System <tangzhengliang1@huawei.com> - 1.0.0-2101* Tue Feb 10 2026 Build System <tangzhengliang1@huawei.com> - 1.0.0-2
98- resolve cjson, dpdk, libboundscheck dependency automatically102- resolve cjson, dpdk, libboundscheck dependency automatically
99 103