diff --git a/0003-update-numafast-version.patch b/0003-update-numafast-version.patch new file mode 100644 index 0000000000000000000000000000000000000000..6851cd6b3d03350f6b99763aa17e427d8b7508a3 --- /dev/null +++ b/0003-update-numafast-version.patch @@ -0,0 +1,134 @@ +From 82a46d50af2989f500a979d8d145236904843dad Mon Sep 17 00:00:00 2001 +From: fly_1997 +Date: Tue, 11 Nov 2025 17:31:36 +0800 +Subject: [PATCH] update numafast version + +--- + etc/config.yaml | 2 +- + src/client/cmd_handler.cpp | 2 +- + src/plugin_mgr/event/download_handler.cpp | 48 +++++++++++++++-------- + src/plugin_mgr/event/download_handler.h | 11 +++++- + 4 files changed, 43 insertions(+), 20 deletions(-) + +diff --git a/etc/config.yaml b/etc/config.yaml +index cf9388b..7a2a69c 100644 +--- a/etc/config.yaml ++++ b/etc/config.yaml +@@ -5,4 +5,4 @@ plugin_list: + - name: numafast + description: numafast is a userspace tool designed for Kunpeng Chips that aims to improve + system performance by reducing cross-NUMA memory access. +- url: https://repo.oepkgs.net/openeuler/rpm/openEuler-22.03-LTS-SP4/extras/aarch64/Packages/n/numafast-v2.3.1-5.aarch64.rpm +\ No newline at end of file ++ url: "" +\ No newline at end of file +diff --git a/src/client/cmd_handler.cpp b/src/client/cmd_handler.cpp +index c76b52c..f984b13 100644 +--- a/src/client/cmd_handler.cpp ++++ b/src/client/cmd_handler.cpp +@@ -227,7 +227,7 @@ void InstallHandler::ResHandler(Message &msg) + std::string path = arg; + std::string url = msg.payload[0]; + if (!Download(url, path)) { +- std::cout << "Download failed, please check url or your network.\n"; ++ std::cout << "Download " << url <<" failed, please check url or your network.\n"; + return; + } + std::string command = "rpm -ivh " + path; +diff --git a/src/plugin_mgr/event/download_handler.cpp b/src/plugin_mgr/event/download_handler.cpp +index 887f30b..c812332 100644 +--- a/src/plugin_mgr/event/download_handler.cpp ++++ b/src/plugin_mgr/event/download_handler.cpp +@@ -10,15 +10,26 @@ + * See the Mulan PSL v2 for more details. + ******************************************************************************/ + #include "download_handler.h" +- ++#include ++#include + namespace oeaware { +-ErrorCode DownloadHandler::Download(const std::string &name, std::string &res) ++// Get kernel major.minor version, e.g., 5.10 ++std::string GetKernelMajorMinor() + { +- if (!config->IsPluginInfoExist(name)) { +- return ErrorCode::DOWNLOAD_NOT_FOUND; ++ struct utsname buffer; ++ if (uname(&buffer) != 0) { ++ return ""; ++ } ++ std::string version = buffer.release; ++ size_t firstDot = version.find('.'); ++ if (firstDot == std::string::npos) { ++ return ""; ++ } ++ size_t secondDot = version.find('.', firstDot + 1); ++ if (secondDot == std::string::npos) { ++ return ""; + } +- res += config->GetPluginInfo(name).GetUrl(); +- return ErrorCode::OK; ++ return version.substr(0, secondDot); + } + + EventResult DownloadHandler::Handle(const Event &event) +@@ -27,19 +38,22 @@ EventResult DownloadHandler::Handle(const Event &event) + WARN(logger, "download event error."); + return EventResult(Opt::RESPONSE_ERROR, {"download event error"}); + } +- std::string resText; + std::string name = event.payload[0]; +- auto retCode = Download(name, resText); +- EventResult eventResult; +- if (retCode == ErrorCode::OK) { +- INFO(logger, "download " << name << " from " << resText << "."); +- eventResult.opt = Opt::RESPONSE_OK; +- eventResult.payload.emplace_back(resText); +- } else { +- WARN(logger, "download " << name << " failed, because " << ErrorText::GetErrorText(retCode) + "."); +- eventResult.opt = Opt::RESPONSE_ERROR; +- eventResult.payload.emplace_back(ErrorText::GetErrorText(retCode)); ++ if (!config->GetPluginList().count(name)) { ++ WARN(logger, name << " download not found."); ++ return EventResult(Opt::RESPONSE_ERROR, {"download not found"}); ++ } ++ auto kernelMajorMinor = GetKernelMajorMinor(); ++ auto url = config->GetPluginInfo(name).GetUrl(); ++ if (url.empty() && supportPackageUrl.count(name) && ++ supportPackageUrl[name].count(kernelMajorMinor)) { ++ url = supportPackageUrl[name][kernelMajorMinor]; + } ++ EventResult eventResult; ++ INFO(logger, "download " << name << " from " << url << "."); ++ eventResult.opt = Opt::RESPONSE_OK; ++ eventResult.payload.emplace_back(url); ++ + return eventResult; + } + } +diff --git a/src/plugin_mgr/event/download_handler.h b/src/plugin_mgr/event/download_handler.h +index fb3b96d..acc85fb 100644 +--- a/src/plugin_mgr/event/download_handler.h ++++ b/src/plugin_mgr/event/download_handler.h +@@ -20,8 +20,17 @@ public: + explicit DownloadHandler(std::shared_ptr config) : config(config) { } + EventResult Handle(const Event &event) override; + private: +- ErrorCode Download(const std::string &name, std::string &res); + std::shared_ptr config; ++ std::unordered_map> supportPackageUrl { ++ { ++ "numafast", ++ { ++ {"4.19", "https://repo.oepkgs.net/openEuler/rpm/openEuler-20.03-LTS-SP1/extras/aarch64/Packages/n/numafast-v2.4.1-2.aarch64.rpm"}, ++ {"5.10", "https://repo.oepkgs.net/openEuler/rpm/openEuler-22.03-LTS-SP4/extras/aarch64/Packages/n/numafast-v2.4.1-2.aarch64.rpm"}, ++ {"6.6", "https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/extras/aarch64/Packages/n/numafast-v2.4.1-2.aarch64.rpm"}, ++ } ++ }, ++ }; + }; + } + +-- +2.33.0 + diff --git a/oeAware-manager.spec b/oeAware-manager.spec index fdbc7c7f980a16cd56295c132a60569d13fc5c85..f26b9708fc6ad63bac444558fe1606918939acd7 100644 --- a/oeAware-manager.spec +++ b/oeAware-manager.spec @@ -1,12 +1,13 @@ Name: oeAware-manager Version: v2.1.1 -Release: 3 +Release: 4 Summary: OeAware is a framework for implementing low-load collection, sensing, and tuning on openEuler. License: MulanPSL2 URL: https://gitee.com/openeuler/%{name} Source0: %{name}-%{version}.tar.gz Patch1: 0001-fix-numa_sched_tune-6.6-sched-feature.patch Patch2: 0002-remove-rpath.patch +Patch3: 0003-update-numafast-version.patch BuildRequires: cmake make gcc-c++ BuildRequires: boost-devel @@ -108,6 +109,9 @@ fi %attr(0644, root, root) %{_includedir}/oeaware/data/*.h %changelog +* Fri Nov 14 2025 fly_1997 -v2.1.1-4 +- update numafast version. + * Mon Oct 20 2025 fly_1997 -v2.1.1-3 - remove rpath.