linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* Problem with remap_page_range on IA32 with more than 4GB RAM
@ 2004-09-23 23:22 John Fusco
  2004-09-23 23:27 ` William Lee Irwin III
  2004-09-24  3:22 ` Is there a node-affinity memory allocation benchmark? Annie
  0 siblings, 2 replies; 3+ messages in thread
From: John Fusco @ 2004-09-23 23:22 UTC (permalink / raw)
  To: linux-mm

I have a problem and I would like some comments on how to fix it.

I have a custom PCI-X device installed in an IA32 system.  The device 
expects to see a flat contiguous address space on the host, from which 
it reads and sends its data.  The technique I used is right out of the 
O'Reilly Device Drivers book, which is to hide memory from the kernel 
with the 'mem=YYY' boot parameter.  I then provide a mmap method to map 
the contiguous (hidden) memory into user space via a call to 
'remap_page_range'.

Everything worked great until we decided that we needed to install 6GB 
in this system.  The problem is that remap_page_range() uses an unsigned 
long as the parameter for a physical address.  On IA32, an unsigned long 
is 32-bits, but the IA32 is capable of addressing well over 4GB of RAM.  
So physical addresses on IA32 must be larger than 32 bits.

I chose to work around this by patching the kernel.  I changed the 
unsigned long parameters used for physical address in mm/memory.c to 
'dma64_addr_t'.  This seems to work and I don't see any holes in the 
approach, but I would appreciate any comments (or better solutions).

I can post the patch here if anyone would like to see it.  It seems that 
Linux could use a unique typedef for a physical address.  Right now I 
think dma64_addr_t fits the bill.

Thanks,
John
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2004-09-24  3:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-23 23:22 Problem with remap_page_range on IA32 with more than 4GB RAM John Fusco
2004-09-23 23:27 ` William Lee Irwin III
2004-09-24  3:22 ` Is there a node-affinity memory allocation benchmark? Annie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox