Hi Anton,
Thanks for r your answer.
I tried vmalloc_to_page() and I have some question.
I print the "pages" in vm_struct structure of the buffer to compare the
address get from vmalloc_to_page(), result as follows:
//===source code====
L2cache=vmalloc(L2SIZE);// L2SIZE=40960
printk(KERN_INFO "find_vm_struct OK:%x
addr:%xnr_pages:%d\n",L2vm,L2vm->addr,L2vm->nr_pages);
for(i=0;i<L2vm->nr_pages;i++)
{
if(L2vm->pages[i])
printk("page allocated:%x\n",page_address(L2vm->pages[i]));
}
tpage=vmalloc_to_page(L2cache);
printk(KERN_INFO "vmalloc_to_page tpage :%x\n",tpage);
//===========info of dmesg==================
[ 1561.768471] page allocated:73d65000
[ 1561.768474] page allocated:781e9000
[ 1561.768476] page allocated:6203f000
[ 1561.768478] page allocated:57fdf000
[ 1561.768481] page allocated:56ed4000
[ 1561.768483] page allocated:56ed5000
[ 1561.768485] page allocated:64ab6000
[ 1561.768488] page allocated:7cc1e000
[ 1561.768490] page allocated:60ea8000
[ 1561.768492] page allocated:60ea9000
[ 1561.768497] vmalloc_to_page tpage :7fcf7e18
Why the page address get from vmalloc_to_page is different with the first
page address of the vm_struct (73d65000)?
THX
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Anton Altaparmakov
Sent: Tuesday, January 23, 2007 9:12 PM
To: Yu-Chen Wu
Cc: [email protected]
Subject: Re: Could convert a buffer that allocated by vmalloc to pages?
On Tue, 2007-01-23 at 21:04 +0800, Yu-Chen Wu wrote:
> Hi,
> I write a driver have a big buffer (16MB,allocated by vmalloc).
> I want to use the buffer to do DMA transmission so I need getting the
pages
> of the buffer.
> Have any kernel API can do this?
> My platform is x86_64 and 2GB RAM
vmalloc_to_page()...
See mm/memory.c for the function and how to use it.
Best regards,
Anton
--
Anton Altaparmakov <aia21 at cam.ac.uk> (replace at with @)
Unix Support, Computing Service, University of Cambridge, CB2 3QH, UK
Linux NTFS maintainer, http://www.linux-ntfs.org/
-
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/
-
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/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]