Forum Linux.noyau Pipe et hugepage

Posté par  .
Étiquettes : aucune
0
31
jan.
2011
Bonjour,

J'ai cru avoir lu il y a quelques temps que le noyau accepté depuis l'une des dernières versions de créer des pipes qui à la place d'une page mémoire normale utilisent une huguepage ce qui permet d'avoir un buffer beacoup plus grand. Je ne retrouve plus d'informations là dessus, Ais-je rêvé ?
  • # Understanding the linux Kernel

    Posté par  (site web personnel) . Évalué à 2.

    Dans le livre mentionné en titre est écrit ceci :
    Up to Linux 2.6.10, each pipe had just one pipe buffer. In the 2.6.11 kernel, however, data buffering for pipes (and FIFOs) has been easily revised, and now each pipe makes use of 16 pipe buffers. This change greatly enhances the performance of User Mode applications that write large chunks of data in a pipe.

    Mais je ne sais pas si ça répond à ta question ?
    • [^] # Re: Understanding the linux Kernel

      Posté par  . Évalué à 3.

      Je ne sais pas trop il semble qu'il parle de quelque chose d'automatique, hors même de manière experimentale, j'ai pu tester qu'un pipe ne peux prendre plus de 4Kio de données.

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

      • [^] # Re: Understanding the linux Kernel

        Posté par  . Évalué à 3.

        Il ne s'agit pas de hugepage, mais de plusieurs pages de 4K (sur x86).
        Je viens de faire le test sur un 2.6.18, et c'est bien 64K.
        Tu as refait le test avec un noyau récent ?
        • [^] # Re: Understanding the linux Kernel

          Posté par  . Évalué à 2.

          Au temps pour moi, je n'avais pas fais le test depuis longtemps j'ai effectivement pu mettre 64Kio dans un pipe merci bien je réfléchirais plus la prochaine fois.

          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # vmsplice ?

    Posté par  (site web personnel) . Évalué à 2.

    Je n'ai jamais utilisé, mais vmsplice semble correspondre:

    L'appel système vmsplice() projète les nr_segs segments de mémoire utilisateur décrits par iov dans un tube. Le descripteur de fichier fd doit faire référence à un tube.
    • [^] # Re: vmsplice ?

      Posté par  . Évalué à 2.

      D'après ce que j'ai compris de splice et vmsplice c'est juste fais pour « déplacer » des buffers sans les déplaer justement et ça n'a pas de rapport avec la capacité en mémoire.

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.