【问题标题】:What happen if kmem_cache has no free memory for allocating?如果 kmem_cache 没有用于分配的空闲内存会怎样?
【发布时间】:2016-02-26 03:25:12
【问题描述】:

我通过kmem_cache_create(... size)创建了一个slab缓存,然后通过kmem_cache_alloc()从这个缓存中分配内存。

在我为“大小”时间分配内存后,如果我调用kmem_cache_alloc() 分配size + 1th 内存会怎样?返回NULL还是隐式扩展缓存?

【问题讨论】:

    标签: memory-management linux-kernel linux-device-driver


    【解决方案1】:

    “大小”参数与为任何东西保留的内存无关。它大约是 kmem_cache_alloc 返回的每个分配的大小。

    一般情况下可能会出现内存短缺,在这种情况下,根据传递给 kmem_cache_alloc 的标志,内核可能会尝试通过例如释放一些缩小缓存。

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      • 2014-11-24
      • 2018-10-09
      • 2015-03-21
      • 1970-01-01
      • 2015-08-21
      相关资源
      最近更新 更多