James Georgas wrote:Basically, yes, but that's an oversimplification. We actually use page tables everywhere, but the conversion is simply +/- 0xC0000000 for the NORMAL zone, so we can skip most of the fancy VM work and just use a trivial macro. vmalloc can allocate large chunks of virtually contiguous memory even when the physical memory is heavily fragmented, and since we've set aside address space for it, it's visible in all process contexts. vmalloc is handy sometimes because it can complete even if there's no memory free when it's called, since the VM will swap out user pages and then return those remapped into the vmalloc address space. Unfortunately, we can't use vmalloc anywhere we want to use DMA because it will be accessed without the MMU. Worse, we also can't use it in any path that could be called while trying to free memory, due to recursion issues, which substantially limits its utility in the kernel. Some people *cough*OpenAFS*cough* use it carelessly and get all kinds of exciting panics under rare and difficult-to-reproduce load conditions. -- Chris -
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
| Linus Torvalds | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| David Newall | Re: Slow DOWN, please!!! |
| Ian Campbell | Re: [PATCH] x86: Construct 32 bit boot time page tables in native format. |
| Matthias Scheler | Re: HEADS UP: timecounters (branch simonb-timecounters) merged into -current |
| Greg Troxel | Re: Interface to change NFS exports |
| Thor Lancelot Simon | metadata cache and memory fragmentation |
| YAMAMOTO Takashi | amap memory allocation |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 0/37] dccp: Feature negotiation - last call for comments |
| David Miller | [GIT]: Networking |
| Dushan Tcholich | Re: ksoftirqd high cpu load on kernels 2.6.24 to 2.6.27-rc1-mm1 |
