Portál AbcLinuxu, 31. května 2024 10:49

Ryzen 9 - ksysguard - CPU freq

15.3.2020 10:00 | Přečteno: 1370× | Ryzen 9 | poslední úprava: 16.3.2020 11:28

V aktuálním OpenSUSE Leap 15.1 v ksysguard nelze zobrazit frekvence CPU. Je to v důsledku nedostatečné velikosti buferu, jak je popsáno zde v hlášení bugu včetně návrhu dočasného řešení. Pro Ryzen 9 3900X a 3950X stačí zvětšit velikost buferu na řádku 43 v cpuinfo.c na dvojnásobek. Přikládám patch a upravený spec file pro OpenSUSE Leap 15.1, kdyby to někomu přišlo vhod. Pokud nejste zběhlí v v tvorbě rpm balíčků, tady je malý návod. Stáhněte si přiložené soubory, a pak jako root proveďte (je třeba mít přidaný repozitář pro zdrojové balíčky):
zypper ar -f http://download.opensuse.org/source/distribution/leap/$releasever/repo/oss/ repo-source

zypper ref

zypper si ksysguard5

cp ksysguard5.spec /usr/src/packages/SPECS/

cp CPUINFOBUFSIZE.patch /usr/src/packages/SOURCES/

rpmbuild -ba /usr/src/packages/SPECS/ksysguard5.spec

rpm -Uhv --force /usr/src/packages/RPMS/x86_64ksysguard5-5.12.8-lp151.1.1.pf.x86_64.rpm

systemctl restart ksysguardd.service
CPUINFOBUFSIZE.patch
diff -Naur ksysguard-5.12.8.orig/ksysguardd/Linux/cpuinfo.c ksysguard-5.12.8/ksysguardd/Linux/cpuinfo.c
--- ksysguard-5.12.8.orig/ksysguardd/Linux/cpuinfo.c	2019-03-05 13:20:46.000000000 +0100
+++ ksysguard-5.12.8/ksysguardd/Linux/cpuinfo.c	2020-01-30 10:53:59.604577796 +0100
@@ -40,7 +40,7 @@
 static int HighNumCores = 0; /* Highest # of cores ever seen */
 static float* Clocks = 0; /* Array with one entry per core */
 
-#define CPUINFOBUFSIZE (32 * 1024)
+#define CPUINFOBUFSIZE (64 * 1024)
 static char CpuInfoBuf[ CPUINFOBUFSIZE ];
 static int Dirty = 0;
 static struct SensorModul *CpuInfoSM;
V ksysguard5.spec je nutno přidat řádek odkazující na CPUINFOBUFSIZE.patch
Source:         https://download.kde.org/stable/plasma/%{version}/ksysguard-%{version}.tar.xz
#Source:		ksysguard-5.12.8.tar.gz	
Source1:        ksysguardd.service
# PATCH-FIX-OPENSUSE 0001-Use-run-for-ksysguardd-s-pid-file.patch
Patch0:         0001-Use-run-for-ksysguardd-s-pid-file.patch
Patch1:		CPUINFOBUFSIZE.patch
BuildRequires:  extra-cmake-modules >= 1.5.0
BuildRequires:  kf5-filesystem
BuildRequires:  libsensors4-devel
BuildRequires:  systemd-rpm-macros
BuildRequires:  xz
BuildRequires:  cmake(KF5Config)
BuildRequires:  cmake(KF5CoreAddons)
BuildRequires:  cmake(KF5I18n)
BuildRequires:  cmake(KF5IconThemes)
BuildRequires:  cmake(KF5ItemViews)
BuildRequires:  cmake(KF5KDELibs4Support)
BuildRequires:  cmake(KF5NewStuff)
BuildRequires:  cmake(KF5SysGuard) >= %{_plasma5_version}
BuildRequires:  cmake(Qt5Core) >= 5.4.0
BuildRequires:  cmake(Qt5WebKitWidgets) >= 5.4.0
BuildRequires:  cmake(Qt5Widgets) >= 5.4.0
Requires:       libksysguard5-helper
       

Hodnocení: 67 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

15.3.2020 12:00 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Odpovědět | Sbalit | Link | Blokovat | Admin
Chápu, že se chcete o informace podělit, ale IMHO by bylo užitečnější otevřít bug a - protože víte, jak problém (aspoň částečně) řešit - poslat submit request.
Petr Tomášek avatar 15.3.2020 12:36 Petr Tomášek | skóre: 39 | blog: Vejšplechty
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
A to se snad vylučuje?
multicult.fm | monokultura je zlo | welcome refugees!
15.3.2020 14:31 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Nevylučuje… ale žádný bug report ani submit request jsem nenašel. Kdyby ano, ten komentář bych nepsal.
15.3.2020 14:57 Kate | skóre: 9
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Co ten odkaz v druhé větě blogpostu?
15.3.2020 17:19 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Mluvil jsem o openSUSE bugzille, když je post o tom, jak si udělat balíček pro openSUSE Leap 15.1.
15.3.2020 17:20 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
(a stejně tak jsem měl na mysli submit request pro Leap 15.1 - a případně i 15.2, je-li potřeba)
16.3.2020 08:02 doron | skóre: 21 | blog: Sensors a Ksysguard | Brno
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Proč jsem to nereportoval v openSUSE bugzille? Jde jen o workaround, až to někdo u ksysguard korektně opraví, bude to opravené i openSUSE.

Chápu, že zkušený uživatel neocení návod jak vytvořit balíček pro openSUSE, ale nelze vyloučit, že to bude číst někdo, komu to přijde vhod.
You can't fuck everyone, but you can try to.
16.3.2020 08:12 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq

Pokud to měl být návod, jak si udělat upravený balíček pro openSUSE, pak bych spíš doporučil

  osc checkout openSUSE:Leap:15.2:ksysguard5
  # upravit
  osc build

nebo to rovnou udělat v OBS (a pak už je submit request otázkou jednoho příkazu navíc). Distribuční balíčky vesměs moc nepočítají s tím, že by někdo chtěl používat přímo rpmbuild, takže můžete narazit na různé záhadné problémy.

16.3.2020 08:13 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq

Ten první příkaz měl být

  osc checkout openSUSE:Leap:15.1:Update ksysguard5
16.3.2020 10:12 doron | skóre: 21 | blog: Sensors a Ksysguard | Brno
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Díky za typ. OBS jsem prozatím nepoužíval. Tak jsem si alespoň zřídil účet, a pokusím se to tam během dne (příštích dní) umístit.
You can't fuck everyone, but you can try to.
Nuphar avatar 16.3.2020 09:23 Nuphar | skóre: 19
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Říkal jsem si, že se mi na desktopu s Ryzenem nějak neukazuje frekvence CPU, ale neměl jsem čas to řešit. I takovýto workaround je rozhodně lepší rovnou v OBS, protože výsledek je pak rozhodně přístupnější více lidem a spíš to rozproudí nějakou diskuzi, aby se to pořádně opravilo.
Per aspera, Asparagus et Aspergillus ad a/Astra!
15.3.2020 14:58 retroslava | skóre: 9 | blog: TryCatch | Žižkoff
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
https://phabricator.kde.org/D27362
Pozor! Jsem naprostý idiot. Co jsem napsal včera dnes už dávno neplatí. Zavazuji se, že budu diskutovat nezávazně.
16.3.2020 03:42 BFU
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Proc se ten soubor read()uje a neudela se na to treba radeji mmap() s PROT_READ ?
16.3.2020 07:26 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Protože je to /proc/cpuinfo, kde něco takového nemá šanci fungovat. Správné řešení je nesnažit se odhadnout velikost a načíst celý soubor najednou, ale zpracovávat ho postupně.
16.3.2020 10:37 BFU
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
No to je teda vysvetleni jak remen, nedik.

Takze jsem si to vygrepoval, ze kernelovy fs/proc/cpuinfo.c + arch-specific kod plni userspacovy buffer pres seq_printf() . Coz by ale zrejme taky znamenalo, ze nejlepsi je to cist po radcich fgets() , jak to dela treba util-linux.
16.3.2020 10:53 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Prostě jsem předpokládal, že někomu, kdo používá mmap(), nemusím do detailu vysvětlovat, proč na procfs nepůjde použít.
16.3.2020 14:54 BFU
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
To jste predpokladal spatne, protoze to, ze jeden soubor v nejakem kernelovem virtualnim FS neimplementuje .mmap neznamena, ze jiny soubor - klidne ve stejnem virtualnim FS - ten .mmap neimplementuje taky. Ono by vesmes stacilo ten mmap do fs/proc/cpuinfo.c pridat, struct file_operations {} ma callbacky na vsechno mozne, ale ten duvod proc to tam neni jsem popsal vyse.
16.3.2020 16:14 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
No tak se zkuste podívat, kolik těch proc_mmap celkem v jádře existuje. Já tam vidím celé čtyři kusy - z toho tři jsou věci, které mají k něčemu jako /proc/cpuinfo zatraceně daleko a jeden navíc existuje jen na powerpc.
17.3.2020 00:14 BFU
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
To ja nevim, rychly git grep tvrdi neco pres 500:

linux-2.6$ git describe HEAD

next-20200316

linux-2.6$ git grep '[[:space:]]\.mmap[[:space:]]*=' | wc -l

516

Cely ten proc_* je wrapper okolo genericke implementace virtualniho FS v Linuxu, nad kterou je postaveny i sysfs, debugfs, configfs atd.
17.3.2020 00:44 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq

To jste si ale vymyslel úplně jinou otázku, než na jakou jsem se ptal.

Zkuste se nad tím trochu zamyslet. Ten soubor vzniká on demand a dopředu nezjistíte ani jeho velikost (dostanete nulu). Jak ho chcete mmapovat? Co tomu mmap() předáte jako velikost?

17.3.2020 20:00 BFU
Rozbalit Rozbalit vše Re: Ryzen 9 - ksysguard - CPU freq
Viz vyse muj komentar o seq_printf().

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.