linux – vmsplice(2)的语义是什么,有没有送礼?

linux – vmsplice(2)的语义是什么,有没有送礼?,第1张

概述我正在尝试理解vmsplice(2)系统调用的功能(手册页 here).我有两个关于SPLICE_F_GIFT标志效果的问题: >手册页说,一旦您将页面提供给内核,就不能再次修改内存.这是否意味着内存永远固定,或者它可能是指可以通过赠送过程而不是物理内存取消映射的虚拟内存?换句话说,这个的典型用途是什么样的? >如果我没有设置SPLICE_F_GIFT,那么vmsplice(2)是不是像write 我正在尝试理解vmsplice(2)系统调用的功能(手册页 here).我有两个关于SPliCE_F_GIFT标志效果的问题:

>手册页说,一旦您将页面提供给内核,就不能再次修改内存.这是否意味着内存永远固定,或者它可能是指可以通过赠送过程而不是物理内存取消映射的虚拟内存?换句话说,这个的典型用途是什么样的?
>如果我没有设置SPliCE_F_GIFT,那么vmsplice(2)是不是像writev(2)这样的矢量化写系统调用?

解决方法

Does that mean the memory is pinned forever,or does it perhaps refer to virtual memory that can be unmapped by the gifting process,rather than physical memory? In other words,what does a typical use of this look like?

您承诺不修改页面.不是页面的虚拟寻址.对于大多数用例,建议 *** 作类似于:

mmapreadvmsplicemunmap

通常,您希望在malloc上使用mmap,因为您希望确保拥有一个页面,而不仅仅是4096字节的RAM.如果您的分配器确定更有效,那么它可以位于2MB或1GB HUGE_PAGE的中间.

If I don’t set SPliCE_F_GIFT,is vmsplice(2) any different than a vectorized write syscall like writev(2)?

内核中的大多数缓冲区都是管道.或者真正的管道由与缓冲区相同的数据结构表示.

总结

以上是内存溢出为你收集整理的linux – vmsplice(2)的语义是什么,有没有送礼?全部内容,希望文章能够帮你解决linux – vmsplice(2)的语义是什么,有没有送礼?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1029278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存