On (26/07/07 15:17), Mel Gorman didst pronounce:
> I was looking closer at bind_zonelist() and it has the following snippet
>
> struct zonelist *zl;
> int num, max, nd;
> enum zone_type k;
>
> max = 1 + MAX_NR_ZONES * nodes_weight(*nodes);
> max++; /* space for zlcache_ptr (see mmzone.h) */
> zl = kmalloc(sizeof(struct zone *) * max, GFP_KERNEL);
> if (!zl)
> return ERR_PTR(-ENOMEM);
>
> That set off alarm bells because we are allocating based on the size of a
> zone, not the size of the zonelist.
>
Never mind me, I'm a tool as it's now semi-obvious. When statically defined,
zlcache_ptr is pointing to something useful as it's setup at boottime. When
dynamically allocated in bind_zonelist, the zlcache_ptr is set to NULL so
it never gets used by zlc_setup().
This could have done with a comment.
--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]