> Qui doit faire/utiliser ça ?
> Il n'y a que la partie du noyau qui gère la mémoire qui utilise ça
> (répertoire mm qui n'est pas lourd par rapport au reste).
Rien qu'en cherchant 3mn, j'ai le driver de ma webcam (spca50x) qui utilise ca, le DRM standard du noyau aussi, les drivers Myrinet, ...
Le noyau fournit aussi une API de plus haut niveau qui enrobe le parcours de page (par exemple pci_map_single). Et il ne faut pas oublier que le mapping linéaire permet de faire la translation rapidement avec virt_to_phys car on sait à l'avance ce que le parcours de la table de pages va donner.
Mais moralement, c'est la meme chose, les drivers veulent souvent traduire en adresses physiques.
Evidemment, ils utilisent la methode la plus simple.
Mais elle ne suffit pas toujours. Et dans ce cas, on utilise cette API.
> Donc, tu ne parles pas d'API mais d'implémentation de la vm. C'est
> différent.
Une API, c'est une "Application Programming Interface", ca veut dire interface logicielle de programmation. Ces fonctions sont exportées
dans les include/asm-/*.h de toutes les architectures.
Et un .h, c'est precisement un fichier où on ecrit les API.
> Je n'y ai pas accès. Mais lis bien, c'est "A proposal for a major
> memory management rework". Ça ne conserne pas (mais je n'ai
> pas lu l'article) l'API qui est exporté.
En effet, tu n'as pas lu l'article...
Par exemple :
"Christoph Lameter would like to get rid of the disconnect between in-kernel and hardware page tables; to that end, he has proposed a new abstraction layer which would handle access to the processor's memory management unit (MMU)."
puis
"The proposed replacement interface is somewhat vague at this stage, but some features have been sketched out:"
Une "nouvelle couche d'abstraction" puis une "interface de remplacement proposée", c'est une nouvelle API.
[^] # Re: Il manque
Posté par Brice Goglin . En réponse à la dépêche Sortie du noyau 2.6.11. Évalué à 4.
> Il n'y a que la partie du noyau qui gère la mémoire qui utilise ça
> (répertoire mm qui n'est pas lourd par rapport au reste).
Rien qu'en cherchant 3mn, j'ai le driver de ma webcam (spca50x) qui utilise ca, le DRM standard du noyau aussi, les drivers Myrinet, ...
Le noyau fournit aussi une API de plus haut niveau qui enrobe le parcours de page (par exemple pci_map_single). Et il ne faut pas oublier que le mapping linéaire permet de faire la translation rapidement avec virt_to_phys car on sait à l'avance ce que le parcours de la table de pages va donner.
Mais moralement, c'est la meme chose, les drivers veulent souvent traduire en adresses physiques.
Evidemment, ils utilisent la methode la plus simple.
Mais elle ne suffit pas toujours. Et dans ce cas, on utilise cette API.
> Donc, tu ne parles pas d'API mais d'implémentation de la vm. C'est
> différent.
Une API, c'est une "Application Programming Interface", ca veut dire interface logicielle de programmation. Ces fonctions sont exportées
dans les include/asm-/*.h de toutes les architectures.
Et un .h, c'est precisement un fichier où on ecrit les API.
> Je n'y ai pas accès. Mais lis bien, c'est "A proposal for a major
> memory management rework". Ça ne conserne pas (mais je n'ai
> pas lu l'article) l'API qui est exporté.
En effet, tu n'as pas lu l'article...
Par exemple :
"Christoph Lameter would like to get rid of the disconnect between in-kernel and hardware page tables; to that end, he has proposed a new abstraction layer which would handle access to the processor's memory management unit (MMU)."
puis
"The proposed replacement interface is somewhat vague at this stage, but some features have been sketched out:"
Une "nouvelle couche d'abstraction" puis une "interface de remplacement proposée", c'est une nouvelle API.