From df7df80e5fed3d0fb72fd28a617f4fef58ab3db2 Mon Sep 17 00:00:00 2001 From: doupengda Date: Fri, 16 Jun 2023 17:51:38 +0800 Subject: [PATCH] Add support for loongarch64 --- 0001-Add-support-for-loongarch64.patch | 101 +++++++++++++++++++++++++ fio.spec | 6 +- 2 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 0001-Add-support-for-loongarch64.patch diff --git a/0001-Add-support-for-loongarch64.patch b/0001-Add-support-for-loongarch64.patch new file mode 100644 index 0000000..b733b25 --- /dev/null +++ b/0001-Add-support-for-loongarch64.patch @@ -0,0 +1,101 @@ +From 9a1c3a07ce6937917b51b30106f4a8f461bbc625 Mon Sep 17 00:00:00 2001 +From: doupengda +Date: Fri, 16 Jun 2023 09:41:27 +0000 +Subject: [PATCH] Add support for loongarch64 + +--- + arch/arch-loongarch64.h | 11 +++++++++++ + arch/arch.h | 3 +++ + configure | 3 +++ + libfio.c | 3 ++- + os/os-linux-syscall.h | 7 +++++++ + 5 files changed, 26 insertions(+), 1 deletion(-) + create mode 100644 arch/arch-loongarch64.h + +diff --git a/arch/arch-loongarch64.h b/arch/arch-loongarch64.h +new file mode 100644 +index 0000000..77b4eae +--- /dev/null ++++ b/arch/arch-loongarch64.h +@@ -0,0 +1,11 @@ ++#ifndef ARCH_LOONGARCH64_H ++#define ARCH_LOONGARCH64_H ++ ++#define FIO_ARCH (arch_loongarch64) ++ ++#define read_barrier() __asm__ __volatile__("": : :"memory") ++#define write_barrier() __asm__ __volatile__("": : :"memory") ++#define nop __asm__ __volatile__("": : :"memory") ++ ++#endif ++ +diff --git a/arch/arch.h b/arch/arch.h +index 08c3d70..397c024 100644 +--- a/arch/arch.h ++++ b/arch/arch.h +@@ -23,6 +23,7 @@ enum { + arch_generic, + + arch_nr, ++ arch_loongarch64, + }; + + enum { +@@ -70,6 +71,8 @@ extern unsigned long arch_flags; + #include "arch-hppa.h" + #elif defined(__aarch64__) + #include "arch-aarch64.h" ++#elif defined(__loongarch64) ++#include "arch-loongarch64.h" + #else + #warning "Unknown architecture, attempting to use generic model." + #include "arch-generic.h" +diff --git a/configure b/configure +index dd7fe3d..e75cae1 100755 +--- a/configure ++++ b/configure +@@ -491,6 +491,9 @@ case "$cpu" in + mips*) + cpu="mips" + ;; ++ loongarch64) ++ cpu="loongarch64" ++ ;; + sparc|sun4[cdmuv]) + cpu="sparc" + ;; +diff --git a/libfio.c b/libfio.c +index 7348b16..058adfc 100644 +--- a/libfio.c ++++ b/libfio.c +@@ -74,7 +74,8 @@ static const char *fio_arch_strings[arch_nr] = { + "hppa", + "mips", + "aarch64", +- "generic" ++ "generic", ++ "loongarch64" + }; + + static void reset_io_counters(struct thread_data *td, int all) +diff --git a/os/os-linux-syscall.h b/os/os-linux-syscall.h +index c399b2f..d326a7c 100644 +--- a/os/os-linux-syscall.h ++++ b/os/os-linux-syscall.h +@@ -270,6 +270,13 @@ + #define __NR_ioprio_get 31 + #endif + ++/* Linux syscalls for loongarch64 */ ++#elif defined(ARCH_LOONGARCH64_H) ++#ifndef __NR_ioprio_set ++#define __NR_ioprio_set 314 ++#define __NR_ioprio_get 315 ++#endif ++ + #else + #warning "Unknown architecture" + #endif +-- +2.27.0 + diff --git a/fio.spec b/fio.spec index dddaf79..3b46720 100644 --- a/fio.spec +++ b/fio.spec @@ -1,4 +1,4 @@ -%define anolis_release .0.1 +%define anolis_release .0.2 Name: fio Version: 3.22 @@ -11,6 +11,7 @@ URL: http://git.kernel.dk/?p=fio.git;a=summary Source: https://github.com/axboe/fio/archive/refs/tags/%{name}-%{version}.tar.gz Patch1001: 1001-fio-anolis-engines-io_uring-add-sqthread_poll_percpu-option.patch +Patch1002: 0001-Add-support-for-loongarch64.patch BuildRequires: gcc BuildRequires: libaio-devel @@ -61,6 +62,9 @@ make install prefix=%{_prefix} mandir=%{_mandir} DESTDIR=$RPM_BUILD_ROOT INSTALL %{_datadir}/%{name}/* %changelog +* Fri Jun 16 2023 doupengda - 3.22-1.0.2 +- Add support for loongarch64 + * Tue Nov 23 2021 Chunmei Xu 3.22-1.0.1 - engines/io_uring: add sqthread_poll_percpu option -- Gitee