Link zsmalloc 中的压缩页面
Link of compressed pages in zsmalloc
我试图了解 zram 和 zswap 中使用的 zsmalloc 分配器,但我被困在 zsmalloc.c
中的 init_zspage 代码中
link = (struct link_free *)kmap_atomic(page) +
off / sizeof(*link);
这里link没有初始化。问题是如果 sizeof(*link) 没有初始化,它的值是多少。据我所知 sizeof(*link) 必须在赋值前计算。
此大小将在编译时计算。
struct link_free *link;
235 struct link_free {
236 /* Handle of next free chunk (encodes <PFN, obj_idx>) */
237 void *next;
238 };
即此结构的大小 = 指针的大小。所以这就是你问的?
我试图了解 zram 和 zswap 中使用的 zsmalloc 分配器,但我被困在 zsmalloc.c
中的 init_zspage 代码中 link = (struct link_free *)kmap_atomic(page) +
off / sizeof(*link);
这里link没有初始化。问题是如果 sizeof(*link) 没有初始化,它的值是多少。据我所知 sizeof(*link) 必须在赋值前计算。
此大小将在编译时计算。
struct link_free *link;
235 struct link_free {
236 /* Handle of next free chunk (encodes <PFN, obj_idx>) */
237 void *next;
238 };
即此结构的大小 = 指针的大小。所以这就是你问的?