gpt4 book ai didi

perf - zalloc分配内存

转载 作者:行者123 更新时间:2023-12-02 03:45:52 26 4
gpt4 key购买 nike

我正在浏览 linux 内核源代码中的 perf 源代码,以了解如何实现用户空间探测。我在很多地方都遇到过这种情况:

zalloc(sizeof(struct __event_package) * npevs);

我认为它位于 zlib 库中(对于 fedora 18)。谁能告诉我这个 zalloc 如何帮助分配内存?提前致谢...

最佳答案

可以引用这个link:

分配与任何其他堆分配相同。在内核空间中,堆被划分为许多freelist,每个freelist都有大小相同的 block 以链表的形式连接起来。

For eg:
Freelist1 - 4 bytes/block x 10 blocks
Freelist2 - 8 bytes/block x 10 blocks
Freelist3 - 16 bytes/block x 10 blocks
....
Freelist10 - 1024 bytes/block x 10 blocks

每个空闲列表代表 slabs ( slab allocator ) 并使用 buddy system

因此,当执行 zalloc 时,它首先决定哪个大小的空闲列表可以满足此请求,然后从中找到一个空闲 block 。

在一些自定义内核实现中,堆被划分为内核和其他服务。在这种情况下,*alloc 需要知道访问哪个堆来满足请求。

关于perf - zalloc分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com