Subject: memory Page sizes

From: George France <[email-masked]>
Date: Tue, 15 Feb 2000 18:17:58 -0500

Hello Russell;

While debugging a DMA issue.  I found that the kernel has a 1 Mb page size
and the user space has a 4 Kb page size.  Could you tell my why it was done
this way,  along with the details of how it was implemented ??  

It is giving me an interesting problem.  I have a device driver that resides
in the kernel. It uses a 128 byte buffer to receive a DMA transfer.  If I
set the memory page to be uncachable and unbuffered, this allows the CPU to
recongnize the DMA transfer, then I get a huge decrease in the performance
of the kernel, as it turns off the Dcache for a whole 1 Mb page.  Any
Ideas????

Best Regards,

--George

George France,      [email-masked]
Cambridge Research Laboratory, Compaq Computer Corporation
One Kendall Square, Building 700     MS: CRL
Cambridge, MA 02139 USA

unsubscribe: body of `unsubscribe linux-arm' to [email-masked]
++        Please use [email-masked] for           ++
++                        kernel-related discussions.                      ++

---

From: Russell King <[email-masked]>
Date: Wed, 16 Feb 2000 07:03:46 +0000 (GMT)

> this way,  along with the details of how it was implemented ??  

Its done to reduce the impact of page table lookups for the kernel.

> of the kernel, as it turns off the Dcache for a whole 1 Mb page.  Any

Yes, don't do this.  In 2.3 kernels, there is a method of getting a "page"
sized area and mapping it uncached without disturbing the kernels normal
mapping.
   _____
  |_____| ------------------------------------------------- ---+---+-
  |   |         Russell King        [email-masked]      --- ---
  | | | |   http://www.arm.linux.org.uk/~rmk/aboutme.html    /  /  |
  | +-+-+                                                     --- -+-
  /   |               THE developer of ARM Linux              |+| /|\
 /  | | |                                                     ---  |
    +-+-+ -------------------------------------------------  /\\\  |