作家
登录

浅析Linux的共享内存与tmpfs文件系统

作者: 来源: 2017-08-14 15:02:46 阅读 我要评论

SIGBUS

当应用拜访共享内存对应的地址空间,如不雅对应的物理PAGE还没有分派,就会调用fault办法,分派掉败,就会返回OOM或者BIGBUS缺点:

点击(此处)折叠或打开

共享内存与CGROUP

今朝,共享内存的空间计算在第一个拜访共享内存的group,参考:

l http://lwn.net/Articles/516541/

(1)POSIX共享内存与SYS V共享内存在内核都是经由过程tmpfs实现,但对应两个不合的tmpfs实例,互相自力。

l https://www.kernel.org/doc/Documentation/cgroups/memory.txt

POSIX共享内存与Docker

今朝Docker将/dev/shm限制为64M,却没有供给参数,这种做法比较糟糕。如不雅应用应用大年夜内存的POSIX共享内存,必定会导致问题。 参考:

l https://github.com/docker/docker/issues/2606

l https://github.com/docker/docker/pull/4981

  1. static const struct vm_operations_struct shmem_vm_ops = { 
  2.  
  3.     .fault = shmem_fault, 
  4.  
  5. #ifdef CONFIG_NUMA  
  6.  
  7.     .set_policy = shmem_set_policy, 
  8.  
  9.     .get_policy = shmem_get_policy, 
  10.  
  11. #endif 
  12.  
  13. }; 
  14.  
  15.  
  16. static int shmem_fault(struct vm_area_struct *vma, struct vm_fault *vmf) 
  17.  
  18.  
  19.     struct inode *inode = vma->vm_file->f_path.dentry->d_inode; 
  20.  
  21.     int error; 
  22.  
  23.     int ret = VM_FAULT_LOCKED; 
  24.  
  25.     error = shmem_getpage(inode, vmf->pgoff, &vmf->page, SGP_CACHE, &ret); 
  26.  
  27.     if (error) 
  28.  
  29.         return ((error == -ENOMEM) ? VM_FAULT_OOM : VM_FAULT_SIGBUS); 
  30.  
  31.     return ret; 
  32.  
  33.  
  34.  
  35. shmem_getpage –> shmem_getpage_gfp: 
  36.  
  37. /* 
  38.  
  39.  * shmem_getpage_gfp - find page in cache, or get from swap, or allocate 
  40.  
  41.  * 
  42.  
  43.  * If we allocate a new one we do not mark it dirty. That's up to the 
  44.  
  45.  * vm. If we swap it in we mark it dirty since we also free the swap 
  46.  
  47.  * entry since a page cannot live in both the swap and page cache 
  48.  
  49.  */ 
  50.  

  51.   推荐阅读

      Windows 7系统U盘插入后假死怎么处理?

    Win7体系U盘插入后假逝世怎么处理?有效户表示,在Win7体系下,U盘插入后体系会出现假逝世的问题,一般十几秒钟就恢复正常了,固然对操作体系毫无影响,我们却不想存在任何假设的病毒存在,>>>详细阅读


    本文标题:浅析Linux的共享内存与tmpfs文件系统

    地址:http://www.17bianji.com/lsqh/36688.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)