Hi,
We allocate memory for DMA operation on PCI device using pci_alloc_constistent().
I want to know how this function is boil down to the actual instruction which locks the page in the RAM so that it cannot be paged out and dma can do its work.
Can anybody tell me which instructions do we use to set this page entry in TLB and page table?
What bit gets set in the PTE for this?
Regards,
Parav Pandit
---------------------------------
Do you Yahoo!?
Next-gen email? Have it all with the all-new Yahoo! Mail Beta.
On Tue, Jul 18, 2006 at 04:03:50AM -0700, Parav Pandit wrote:
Hi,
We allocate memory for DMA operation on PCI device using pci_alloc_constistent().
I want to know how this function is boil down to the actual instruction which locks the page in the RAM so that it cannot be paged out and dma can do its work.
This is trivial - you can start with looking at the implementation.
Can anybody tell me which instructions do we use to set this page entry in TLB and page table?
What bit gets set in the PTE for this?
Why do you need this page in TLB?
In general you don't have to worry about _any_ memory you allocated in
the kernel to be paged out.
--
Eugene
--- Eugene Surovegin <ebs@ebshome.net> wrote:
quoted
We allocate memory for DMA operation on PCI
device using pci_alloc_constistent().
quoted
I want to know how this function is boil down to
the actual instruction which locks the page in the
RAM so that it cannot be paged out and dma can do
its work.
This is trivial - you can start with looking at the
implementation.
[Parav]
I did it, but after reaching __alloc_pages() its
getting difficult to understand.
Here is the sequence:
pci_alloc_consistent()
-> __get_free_pages()
->alloc_pages(gfp_mask, order)
->alloc_pages_current()
-> __alloc_pages()
It does something with zones. Looks like zone memory
pages are locked in the beginning.
Still could not figure out the instuctions for page
locking.
quoted
Can anybody tell me which instructions do we use
to set this page entry in TLB and page table?
quoted
What bit gets set in the PTE for this?
Why do you need this page in TLB?
[Parav] No, I don't want. I just wanted to see the
code for locking inside TLB or in page table.
In general you don't have to worry about _any_
memory you allocated in
the kernel to be paged out.
[Parav] As driver writer, I agree I don't need to, but
to better understand the system I am eager to do that.
Regards,
Parav
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com