Thanks for the answer! Another related question :
I need to gather all application pages by reading the page tables. The hard part is, I need to do this from a PCI device using DMA. As I understand it, when a DMA is being performed, the pages are pinned in memory . Since the PCI device has grabbed the bus, the processor is not able to access memory to perform page replacement right ? So, this is a form of mutual exclusion. However, if I have to fetch the page struct, the process address space of the process owning the page (I am ignoring shared pages to make things simpler) and the page itself, will a scatter gather DMA make sure that the processor cannot modify any of these data structures till the DMA is complete ? I am using Linux 2.6 and the i386 architecture. thanks, Allison On Sat, 12 Mar 2005 17:23:23 -0800, Matt Mackall <[EMAIL PROTECTED]> wrote: > On Sat, Mar 12, 2005 at 08:05:11PM -0500, firefly blue wrote: > > Hi, > > > > With the 2.6 Linux kernel, I want to find, from the physical page > > frame, the virtual address of the page loaded in the frame and the > > process id of the process owning it. > > Follow struct page->mapping to struct address_space. A page can be > mapped into any number of processes and multiple times per process so > you'll need to walk the data structures there. > > -- > Mathematics is the supreme nostalgia of our time. > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/