【问题标题】:cache coloring on slab memory management in Linux kernelLinux内核中slab内存管理的缓存着色
【发布时间】:2013-02-07 14:37:19
【问题描述】:

最近看了关于slab系统的缓存着色,没看懂。 为什么在不同的slab中为对象添加各种偏移量的缓存着色可以提高性能?

我最初的猜测是: 带有缓存偏移的slab分配器,尝试将slab的第一个对象放在不同缓存颜色的内存中。如果客户端从这些slab中分配N个对象,它将获得N个具有N种缓存颜色的对象。

我的猜测是否正确,或者有人可以给我更多提示吗? 非常感谢,

【问题讨论】:

    标签: linux caching colors kernel


    【解决方案1】:

    我建议阅读“Understanding Linux virtual memory”一书 - 平板分配器章节。正如它所引用的,

    slab 分配器的最终任务是优化硬件缓存使用。如果在将对象打包到平板后还有剩余空间,则剩余空间用于为平板着色。板着色是一种尝试让不同板中的对象使用缓存中的不同行的方案。通过将对象放置在平板内不同的起始偏移处,对象可能会在 CPU 缓存中使用不同的行,这有助于确保来自同一平板缓存的对象不太可能相互刷新。

    我认为这回答了你的疑问。

    【讨论】:

      【解决方案2】:

      我在另一个问题中回答了同样的问题。你可以参考一下。

      https://stackoverflow.com/a/57345687/3762471

      【讨论】:

        猜你喜欢
        • 2013-01-05
        • 1970-01-01
        • 2016-11-23
        • 2020-06-13
        • 2011-11-29
        • 2012-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多