Le support de PAT n'a pas été demandé pour gérer le cache, pas plutôt pour les drivers réseau et graphiques qui voulaient faire du PIO rapide grâce au Write-Combining (WC, qui regroupe des écritures contigues en mémoire en une seule grosse écriture sur le bus). Pour le cache, les MTRR suffisaient très souvent car la répartition cachable/uncachable est souvent très simple (une grande zone de RAM cachable suivie d'une grande zone de mémoire I/O uncachable).
Par contre, quand on commence à mettre du WC sur les cartes réseau et graphique, le nombre de plage à configurer dépasse rapidement le nombre de MTRR disponible (4 ou 8), d'où l'intérêt de PAT. Surtout que c'était disponible depuis longtemps dans les autres OS et que Linux continuait à ne pas le supporter avec des prétextes douteux pour refuser des patchs.
Par contre, le support de PAT n'est encore satisfaisant dans 2.6.26. Par exemple, quand on demande du WC, on a aucune garantie de l'avoir, on peut avoir du uncachable habituel. Mais pire, on n'est pas prévenu quand ca arrive (notamment quand PAT est désactivé, ce qui est le cas par défaut dans 2.6.26).
Et encore pire, comme PAT est prioritaire sur MTRR, on ne peut pas mettre un MTRR en plus "au cas où" car il sera ignoré à cause de PAT. Donc au final, PAT devient une solution de secours pour les drivers, alors que ca devait être la solution ultime. On va devoir essayer de mettre une MTRR WC d'abord, et si ca foire, on demandera du PAT WC en espérant ne pas avoir du uncachable à la place. Super...
# PAT c'est surtout pour WC, pas pour les caches
Posté par Brice Goglin . En réponse à la dépêche Sortie du noyau Linux 2.6.26. Évalué à 8.
Par contre, quand on commence à mettre du WC sur les cartes réseau et graphique, le nombre de plage à configurer dépasse rapidement le nombre de MTRR disponible (4 ou 8), d'où l'intérêt de PAT. Surtout que c'était disponible depuis longtemps dans les autres OS et que Linux continuait à ne pas le supporter avec des prétextes douteux pour refuser des patchs.
Par contre, le support de PAT n'est encore satisfaisant dans 2.6.26. Par exemple, quand on demande du WC, on a aucune garantie de l'avoir, on peut avoir du uncachable habituel. Mais pire, on n'est pas prévenu quand ca arrive (notamment quand PAT est désactivé, ce qui est le cas par défaut dans 2.6.26).
Et encore pire, comme PAT est prioritaire sur MTRR, on ne peut pas mettre un MTRR en plus "au cas où" car il sera ignoré à cause de PAT. Donc au final, PAT devient une solution de secours pour les drivers, alors que ca devait être la solution ultime. On va devoir essayer de mettre une MTRR WC d'abord, et si ca foire, on demandera du PAT WC en espérant ne pas avoir du uncachable à la place. Super...