2010-10-26 22 views
1

J'ai travaillé avec une application Windows qui lit depuis le 'pool non paginé' pour augmenter les performances. Dans ce cas, le pool non paginé est la zone de mémoire dans laquelle les pilotes réseau écrivent des données lorsqu'ils les récupèrent du réseau.Version Linux de Windows "pool non paginé" une telle chose existe-t-elle?

Comment Linux gère-t-il la mémoire des pilotes réseau (ou autres pilotes) qui nécessitent un accès exclusif à haute vitesse à la RAM et pose la question «comment lire directement à partir d'un pool non paginé? même avoir du sens lorsqu'il est appliqué à Linux?

Un grand merci

related question

+2

Voulez-vous dire un pilote qui utilise un pool non-paginé? Windows ne fournit pas d'accès au pool non paginé aux applications - il s'agit uniquement d'un noyau. – Stewart

+0

L'application lit uniquement à partir du pool non paginé, parfois pas assez rapide! –

Répondre

3

Certains réseaux comme Infiniband RDMA de soutien, ce qui exige d'être en mesure d'empêcher la pagination pour certaines des pages dans un processus. Voir les fonctions mlock(), mlockall(), munlock(), munlockall().

À part cela, je ne pense pas qu'il existe un concept de "pool non paginé" en soi. Généralement, la mémoire du noyau est AFAIK pas paginable, mais toute la mémoire de l'utilisateur, sauf celle verrouillée avec mlock() ou tel est le cas.