Re: Bad page state with x86_64

From: Andreas Block
Date: Wed Sep 27 2006 - 03:24:39 EST

On Tue, 26 Sep 2006 14:41:46 +0200, Nick Piggin <nickpiggin@xxxxxxxxxxxx>

It is freeing a PageReserved page. You should ensure to balance your
reference counting on *each* page (or allocate a compound page and
treat it as a single one). When you map pages into userspace via
nopage or remap_pfn_range, you need to increment their count, which
gets decremented by the VM when they are unmapped.

Thanks a lot for your time and help. Still there are a few things a
seemingly don't understand correctly.
Do I understand you right, I don't have to "put_page" after calling
"get_page" in my no-page handler?
Also I'm wondering, why this code works flawlessly on 2.6.10 32-Bit and
several 2.4.x kernels 32-Bit and PPC and is failing to work on x86_64,
only. Do I have to do the "get/put_page" mechanism differnetly on x86_64?
Another question:
In my no-page handler, I reserve the physical page. I do have to clear the
reserve bit of those page after unmap, right? Or is this done implicitly
as well?

Again, thanks for your effort.

_/_/_/_/ Andreas Block
_/_/_/_/ Dipl.-Ing.
_/_/_/_/ andreas.block@xxxxxxxxxxxxxxxxxxx

_/_/_/ _/_/_/_/_/_/_/ esd electronic system design gmbh
_/ _/ _/ _/ Vahrenwalder Str. 207
_/ _/ _/_/_/ _/ _/ D-30165 Hannover
_/ _/ _/ _/ Phone: +49-511-37298-0
_/_/_/_/_/_/_/ _/_/_/ Fax: +49-511-37298-68


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at