GNU/Linux >> Tutoriels Linux >  >> Linux

Comment désactiver les caches L1 et L2 du processeur ?

Vous pouvez accomplir cela avec un peu de code ASM, voir le chapitre 11 du Guide de programmation système Intel

11.5.3 Empêcher la mise en cache

Pour désactiver les caches L1, L2 et L3 après qu'ils ont été activés et qu'ils ont reçu des remplissages de cache, effectuez les étapes suivantes :1. Entrez dans le mode de cache sans remplissage. (Définissez l'indicateur CD dans le registre de contrôle CR0 sur 1 et l'indicateur NW sur 0,2. Videz tous les caches à l'aide de l'instruction WBINVD.3. Désactivez les MTRR et définissez le type de mémoire par défaut sur non mis en cache ou définissez tous les MTRR pour le type de mémoire non mise en cache (voir la discussion de la discussion sur le champ TYPE et le drapeau E dans la Section 11.11.2.1, « IA32_MTRR_DEF_TYPE MSR »).

Je ne connais pas de module Python qui implémente cela.


Vous ne pouvez pas le faire directement en Python, car vous avez besoin d'un module du noyau pour le faire (et des droits root pour charger ce module).

Voir http://lxr.free-electrons.com/source/arch/arm/mm/cache-v7.S#L21 pour savoir ce qu'il faut pour invalider le cache L1 (invalider, pas désactiver).

Différentes architectures de CPU (par exemple x86 vs ARM) nécessitent un code d'assemblage différent (instructions CPU) pour désactiver le cache. Je ne sais pas si le noyau Linux a la possibilité de désactiver les caches L1/L2/L3/L4 et s'il en avait, je pense qu'il ne serait utilisé qu'en interne pendant une courte période, car le CPU est lent sans ces caches.

Voir Existe-t-il un moyen de désactiver le cache CPU (L1/L2) sur un système Linux ? pour un lien sur la façon dont vous pouvez désactiver le cache sur un système x86/x64 (vous devez changer le registre cr0 ). Pour ARM, cochez le comportement Cache désactivé.

Je ne suis pas sûr que vous compreniez parfaitement ce que font les caches CPU. Pouvez-vous expliquer pourquoi vous voulez paralyser les performances de votre système ?


Linux
  1. Comment activer, désactiver et installer les plug-ins Yum

  2. Redis comme cache :comment ça marche et pourquoi l'utiliser

  3. Comment supprimer les tampons de mémoire et le cache sous Linux

  4. Comment vider le cache DNS dans Ubuntu et LinuxMint

  5. Comment désactiver SELinux sur CentOS ?

Comment vider le DNS sur Ubuntu et CentOS

Comment activer et désactiver le compte root dans Ubuntu

Comment désactiver la suspension et l'hibernation sous Linux

Comment effacer le cache et les cookies sur Google Chrome

Comment installer KernelCare et vider le cache Kernelcare sous Linux

Comment désactiver et activer les alertes SiteSentry