Lines Matching refs:mi

19  * Set nodes, which have memory in @mi, in *@nodemask.
22 const struct numa_meminfo *mi)
26 for (i = 0; i < ARRAY_SIZE(mi->blk); i++)
27 if (mi->blk[i].start != mi->blk[i].end &&
28 mi->blk[i].nid != NUMA_NO_NODE)
29 node_set(mi->blk[i].nid, *nodemask);
134 struct numa_meminfo *mi)
147 if (mi->nr_blks >= NR_NODE_MEMBLKS) {
152 mi->blk[mi->nr_blks].start = start;
153 mi->blk[mi->nr_blks].end = end;
154 mi->blk[mi->nr_blks].nid = nid;
155 mi->nr_blks++;
162 * @mi: numa_meminfo to remove memblk from
164 * Remove @idx'th numa_memblk from @mi by shifting @mi->blk[] and
165 * decrementing @mi->nr_blks.
167 void __init numa_remove_memblk_from(int idx, struct numa_meminfo *mi)
169 mi->nr_blks--;
170 memmove(&mi->blk[idx], &mi->blk[idx + 1],
171 (mi->nr_blks - idx) * sizeof(mi->blk[0]));
205 * @mi: numa_meminfo to clean up
207 * Sanitize @mi by merging and removing unnecessary memblks. Also check for
213 int __init numa_cleanup_meminfo(struct numa_meminfo *mi)
220 for (i = 0; i < mi->nr_blks; i++) {
221 struct numa_memblk *bi = &mi->blk[i];
226 numa_move_tail_memblk(&numa_reserved_meminfo, i--, mi);
242 numa_remove_memblk_from(i--, mi);
246 for (i = 0; i < mi->nr_blks; i++) {
247 struct numa_memblk *bi = &mi->blk[i];
249 for (j = i + 1; j < mi->nr_blks; j++) {
250 struct numa_memblk *bj = &mi->blk[j];
279 for (k = 0; k < mi->nr_blks; k++) {
280 struct numa_memblk *bk = &mi->blk[k];
287 if (k < mi->nr_blks)
294 numa_remove_memblk_from(j--, mi);
299 for (i = mi->nr_blks; i < ARRAY_SIZE(mi->blk); i++) {
300 mi->blk[i].start = mi->blk[i].end = 0;
301 mi->blk[i].nid = NUMA_NO_NODE;
374 static int __init numa_register_meminfo(struct numa_meminfo *mi)
380 numa_nodemask_from_meminfo(&node_possible_map, mi);
384 for (i = 0; i < mi->nr_blks; i++) {
385 struct numa_memblk *mb = &mi->blk[i];
488 struct numa_meminfo *mi = &numa_meminfo;
497 for (int i = 0; i < mi->nr_blks; i++) {
498 struct numa_memblk *bi = &mi->blk[i];
502 blk[count] = &mi->blk[i];
536 static int meminfo_to_nid(struct numa_meminfo *mi, u64 start)
540 for (i = 0; i < mi->nr_blks; i++)
541 if (mi->blk[i].start <= start && mi->blk[i].end > start)
542 return mi->blk[i].nid;