Rechercher

Chapitre 5. Changements importants dans les paramètres externes du noyau

download PDF

Ce chapitre fournit aux administrateurs système un résumé des changements significatifs apportés au noyau distribué avec Red Hat Enterprise Linux 9.2. Ces changements peuvent inclure, par exemple, des entrées proc ajoutées ou mises à jour, des valeurs par défaut sysctl et sysfs, des paramètres de démarrage, des options de configuration du noyau ou tout autre changement de comportement notable.

Nouveaux paramètres du noyau

nomodeset

Ce paramètre du noyau permet de désactiver la configuration du mode noyau. Les pilotes DRM n'effectueront pas de changement de mode d'affichage ni de rendu accéléré. Seule la mémoire tampon du système pourra être utilisée si elle a été configurée par le micrologiciel ou le chargeur de démarrage.

nomodeset est utile comme solution de repli, ou pour les tests et le débogage.

printk.console_no_auto_verbose

Avec ce paramètre du noyau, vous pouvez désactiver l'augmentation du niveau du journal de la console en cas d'oops, de panique ou de problèmes détectés par le lockdep (uniquement si le débogage du verrou est activé). À l'exception des configurations avec un faible débit en bauds sur la console série, définissez ce paramètre à 0 pour fournir plus d'informations de débogage.

  • Format : <bool>
  • La valeur par défaut est 0 (auto_verbose est activé)
rcupdate.rcu_exp_cpu_stall_timeout=[KNL]

Ce paramètre du noyau permet de définir le délai d'attente pour les messages d'avertissement de décrochage du CPU de l'UCR accélérée. La valeur est exprimée en millisecondes et la valeur maximale autorisée est de 21 000 millisecondes.

Notez que cette valeur est ajustée à la résolution d'un tic-tac d'arche. En mettant cette valeur à zéro, c'est la valeur de rcupdate.rcu_cpu_stall_timeout qui est utilisée (après conversion des secondes en millisecondes).

rcupdate.rcu_task_stall_info=[KNL]

Ce paramètre permet de définir le délai initial en jours pour les messages d'information de décrochage de tâche RCU, qui donnent une indication du problème à ceux qui n'ont pas la patience d'attendre dix minutes. Les messages d'information ne sont imprimés qu'avant le message d'avertissement de décrochage pour un délai de grâce donné. Désactiver avec une valeur inférieure ou égale à zéro.

  • La valeur par défaut est 10 secondes.
  • Une modification de la valeur ne prend effet qu'au début du prochain délai de grâce.
rcupdate.rcu_task_stall_info_mult=[KNL]

Ce paramètre est un multiplicateur pour l'intervalle de temps entre les messages d'information successifs sur le blocage des tâches RCU pour un délai de grâce des tâches RCU donné. Cette valeur est comprise entre un et dix, inclusivement.

La valeur par défaut est trois, de sorte que le premier message d'information est imprimé 10 secondes après le début du délai de grâce, le deuxième à 40 secondes, le troisième à 160 secondes, puis l'avertissement de décrochage à 600 secondes, ce qui empêcherait l'impression d'un quatrième message à 640 secondes.

smp.csd_lock_timeout=[KNL]

Avec ce paramètre, vous pouvez spécifier la période de temps en millisecondes pendant laquelle smp_call_function() and friends attendra qu'un CPU libère le verrou CSD. Ce paramètre est utile pour diagnostiquer des bogues impliquant des processeurs qui désactivent les interruptions pendant de longues périodes.

  • La valeur par défaut est 5,000 millisecondes.
  • La valeur zéro désactive cette fonction.
  • Cette fonction peut être désactivée plus efficacement en utilisant le paramètre du noyau csdlock_debug-.
srcutree.big_cpu_lim=[KNL]

Ce paramètre permet de spécifier le nombre d'unités centrales constituant un système de grande taille, de sorte que les structures srcu_struct doivent immédiatement allouer un tableau srcu_node.

  • La valeur par défaut est 128.
  • ne prend effet que si les quatre bits de poids faible de srcutree.convert_to_big sont égaux à 3 (décision au démarrage).
srcutree.convert_to_big=[KNL]

Ce paramètre permet de spécifier les conditions dans lesquelles une structure SRCU arborescente srcu_struct sera convertie en grande forme, c'est-à-dire avec un arbre rcu_node:

  • 0 : Jamais.
  • 1 : A l'heure du init_srcu_struct().
  • 2 : Lorsque rcutorture décide de.
  • 3 : Décider au moment du démarrage (par défaut).
  • 0x1X : au-dessus de plus si contention élevée.

    Dans les deux cas, l'arbre srcu_node sera dimensionné en fonction du nombre réel de CPU pendant l'exécution (nr_cpu_ids) et non pas en fonction du nombre de CPU à la compilation CONFIG_NR_CPUS.

srcutree.srcu_max_nodelay=[KNL]
Ce paramètre permet de spécifier le nombre d'instances sans délai par jiffy pour lesquelles le fil de travail de la période de grâce SRCU sera réordonnancé avec un délai nul. Au-delà de cette limite, le fil de travail sera réordonnancé avec un délai de sommeil d'un jour.
srcutree.srcu_max_nodelay_phase=[KNL]
Ce paramètre permet de spécifier, pour chaque phase du délai de grâce, le nombre d'interrogations des lecteurs sans sommeil. Au-delà de cette limite, le thread de travailleur de délai de grâce sera reprogrammé avec un délai de sommeil d'un jiffy, entre chaque rescan des lecteurs, pour une phase de délai de grâce.
srcutree.srcu_retry_check_delay=[KNL]
Ce paramètre permet de spécifier le nombre de microsecondes de délai de non-sommeil entre chaque interrogation de lecteurs sans sommeil.
srcutree.small_contention_lim=[KNL]

Ce paramètre permet de spécifier le nombre d'événements de contention du côté de la mise à jour qui seront tolérés avant d'initier la conversion d'une structure srcu_struct en une structure de grande taille.

Note

La valeur de srcutree.convert_to_big doit avoir le bit 0x10 défini pour que les conversions basées sur la contention se produisent.

Mise à jour des paramètres du noyau

crashkernel=size[KMG][@offset[KMG]]

[KNL] En utilisant kexec, Linux peut basculer vers un noyau de crash en cas de panique. Ce paramètre réserve la région de mémoire physique [offset, taille de l'offset] pour cette image du noyau. Si @offset est omis, un offset approprié est sélectionné automatiquement.

[KNL, X86-64, ARM64] Sélectionner d'abord une région inférieure à 4G, et se rabattre sur une région de réserve supérieure à 4G lorsque @offset n'a pas été spécifié.

Pour plus de détails, voir Documentation/admin-guide/kdump/kdump.rst.

crashkernel=size[KMG],low
  • [KNL, X86-64, ARM64] Avec ce paramètre, vous pouvez spécifier une mémoire basse inférieure à 4G pour le second noyau. Lorsque crashkernel=X,high est passé, cela nécessite une certaine quantité de mémoire basse, par exemple swiotlb nécessite au moins 64M 32K de mémoire basse, et suffisamment de mémoire basse supplémentaire est nécessaire pour s'assurer que les tampons DMA pour les périphériques 32 bits ne seront pas épuisés. Le noyau essaiera d'allouer automatiquement une taille de mémoire par défaut inférieure à 4G. La taille par défaut dépend de la plate-forme.

    • x86 : max(swiotlb_size_or_default() 8MiB, 256MiB)
    • arm64 : 128MiB

      0pour désactiver l'allocation faible.

      Ce paramètre sera ignoré si crashkernel=X,high n'est pas utilisé ou si la mémoire réservée est inférieure à 4G.

  • [KNL, ARM64] Ce paramètre permet de spécifier une plage basse dans la zone DMA pour le noyau de crash dump.

    Ce paramètre est ignoré lorsque crashkernel=X,high n'est pas utilisé.

deferred_probe_timeout=[KNL]

Ce paramètre permet de définir un délai en secondes pour que la sonde différée cesse d'attendre les dépendances à sonder. Seules les dépendances spécifiques (sous-systèmes ou pilotes) qui ont opté pour cette option seront ignorées.

Un délai d'attente de 0 expirera à la fin des appels entrants. Si le délai n'a pas expiré, l'option sera relancée à chaque enregistrement de pilote réussi. Cette option éliminera également les périphériques qui se trouvent encore sur la liste des sondes différées après une nouvelle tentative.

driver_async_probe=[KNL]

Ce paramètre permet d'établir une liste de noms de pilotes à interroger de manière asynchrone. * (l'astérisque) correspond à tous les noms de pilotes.

  • Si * est spécifié, les autres noms de pilotes listés sont ceux qui ne correspondent PAS à *.

    Format : <driver_name1>,<driver_name2>…​

hugetlb_cma=[HW,CMA]

Ce paramètre permet de spécifier la taille d'une zone CMA utilisée pour l'allocation de pages gigantesques. Ou, en utilisant le format nœud, la taille d'une zone CMA par nœud.

Format : nn[KMGTPE] or (node format) <node>:nn[KMGTPE][,<node>:nn[KMGTPE]]

Réserver une zone CMA de taille donnée et allouer des pages gigantesques à l'aide de l'allocateur CMA. Si cette option est activée, l'allocation au démarrage de pages gigantesques est ignorée.

hugepages=[HW]

Ce paramètre permet de spécifier le nombre de pages HugeTLB à allouer au démarrage.

  • Si elle suit hugepagesz, elle spécifie le nombre de pages de hugepagesz à allouer.
  • S'il s'agit du premier paramètre HugeTLB de la ligne de commande, il spécifie le nombre de pages à allouer pour la taille de page énorme par défaut.
  • Si l'on utilise le format nœud, le nombre de pages à allouer par nœud peut être spécifié.

    Voir aussi Documentation/admin-guide/mm/hugetlbpage.rst.

    Format : <integer> or (node format) <node>:<integer>[,<node>:<integer>]

hugetlb_free_vmemmap=[KNL]

This parameter requires CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP to be enabled. Allows heavy hugetlb users to free up some more memory (7 * PAGE_SIZE for each 2MB hugetlb page).

  • Format : { [oO][Nn]/Y/y/1 | [oO][Ff]/N/n/0 (default) }
  • [oO][Nn]/Y/y/1 : activer la fonction
  • [oO][Ff]/N/n/0 : désactiver la fonction

    Construit avec CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON=y,

    La valeur par défaut est on.

    Note

    Ce paramètre n'est pas compatible avec memory_hotplug.memmap_on_memory. Si les deux paramètres sont activés, hugetlb_free_vmemmap a la priorité sur memory_hotplug.memmap_on_memory.

ivrs_ioapic=[HW,X86-64]

Ce paramètre permet de remplacer la correspondance IOAPIC-ID <-> DEVICE-ID fournie dans le tableau IVRS ACPI.

Par défaut, le segment PCI est 0 et peut être omis. Il peut être omis,

  • pour mapper l'IOAPIC-ID décimal 10 au périphérique PCI 00:14.0, écrire le paramètre comme suit :

    ivrs_ioapic[10]=00:14.0
  • pour mapper l'IOAPIC-ID décimal 10 au segment PCI 0x1 et au périphérique PCI 00:14.0, écrivez le paramètre comme suit :

    ivrs_ioapic[10]=0001:00:14.0
ivrs_hpet=[HW,X86-64]

Ce paramètre permet de remplacer la correspondance HPET-ID <-> DEVICE-ID fournie dans le tableau IVRS ACPI.

Par défaut, le segment PCI est 0 et peut être omis. Il peut être omis :

  • pour affecter le HPET-ID décimal 0 au périphérique PCI 00:14.0, écrivez le paramètre comme suit :

    ivrs_hpet[0]=00:14.0
  • pour affecter l'ID HPET décimal 10 au segment PCI 0x1 et au périphérique PCI 00:14.0, écrivez le paramètre comme suit :

    ivrs_ioapic[10]=0001:00:14.0
ivrs_acpihid=[HW,X86-64]

Ce paramètre permet de remplacer la correspondance ACPI-HID:UID <-> DEVICE-ID fournie dans le tableau ACPI du SVI.

Par exemple, pour affecter UART-HID:UID AMD0020:0 au segment PCI 0x1 et à l'ID de périphérique PCI 00:14.5, écrivez le paramètre comme suit :

ivrs_acpihid[0001:00:14.5]=AMD0020:0

Par défaut, le segment PCI est 0 et peut être omis. Par exemple, pour le périphérique PCI 00:14.5, écrivez le paramètre comme suit :

ivrs_acpihid[00:14.5]=AMD0020:0
kvm.eager_page_split=[KVM,X86]

Avec ce paramètre, vous pouvez contrôler si KVM essaiera ou non de diviser de manière proactive toutes les pages volumineuses pendant l'enregistrement des données sales.

Le fractionnement avide des pages réduit les interruptions de l'exécution vCPU en éliminant les défauts de protection en écriture et les conflits de verrouillage MMU qui seraient autrement nécessaires pour fractionner paresseusement les pages volumineuses. Les charges de travail VM qui effectuent rarement des écritures ou qui n'écrivent que dans une petite région de la mémoire VM peuvent bénéficier de la désactivation du découpage de page anticipé pour permettre aux pages volumineuses d'être encore utilisées pour les lectures.

Le comportement du fractionnement rapide des pages dépend de l'activation ou de la désactivation de KVM_DIRTY_LOG_INITIALLY_SET.

  • Si cette option est désactivée, toutes les pages volumineuses d'un lot de mémoire seront scindées avec empressement lorsque la journalisation des erreurs est activée sur ce lot de mémoire.
  • Si cette option est activée, le découpage des pages sera effectué lors de l'exécution de l'ioctl KVM_CLEAR_DIRTY, et uniquement pour les pages en cours d'effacement.

    Le fractionnement des pages n'est possible que lorsque kvm.tdp_mmu=Y.

    La valeur par défaut est Y (on).

kvm-arm.mode=[KVM,ARM]

Ce paramètre permet de sélectionner l'un des modes de fonctionnement du KVM/arm64.

  • aucun : Désactivation forcée de KVM.
  • nvhe : Mode standard basé sur nVHE, sans prise en charge des invités protégés.
  • protected : mode basé sur nVHE avec prise en charge des invités dont l'état est maintenu privé par rapport à l'hôte.

    La valeur par défaut est VHE/nVHE en fonction du support matériel.

nosmep=[X86,PPC64s]

Ce paramètre permet de désactiver le SMEP (Supervisor Mode Execution Prevention) même s'il est pris en charge par le processeur.

Format : pci=option[,option…​] [PCI] various_PCI_subsystem_options

Certaines options du présent document s'appliquent à un dispositif spécifique ou à un ensemble de dispositifs (<pci_dev>). Elles sont spécifiées dans l'un des formats suivants :

[<domain>:]<bus>:<dev>.<func>[/<dev>.<func>]*
pci:<vendor>:<device>[:<subvendor>:<subdevice>]
Note
  • Le premier format spécifie une adresse de bus PCI/dispositif/fonction qui peut changer si un nouveau matériel est inséré, si le micrologiciel de la carte mère change, ou en raison de changements causés par d'autres paramètres du noyau. Si le domaine n'est pas spécifié, il est considéré comme égal à zéro. En option, un chemin d'accès à un périphérique via plusieurs adresses de périphérique et de fonction peut être spécifié après l'adresse de base (ceci est plus robuste contre les problèmes de renumérotation).
  • Le deuxième format sélectionne les appareils à l'aide d'identifiants de l'espace de configuration qui peuvent correspondre à plusieurs appareils dans le système.
  • earlydump : vidage de l'espace de configuration PCI avant que le noyau ne change quoi que ce soit
  • off : [X86] ne pas sonder le bus PCI
  • bios : [X86-32] forcer l'utilisation du BIOS PCI, ne pas accéder directement au matériel. Utilisez cette option si votre machine dispose d'un pont hôte PCI non standard.
  • nobios : [X86-32] interdire l'utilisation du BIOS PCI, seules les méthodes d'accès direct au matériel sont autorisées. Utilisez cette option si vous rencontrez des plantages au démarrage et que vous pensez qu'ils sont causés par le BIOS.
  • conf1 : [X86] Force l'utilisation du mécanisme d'accès à la configuration PCI 1 (adresse de configuration dans le port d'E/S 0xCF8, données dans le port d'E/S 0xCFC, tous deux 32 bits).
  • conf2 : [X86] Force l'utilisation du mécanisme d'accès à la configuration PCI 2 (le port d'E/S 0xCF8 est un port 8 bits pour la fonction, le port d'E/S 0xCFA, également 8 bits, définit le numéro de bus. L'espace de configuration est ensuite accessible via les ports 0xC000-0xCFFF).

  • noaer : [PCIE] Si le paramètre de configuration du noyau PCIEAER est activé, cette option de démarrage du noyau peut être utilisée pour désactiver l'utilisation des rapports d'erreur avancés PCIE.
  • nodomains : [PCI] Désactiver la prise en charge de plusieurs domaines racine PCI (également appelés segments PCI, dans le jargon ACPI).
  • nommconf : [X86] Désactiver l'utilisation de MMCONFIG pour la configuration PCI
  • check_enable_amd_mmconf [X86] : vérifie et active l'accès MMIO correctement configuré à l'espace de configuration PCI sur les processeurs AMD de la famille 10h
  • nomsi : [MSI] Si le paramètre de configuration du noyau PCI_MSI est activé, cette option de démarrage du noyau peut être utilisée pour désactiver l'utilisation des interruptions MSI dans l'ensemble du système.
  • noioapicquirk : [APIC] Désactive toutes les bizarreries d'interruption de démarrage. Option de sécurité pour garder les IRQ de démarrage activées. Cette option ne devrait jamais être nécessaire.
  • ioapicreroute : [APIC] Active le reroutage des IRQ de démarrage vers l'IO-APIC primaire pour les ponts qui ne peuvent pas désactiver les IRQ de démarrage. Cela corrige une source d'IRQ parasites lorsque le système masque les IRQ.
  • noioapicreroute [APIC] Désactive la solution de contournement qui utilise l'équivalent d'une IRQ de démarrage qui se connecte à un chipset où les IRQ de démarrage ne peuvent pas être désactivées. C'est le contraire de ioapicreroute.
  • biosirq : [X86-32] Utiliser les appels du BIOS PCI pour obtenir la table de routage des interruptions. Ces appels sont connus pour être bogués sur plusieurs machines et ils bloquent la machine lorsqu'ils sont utilisés, mais sur d'autres ordinateurs, c'est le seul moyen d'obtenir la table d'acheminement des interruptions. Essayez cette option si le noyau est incapable d'allouer des IRQ ou de découvrir des bus PCI secondaires sur votre carte mère.
  • rom : [X86] Attribue un espace d'adressage aux ROM d'extension. A utiliser avec précaution car certains périphériques partagent des décodeurs d'adresse entre les ROM et d'autres ressources.
  • norom : [X86] Ne pas attribuer d'espace d'adressage aux ROM d'extension qui n'ont pas déjà des plages d'adresses attribuées par le BIOS.
  • nobar : [X86] Ne pas attribuer d'espace d'adressage aux BAR qui n'ont pas été attribuées par le BIOS.
  • irqmask=0xMMMM : [X86] Définit un masque de bits des IRQs autorisées à être assignées automatiquement aux périphériques PCI. Vous pouvez faire en sorte que le noyau exclue les IRQs de vos cartes ISA de cette manière.
  • pirqaddr=0xAAAAA : [X86] Spécifier l'adresse physique de la table PIRQ (normalement générée par le BIOS) si elle est en dehors de la plage F0000h-100000h.
  • lastbus=N : [X86] Analyse tous les bus à partir du bus #N. Peut être utile si le noyau n'arrive pas à trouver vos bus secondaires et que vous voulez lui indiquer explicitement lesquels.
  • assign-busses : [X86] Attribue toujours nous-mêmes tous les numéros de bus PCI, sans tenir compte de ce que le microprogramme a pu faire.
  • usepirqmask : [X86] Permet d'honorer le masque d'IRQ possible stocké dans la table $PIR du BIOS. Ceci est nécessaire sur certains systèmes dont le BIOS est défectueux, notamment certains ordinateurs portables HP Pavilion N5400 et Omnibook XE3. Cela n'aura aucun effet si le routage ACPI IRQ est activé.
  • noacpi : [X86] Ne pas utiliser l'ACPI pour le routage des IRQ ou pour l'analyse PCI.
  • use_crs : [X86] Utilise les informations de la fenêtre du pont hôte PCI de l'ACPI. Sur les BIOS de 2008 ou plus récents, cette option est activée par défaut. Si vous avez besoin de l'utiliser, veuillez rapporter un bogue.
  • nocrs : [X86] Ignorer les fenêtres du pont hôte PCI de l'ACPI. Si vous avez besoin d'utiliser ceci, veuillez rapporter un bogue.
  • use_e820 : [X86] Utiliser les réservations E820 pour exclure certaines parties des fenêtres du pont hôte PCI. Il s'agit d'une solution de contournement pour les défauts du BIOS dans les méthodes _CRS du pont d'hôte. Si vous avez besoin de l'utiliser, veuillez rapporter un bogue à linux-pci@vger.kernel.org.
  • no_e820 : [X86] Ignore les réservations E820 pour les fenêtres du pont hôte PCI. C'est la valeur par défaut sur le matériel moderne. Si vous avez besoin de l'utiliser, veuillez signaler un bogue à linux-pci@vger.kernel.org.
  • routeirq : Effectue le routage des IRQ pour tous les périphériques PCI. Cette opération est normalement effectuée à l'adresse pci_enable_device(), et cette option est donc une solution temporaire pour les pilotes défectueux qui ne l'appellent pas.
  • skip_isa_align : [X86] ne pas aligner l'adresse de départ des entrées/sorties, afin de pouvoir gérer plus de cartes pci
  • oearly : [X86] Ne pas faire d'analyse précoce de type 1. Cela peut aider sur certaines cartes cassées qui vérifient la machine lorsque l'espace de configuration de certains périphériques est lu. Mais plusieurs solutions de contournement sont désactivées et certains pilotes IOMMU ne fonctionneront pas.
  • bfsort : Trie les périphériques PCI dans l'ordre "breadth-first". Ce tri est effectué pour obtenir un ordre des périphériques compatible avec les anciens noyaux (⇐ 2.4).
  • nobfsort : Ne pas trier les périphériques PCI par ordre de priorité.
  • pcie_bus_tune_off : Désactive l'accord PCIe MPS (Max Payload Size) et utilise les valeurs par défaut du MPS configurées par le BIOS.
  • pcie_bus_safe : Fixer le MPS de chaque dispositif à la plus grande valeur supportée par tous les dispositifs situés en dessous du complexe racine.
  • pcie_bus_perf Fixe le MPS du périphérique à la plus grande valeur autorisée pour son bus parent. Réglez également MRRS (Max Read Request Size) sur la plus grande valeur supportée (pas plus grande que le MPS que le périphérique ou le bus peut supporter) pour de meilleures performances.
  • pcie_bus_peer2peer : Définir le MPS de chaque périphérique à 128B, ce qui est garanti pour chaque périphérique. Cette configuration permet un DMA peer-to-peer entre n'importe quelle paire d'appareils, éventuellement au prix d'une réduction des performances. Elle garantit également que les périphériques ajoutés à chaud fonctionneront.
  • cbiosize=nn[KMG] : La quantité fixe d'espace bus réservée à la fenêtre IO du pont CardBus. La valeur par défaut est 256 bytes.
  • cbmemsize=nn[KMG] : La quantité fixe d'espace de bus réservée à la fenêtre de mémoire du pont CardBus. La valeur par défaut est 64 megabytes.
  • resource_alignment=

    • Format : [<order of align>@]<pci_dev>[; …​]
    • Spécifie l'alignement et le périphérique pour réaffecter les ressources mémoire alignées. La manière de spécifier le périphérique est décrite ci-dessus. Si <order of align> n'est pas spécifié, PAGE_SIZE est utilisé comme alignement. Un pont PCI-PCI peut être spécifié si les fenêtres de ressources doivent être étendues. Pour spécifier l'alignement pour plusieurs instances d'un périphérique, le fournisseur PCI, le périphérique, le sous-fournisseur et le sous-dispositif peuvent être spécifiés, par exemple, 12@pci:8086:9c22:103c:198f pour un alignement de 4096 octets.
  • ecrc= : Activer/désactiver PCIe ECRC (vérification CRC de bout en bout de la couche transactionnelle).

    • bios : Utiliser les paramètres du BIOS/firmware. Il s'agit de la valeur par défaut.
    • off : Désactiver la CECR
    • on : Activer l'ECRC.
  • hpiosize=nn[KMG] : La quantité fixe d'espace de bus réservée à la fenêtre IO du pont hotplug. La taille par défaut est 256 bytes.
  • hpmmiosize=nn[KMG] : La quantité fixe d'espace de bus réservée à la fenêtre MMIO du pont hotplug. La taille par défaut est 2 megabytes.
  • hpmmioprefsize=nn[KMG] : La quantité fixe d'espace de bus réservée à la fenêtre MMIO_PREF du pont hotplug. La taille par défaut est 2 megabytes.
  • hpmemsize=nn[KMG] : La quantité fixe d'espace de bus réservée aux fenêtres MMIO et MMIO_PREF du pont hotplug. La taille par défaut est 2 megabytes.
  • hpbussize=nn : Le nombre minimum de numéros de bus supplémentaires réservés aux bus situés en dessous d'un pont hotplug. La valeur par défaut est 1.
  • realloc= : Active/désactive la réaffectation des ressources du pont PCI si les allocations effectuées par le BIOS sont trop faibles pour accueillir les ressources requises par tous les périphériques enfants.

    • off : Désactive la fonction de réallocation
    • on : Activer la réallocation
  • realloc : identique à realloc=on
  • noari : ne pas utiliser PCIe ARI.
  • noats : [PCIE, Intel-IOMMU, AMD-IOMMU] n'utilisent pas PCIe ATS (et IOTLB du périphérique IOMMU).
  • pcie_scan_all : Analyse tous les périphériques PCIe possibles. Sinon, nous ne recherchons qu'un seul périphérique sous un port PCIe en aval.
  • big_root_window : Essaie d'ajouter une grande fenêtre mémoire de 64 bits au complexe racine PCIe sur les processeurs AMD. Certains matériels GFX peuvent redimensionner une BAR pour permettre l'accès à toute la VRAM. L'ajout de la fenêtre est légèrement risqué (elle peut entrer en conflit avec des périphériques non signalés), donc cela entache le noyau.
  • disable_acs_redir=<pci_dev>[ ; ...] : Spécifiez un ou plusieurs périphériques PCI (dans le format spécifié ci-dessus) séparés par des points-virgules. Pour chaque périphérique spécifié, les capacités de redirection PCI ACS seront désactivées, ce qui permettra au trafic P2P entre les périphériques de passer par des ponts sans être forcé en amont. Note : ceci supprime l'isolation entre les appareils et peut placer plus d'appareils dans un groupe IOMMU.
  • force_floating : [S390] Force l'utilisation des interruptions flottantes.
  • nomio : [S390] Ne pas utiliser les instructions MIO.
  • norid : [S390] ignorer le champ RID et forcer l'utilisation d'un domaine PCI par fonction PCI
rcupdate.rcu_cpu_stall_timeout=[KNL]
Définit le délai d'attente pour les messages d'avertissement de décrochage du CPU de la RCU. La valeur est exprimée en secondes et la valeur maximale autorisée est de 300 secondes.
rcupdate.rcu_task_stall_timeout=[KNL]

Ce paramètre permet de définir le délai d'attente en jours pour les messages d'avertissement de blocage de la tâche RCU. Désactiver avec une valeur inférieure ou égale à zéro.

La valeur par défaut est 10 minutes.

Une modification de la valeur ne prend effet qu'au début du prochain délai de grâce.

retbleed=[X86]

Ce paramètre permet de contrôler l'atténuation de la vulnérabilité RETBleed (Arbitrary Speculative Code Execution with Return Instructions).

Les atténuations UNRET et IBPB basées sur AMD n'empêchent pas à elles seules les threads frères d'influencer les prédictions d'autres threads frères. C'est pourquoi STIBP est utilisé sur les processeurs qui le supportent, et l'atténuation SMT sur les processeurs qui ne le supportent pas.

  • désactivé - pas d'atténuation
  • auto - sélection automatique d'une migration
  • auto,nosmt - sélectionne automatiquement une atténuation, en désactivant SMT si nécessaire pour l'atténuation complète (uniquement sur Zen1 et les versions antérieures sans STIBP).
  • ibpb - Sur AMD, atténuer également les courtes fenêtres de spéculation sur les limites des blocs de base. Sûr, impact le plus élevé sur les performances. Il active également le STIBP s'il est présent. Ne convient pas à Intel.
  • ibpb,nosmt - Comme ibpb ci-dessus, mais désactive SMT lorsque STIBP n'est pas disponible. C'est l'alternative pour les systèmes qui n'ont pas de STIBP.
  • unret - Force l'activation des thunks de retour non formés, uniquement efficace sur les systèmes basés sur AMD f15h-f17h.
  • unret,nosmt - Comme unret, mais désactive SMT lorsque STIBP n'est pas disponible. C'est l'alternative pour les systèmes qui n'ont pas de STIBP.

    La sélection de auto permet de choisir une méthode d'atténuation au moment de l'exécution en fonction de l'unité centrale.

    Ne pas spécifier cette option équivaut à retbleed=auto.

swiotlb=[ARM,IA-64,PPC,MIPS,X86]

Format : { <int> [,<int>] | force | noforce }

  • <int> - Nombre de blocs TLB E/S
  • <int> - Deuxième nombre entier après la virgule. Nombre de zones swiotlb disposant de leur propre verrou. Ce nombre sera arrondi à une puissance de 2.
  • force - force l'utilisation des tampons de rebond même s'ils ne sont pas automatiquement utilisés par le noyau
  • noforce - N'utilise jamais les tampons de rebond (pour le débogage)

Nouveaux paramètres sysctl

kernel.nmi_wd_lpm_factor (PPC uniquement)

Ce facteur représente le pourcentage ajouté à watchdog_thresh lors du calcul de la temporisation du chien de garde NMI pendant un LPM. Le délai de verrouillage progressif n'est pas affecté. Utilisez ce facteur pour l'appliquer au délai d'attente du chien de garde NMI (uniquement lorsque nmi_watchdog est réglé sur 1).

  • Une valeur de 0 signifie qu'il n'y a pas de changement.
  • La valeur par défaut est 200, ce qui signifie que le chien de garde NMI est réglé sur 30s (sur la base de watchdog_thresh égal à 10).
net.core.txrehash

Avec ce paramètre, vous pouvez contrôler le comportement par défaut de la reconsidération du hachage sur la socket d'écoute lorsque l'option SO_TXREHASH est définie sur SOCK_TXREHASH_DEFAULT (c'est-à-dire qu'elle n'est pas remplacée par setsockopt).

  • S'il vaut 1 (valeur par défaut), la reconsidération du hachage est effectuée sur la socket à l'écoute.
  • S'il est fixé à 0, la reconsidération du hachage n'est pas effectuée.
net.sctp.reconf_enable - BOOLEAN

Cette extension permet d'activer ou de désactiver l'extension de la fonctionnalité de reconfiguration de flux spécifiée dans la RFC6525. Cette extension permet de "réinitialiser" un flux et comprend les paramètres Outgoing/Incoming SSN Reset, SSN/TSN Reset et Add Outgoing/Incoming Streams.

  • 1 : Activation de l'extension.
  • 0 : Désactive l'extension.
  • La valeur par défaut est 0.
net.sctp.intl_enable - BOOLEAN

Cette extension permet d'activer ou de désactiver l'extension de la fonctionnalité d'entrelacement des messages utilisateur spécifiée dans la RFC8260. Cette extension permet l'entrelacement des messages d'utilisateur envoyés sur différents flux. Lorsque cette fonctionnalité est activée, le bloc I-DATA remplace le bloc DATA pour transporter les messages d'utilisateur si l'homologue le prend également en charge. Notez que pour utiliser cette fonctionnalité, vous devez définir cette option à 1 et définir également les options de socket SCTP_FRAGMENT_INTERLEAVE à 2 et SCTP_INTERLEAVING_SUPPORTED à 1.

  • 1 : Activation de l'extension.
  • 0 : Désactive l'extension.
  • La valeur par défaut est 0.
net.sctp.ecn_enable - BOOLEAN

Cette extension permet de contrôler l'utilisation de la notification explicite de congestion (ECN) par le protocole SCTP. Comme pour le TCP, l'ECN n'est utilisé que lorsque les deux extrémités de la connexion SCTP indiquent qu'elles le supportent. Cette fonctionnalité est utile pour éviter les pertes dues à la congestion en permettant aux routeurs de signaler la congestion avant de devoir abandonner les paquets.

  • 1 : Activation de l'ECN.
  • 0 : Désactivation de l'ECN.
  • La valeur par défaut est 1.
vm.hugetlb_optimize_vmemmap

Ce bouton n'est pas disponible lorsque le paramètre du noyau memory_hotplug.memmap_on_memory est configuré ou que la taille de struct page (une structure définie dans include/linux/mm_types.h) n'est pas une puissance de deux (une configuration inhabituelle du système pourrait en être la cause).

Vous pouvez activer (1) ou désactiver (0) la fonction d'optimisation des pages vmemmap associées à chaque page HugeTLB.

  • Si cette option est activée, les pages vmemmap de l'allocation ultérieure de pages HugeTLB par l'allocateur compagnon seront optimisées (7 pages par page HugeTLB de 2 Mo et 4095 pages par page HugeTLB de 1 Go), tandis que les pages HugeTLB déjà allouées ne seront pas optimisées. Lorsque ces pages HugeTLB optimisées sont libérées du pool HugeTLB vers l'allocateur compagnon, les pages vmemmap représentant cette plage doivent être remappées et les pages vmemmap écartées précédemment doivent être réattribuées.
  • Si votre cas d'utilisation est que les pages HugeTLB sont allouées de manière impromptue (par exemple, ne jamais allouer explicitement des pages HugeTLB avec nr_hugepages mais seulement définir nr_overcommit_hugepages, ces pages HugeTLB sur-engagées sont allouées de manière impromptue) au lieu d'être tirées du pool HugeTLB, vous devriez évaluer les avantages des économies de mémoire par rapport à la surcharge (~2x plus lente qu'avant) de l'allocation ou de la libération des pages HugeTLB entre le pool HugeTLB et l'allocateur de copains. Un autre comportement à noter est que si le système est soumis à une forte pression de mémoire, il peut empêcher l'utilisateur de libérer des pages HugeTLB entre le pool HugeTLB et l'allocateur compagnon puisque l'allocation des pages vmemmap peut échouer, vous devez réessayer plus tard si votre système est confronté à cette situation.
  • Si cette option est désactivée, les pages vmemmap de l'allocation ultérieure de pages HugeTLB par l'allocateur compagnon ne seront pas optimisées, ce qui signifie que la surcharge supplémentaire au moment de l'allocation par l'allocateur compagnon disparaît, alors que les pages HugeTLB déjà optimisées ne seront pas affectées. Si vous voulez vous assurer qu'il n'y a pas de pages HugeTLB optimisées, vous pouvez d'abord définir nr_hugepages en 0, puis désactiver cette fonction. Notez que l'écriture de 0 à nr_hugepages transformera toutes les pages HugeTLB de in use en pages excédentaires. Ces pages excédentaires sont donc optimisées jusqu'à ce qu'elles ne soient plus utilisées. Vous devrez attendre que ces pages excédentaires soient libérées avant qu'il n'y ait plus de pages optimisées dans le système.
net.core.rps_default_mask
Masque par défaut de l'unité centrale de RPS utilisé sur les périphériques réseau nouvellement créés. Un masque vide signifie que le RPS est désactivé par défaut.

Modification des paramètres sysctl

kernel.numa_balancing

Ce paramètre permet d'activer, de désactiver et de configurer l'équilibrage automatique de la mémoire NUMA basé sur les défauts de page. La mémoire est déplacée automatiquement vers les nœuds qui y accèdent souvent. La valeur à définir peut être le résultat de la combinaison OU des éléments suivants :

= =================================
0 NUMA_BALANCING_DISABLED
1 NUMA_BALANCING_NORMAL
2 NUMA_BALANCING_MEMORY_TIERING
= =================================

Ou NUMA_BALANCING_NORMAL pour optimiser le placement des pages entre les différents nœuds NUMA afin de réduire l'accès à distance. Sur les machines NUMA, l'accès à la mémoire distante par un processeur entraîne une perte de performance. Lorsque cette fonctionnalité est activée, le noyau échantillonne le thread de tâche qui accède à la mémoire en désapprouvant périodiquement les pages et en piégeant ensuite un défaut de page. Au moment du défaut de page, il est déterminé si les données accédées doivent être migrées vers un nœud de mémoire locale.

Ou NUMA_BALANCING_MEMORY_TIERING pour optimiser le placement des pages entre les différents types de mémoire (représentés par différents nœuds NUMA) afin de placer les pages chaudes dans la mémoire rapide. Cette méthode est également mise en œuvre sur la base du démappage et du défaut de page.

net.ipv6.route.max_size
Cette fonction est désormais obsolète pour l'ipv6, car le ramassage des ordures gère les entrées d'itinéraires mises en cache.
net.sctp.sctp_wmem

Cette option était auparavant documentée comme n'ayant aucun effet. Désormais, seule la première valeur (min) est utilisée, default et max sont ignorés.

  • min : taille minimale du tampon d'envoi pouvant être utilisé par les sockets SCTP. Elle est garantie à chaque socket SCTP (mais pas à l'association) même en cas de pression modérée sur la mémoire.
  • La valeur par défaut est 4K.
Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.