Je travaille sur un élément d'un matériel de très haute performance fonctionnant sous Linux. Nous aimerions mettre en cache certaines données, mais nous sommes préoccupés par la consommation de mémoire. L'idée est donc de créer un processus utilisateur pour gérer le cache. De cette façon, le cache peut être dans la mémoire virtuelle, pas dans l'espace noyau, et cetera.Utilisation des processus de l'espace utilisateur pour assister les modules du noyau
La question est: quelle est la meilleure façon de faire cela? Mon premier instinct est de faire en sorte que le module du noyau crée un fichier de périphérique de caractères, et qu'il ait un programme utilisateur qui ouvre ce fichier, puis s'assoit sur une instruction select en attendant que les commandes arrivent. Mais je crains que cela ne soit pas optimal. Un ami a mentionné qu'il connaissait une interface à base de socket, mais lorsqu'il était pressé, il ne pouvait pas fournir de détails ....
Des suggestions?
Vous pourriez envisager de regarder la source FUSE ... –
Encore mieux, vous pouvez regarder CacheFiles et cachefilesd, intro ici: http://git.kernel.org/?p=linux/kernel/git/torvalds/ linux-2.6.git; a = blob; f = Documentation/filesystems/cache/cachefiles.txt; hb = HEAD – ephemient