Re: [Bugme-new] [Bug 2019] New: Bug from the mm subsystem involving X (fwd)

From: Martin J. Bligh
Date: Wed Feb 04 2004 - 19:54:37 EST



>> which seems to be the "PageReserved(pfn_to_page(pfn))" test.
>>
>> This implies that you have either:
>> - a buggy "pfn_valid()" macro (do you use CONFIG_DISCONTIGMEM?)
>
> Yup.
># define pfn_valid(pfn) ((pfn) < num_physpages)
>
> Which is wrong. There's a even a comment above it that says:
>
> /*
> * pfn_valid should be made as fast as possible, and the current definition
> * is valid for machines that are NUMA, but still contiguous, which is what
> * is currently supported. A more generalised, but slower definition would
> * be something like this - mbligh:
> * ( pfn_to_pgdat(pfn) && ((pfn) < node_end_pfn(pfn_to_nid(pfn))) )
> */
>
> ;-)
>
> Which I still don't think is correct, as there's a hole in the middle of
> node 0 ... I'll make a new patch up somehow and give to Keith to test ;-)

Oh hell ... I remember what's wrong with this whole bit. pfn_valid is
used inconsistently in different places, IIRC. Linus / Andrew ... what
do you actually want it to mean? Some things seem to use it to say
"the memory here is valid accessible RAM", some things "there is a
valid struct page for this pfn". I was aiming for the latter, but a
few other arches seemed to disagree.

Could I get a ruling on this? ;-)

Thanks,

M.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/