Quelle est la taille maximale du message de datagramme AF_UNIX pouvant être envoyé sous Linux?

Actuellement, je suis frapper une dure limite de 130688 octets. Si j'essaie de l'envoyer quoi que ce soit plus dans un message, je reçois un ENOBUFS erreur.

J'ai vérifié sur le net.de base.rmem_default, net.de base.wmem_default, net.de base.rmem_max, net.de base.wmem_max, et net.unix.max_dgram_qlen sysctl options et augmentation de tous, mais ils n'ont aucun effet, parce que ces traiter avec le total de la taille de la mémoire tampon pas de la taille du message.

J'ai aussi mis le SO_SNDBUF et SO_RCVBUF options de prise, mais cela a le même problème que ci-dessus. La valeur par défaut socket taille de la mémoire tampon sont fixés sur la base de la _default options de prise de toute façon.

J'ai regardé le source du noyau où ENOBUFS est retourné dans le support de la pile, mais il n'était pas clair pour moi, où il venait. Les seuls endroits qui semblent revenir de cette erreur ont à voir avec ne pas être en mesure d'allouer de la mémoire.

Est la taille max en fait 130688? Si non, peut-on la changer sans avoir à recompiler le noyau?

Merci!

source d'informationauteur Jaime