#author("2025-10-27T13:08:19+09:00","default:guest","guest") #author("2025-10-27T13:36:33+09:00","default:guest","guest") *参照元 [#s1ec6cfa] #backlinks *説明 [#d6044a49] -パス: [[linux-5.15/include/linux/mmzone.h]] -zonerefの配列 --説明 --pglistのnode_zonelistsメンバーの型。 --[[linux-5.15/pglist_data]] -zonerefの配列。zoneのインデックスを逆順(例えばMOVABLE, NORMAL, DMA32, DMA)に辿って作る(build_zonerefs_node) --ただしmanaged_zoneしか登録されない(MOVABLE, DMA32が空のゾーンだとすると、zonelistにはNORMAL, DMAだけ残る) --[[linux-5.15/zone_type]] -pglistのnode_zonelistsメンバーの型である。 ---[[linux-5.15/pglist_data]] **参考 [#w96d513d] *実装 [#f61a5567] /* * One allocation request operates on a zonelist. A zonelist * is a list of zones, the first one is the 'goal' of the * allocation, the other zones are fallback zones, in decreasing * priority. * * To speed the reading of the zonelist, the zonerefs contain the zone index * of the entry being read. Helper functions to access information given * a struct zoneref are * * zonelist_zone() - Return the struct zone * for an entry in _zonerefs * zonelist_zone_idx() - Return the index of the zone for an entry * zonelist_node_idx() - Return the index of the node for an entry */ struct zonelist { struct zoneref _zonerefs[MAX_ZONES_PER_ZONELIST + 1]; }; - --[[linux-5.15/zoneref]] --[[linux-5.15/MAX_ZONES_PER_ZONELIST]] *コメント [#a3e525ab]