Messages in this thread | | | Date | Thu, 27 Nov 1997 14:12:16 +0100 (MET) | From | Rik van Riel <> | Subject | Re: fork: out of memory |
| |
On Wed, 26 Nov 1997, Mike Jagdis wrote:
> > But if we need a DMA buffer that is physically contiguous can't we > > just move non-DMA pages around and adjust the page tables such that > > logical addresses stay the same? > > Assuming you know which pages are only accessed using logical > addresses. We currently have no way of knowing that a page was > allocated *because* it was DMA-able. > > Besides which remapping implies that you would have to relocate > the page in kernel virtual space (since multi-page allocations
No, we could allocate a certain region in memory (1 MB?) to be used for buffer/cache/DMA usage only... Then there's no need to muck with page-table's or whatever... bye-bye race conditions :)
> > It should be possible to change page tables and let all other references > > stay the same. > > I meant, "references by ptes". If you move a page that is shared > many times (such as a libc page) you will change a fair few ptes, > flush a load of tlb entries and bounce quite a few L1/L2 cache > entries. So remapping has quite a cost and should only be a > late resort solution (last resort would be to just junk the pages, > assuming clean, and page them back in when needed).
see above...
grtz,
Rik.
---------- Send Linux memory-management wishes to me: I'm currently looking for something to hack...
| |