GNU/Linux >> Znalost Linux >  >> Linux

Jak zakázat mezipaměti L1 a L2 procesoru?

Můžete toho dosáhnout pomocí malého kódu ASM, viz kapitola 11 Příručky programování systému Intel

11.5.3 Zabránění ukládání do mezipaměti

Chcete-li zakázat mezipaměti L1, L2 a L3 poté, co byly povoleny a obdržely zaplnění mezipaměti, proveďte následující kroky:1. Vstupte do režimu bez vyplnění mezipaměti. (Nastavte příznak CD v řídicím registru CR0 na 1 a příznak NW na 0,2. Vyprázdněte všechny mezipaměti pomocí instrukce WBINVD.3. Zakažte MTRR a nastavte výchozí typ paměti na uncached nebo nastavte všechny MTRR pro typ paměti bez mezipaměti (viz. diskuse o diskusi o poli TYPE a příznaku E v části 11.11.2.1 „IA32_MTRR_DEF_TYPE MSR“).

Nevím o modulu Pythonu, který to implementuje.


Nemůžete to udělat přímo v Pythonu, protože k tomu potřebujete modul jádra (a práva roota k načtení tohoto modulu).

Viz http://lxr.free-electrons.com/source/arch/arm/mm/cache-v7.S#L21, kde najdete informace o tom, co je potřeba ke zneplatnění mezipaměti L1 (zrušit platnost, nikoli zakázat).

Různé architektury CPU (např. x86 vs ARM) vyžadují k deaktivaci mezipaměti různý montážní kód (instrukce CPU). Nejsem si jistý, zda linuxové jádro má nějakou možnost deaktivovat mezipaměti L1/L2/L3/L4 a pokud by to mělo, věřím, že by se používalo pouze interně na krátkou dobu, protože CPU je pomalé bez těchto mezipamětí.

Viz Existuje způsob, jak deaktivovat mezipaměť CPU (L1/L2) v systému Linux? odkaz na to, jak můžete deaktivovat mezipaměť v systému x86/x64 (musíte změnit registr cr0 ). Pro ARM zkontrolujte chování mezipaměti zakázáno.

Nejsem si jistý, zda úplně rozumíte tomu, co mezipaměti CPU dělají. Můžete prosím upřesnit, proč chcete ochromit výkon svého systému?


Linux
  1. Redis jako mezipaměť:Jak to funguje a proč ji používat

  2. Jak zakázat SELinux na CentOS?

  3. Jak povolit a zakázat Wayland na Ubuntu

  1. Jak zakázat příkazy vypnutí a restartu v Linuxu

  2. Jak povolit, zakázat a nainstalovat doplňky Yum

  3. Jak vyčistit mezipaměti používané linuxovým jádrem

  1. Jak odstranit vyrovnávací paměti a mezipaměť v Linuxu

  2. Jak vyprázdnit mezipaměť DNS v Ubuntu a LinuxMint

  3. Jak zakázat ETag v NGINX