GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menonaktifkan cache L1 dan L2 prosesor?

Anda dapat melakukannya dengan sedikit kode ASM, lihat bab 11 dari Panduan Pemrograman Sistem Intel

11.5.3 Mencegah Caching

Untuk menonaktifkan cache L1, L2, dan L3 setelah diaktifkan dan menerima pengisian cache, lakukan langkah-langkah berikut:1. Masuk ke mode cache tanpa isi. (Atur bendera CD di register kontrol CR0 ke 1 dan bendera NW ke 0.2. Bersihkan semua cache menggunakan instruksi WBINVD. 3. Nonaktifkan MTRR dan atur jenis memori default ke tidak di-cache atau setel semua MTRR untuk jenis memori yang tidak di-cache (lihat pembahasan tentang pembahasan kolom TYPE dan bendera E di Bagian 11.11.2.1,“IA32_MTRR_DEF_TYPE MSR”).

Saya tidak mengetahui modul Python yang mengimplementasikan ini.


Anda tidak dapat melakukannya secara langsung dengan Python, karena Anda memerlukan modul kernel untuk melakukannya (dan hak root untuk memuat modul itu).

Lihat http://lxr.free-electrons.com/source/arch/arm/mm/cache-v7.S#L21 untuk apa yang diperlukan untuk membatalkan cache L1 (batalkan, bukan nonaktifkan).

Arsitektur CPU yang berbeda (mis. x86 vs ARM) memerlukan kode rakitan (instruksi CPU) yang berbeda untuk menonaktifkan cache. Saya tidak yakin apakah kernel Linux memiliki kemungkinan untuk menonaktifkan cache L1/L2/L3/L4 dan jika demikian, saya percaya itu hanya akan digunakan secara internal untuk waktu yang singkat, karena CPU lambat tanpa cache ini.

Lihat Apakah ada cara untuk menonaktifkan cache CPU (L1/L2) pada sistem Linux? untuk tautan tentang cara menonaktifkan cache pada sistem x86/x64 (Anda perlu mengubah register cr0 ). Untuk ARM, periksa perilaku Cache dinonaktifkan.

Saya tidak yakin Anda benar-benar memahami apa yang dilakukan cache CPU. Bisakah Anda jelaskan mengapa Anda ingin melumpuhkan kinerja sistem Anda?


Linux
  1. Cara Menonaktifkan Perintah Shutdown dan Reboot di Linux

  2. Redis sebagai Cache:Cara Kerja dan Mengapa Menggunakannya

  3. Cara Menghapus Buffer Memori dan Cache di Linux

  1. Cara Mengaktifkan, Menonaktifkan, dan Menginstal Plug-in Yum

  2. Cara Membersihkan Cache DNS di Ubuntu dan LinuxMint

  3. Bagaimana Cara Menonaktifkan SELinux di CentOS?

  1. Cara Menonaktifkan ETag di NGINX

  2. Cara mengaktifkan dan menonaktifkan Wayland di Ubuntu

  3. Cara membersihkan cache yang digunakan oleh kernel Linux