Re: kmem_alloc replacement in Tiger
Re: kmem_alloc replacement in Tiger
- Subject: Re: kmem_alloc replacement in Tiger
- From: Jim Magee <email@hidden>
- Date: Wed, 1 Feb 2006 08:57:42 -0500
On Feb 1, 2006, at 12:28 AM, Nikita Danilov wrote:
Mike Smith writes:
On Jan 31, 2006, at 3:39 PM, Terry Lambert wrote:
Since Herb was talking about using the memory for a large array, I
recommended the API that I'd normally tell people to use for that
usage. If this array was actually a driver DMA target, well, then
one of the other options is probably a better bet.
Regardless of whether the memory is likely to be a DMA target or not,
allocating pageable kernel memory is probably the way to go.
The sole exception to this case is when the memory is likely to be
accessed on the paging path; typically anything in interrupt context
or on the low-level I/O path.
Or anything in a file-system. Or in a networking (when paging across
NFS)... basically almost anything.
I'm not sure I agree with the NFS comment either. The real
requirement is that you not deal with pageable memory while on the
default-pager paging path. We rarely allocate swap files out on
NFS. ;-)
There used to be strong cross-chatter between paging out to the
default pager and paging out dirty NFS (file) pages. Mostly this was
because there was only one pageout thread (and if it got stuck in a
page frame allocation while paging out NFS it couldn't be used to
page out to the swap files). But there are now independent threads
for paging internal (swap) and external (vnode) memory objects/files.
Not that there aren't other reasons to allocate wired memory (latency
requirements, etc...) - but I just wanted to clear this up.
--Jim
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden