Welcome to Linux Forums!

With a comprehensive Linux Forum, information on various types of Linux software and many Linux Reviews articles, we have all the knowledge you need a click away, or accessible via our knowledgeable members.

Linux Forum ArticlesLinux ForumsLinux Forum DownloadsLinux HostsFree MagazinesJobs
Home|Register|FAQ|Member List|Calendar|Unanswered Posts|Forum Rules|Today's Posts|Advanced Search|
SEARCH FOR IN
Go Back   Linux Forums > GNU Linux Zone > The Linux Kernel
Reload this Page mapping struct pages to physical address
Linux Forums
Linux Forums
Welcome To The Linux Forums!
Welcome to Linux Forums. We pride ourselves in being one of the largest Linux communities on the web, we encourage you to REGISTER on our forums and participate in the community. There are over 150,000 members ready to answer your questions. JOINING US today will allow you to make new posts, get support, send messages to other members and submit downloads to our downloads directory and many other great features!

The Linux Kernel Compiling, theory, programming or other discussion about the linux kernel

Reply
 
Thread Tools Display Modes
Old 05-28-2008   #1 (permalink)
Just Joined!
 
Join Date: May 2008
Posts: 42
mapping struct pages to physical address

#define virt_to_page(kaddr) (mem_map + (__pa(KADDR) >> PAGE_SHIFT))
1) why do we need it at te first point ?
2) why does it only talk bout kernel virtual addresses, what about processes virtual addresses ?
how processe's virtual addresses can have access to "struct pages" using mem_map array ?
matt_kleviar is offline   Reply With Quote
Old 05-29-2008   #2 (permalink)
Just Joined!
 
Join Date: Mar 2008
Location: Hyderabad
Posts: 88
1. It is used to convert from kernel logical addresses to Physical struct page pointer.

There is a one to one mapping for kernel logical address and physical address. So what this macro does is
__pa(kaddr) returns the physical address of the kaddr,
then __pa(kaddr) >> PAGE_SHIFT shifts the physical address by PAGE_SHIFT bits to get the physical PAGE FRAME NUMBER
mem_map stores struct pages for whole physical memory in the system, as it is an array so
mem_map + (__pa(kaddr) >> PAGE_SHIFT)
gives the correct struct page pointer corresponding to the PAGE FRAME NUMBER.

Your second question is too confusing clearify a little more.
digvijay.gahlot is offline   Reply With Quote
Old 05-29-2008   #3 (permalink)
Just Joined!
 
Join Date: May 2008
Posts: 42
Hi,
what you told about mem_map array storing of styruct pages is understood.
but I would like to ask questions little further.

1) how does user's virtual address can have access to struct pages ?
2) if mem_mao is storing entire map if the physical memory then only kernel virtual addresses use it.. how does user space address use it ?
matt_kleviar is offline   Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off
 

Free Magazines
Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe
Systems Management News, the newspaper for IT systems administration and data center managers!
Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe
The Enterprise Newsweekly
eWeek is the essential technology information source for builders of e-business.
subscribe
Oracle Magazine
Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe
Total Telecom
Total Telecom is "The Economist of the communications industry".
subscribe
More free magazines »



All times are GMT. The time now is 06:15 AM.




© 2000 - 2008 - All Rights Reserved - Property of  MAS Media

Content Relevant URLs by vBSEO 3.2.0