question on memory mapping one page at a time
Ezequiel García
elezegarcia at yahoo.com.ar
Thu Sep 22 12:42:59 EDT 2011
--- El mié 21-sep-11, Sri Ram Vemulpali <sri.ram.gmu06 at gmail.com> escribió:
> De: Sri Ram Vemulpali <sri.ram.gmu06 at gmail.com>
> Asunto: Re: question on memory mapping one page at a time
> Para: "rohan puri" <rohan.puri15 at gmail.com>
> Cc: "Jeff Haran" <jharan at bytemobile.com>, "kernelnewbies" <kernelnewbies at kernelnewbies.org>
> Fecha: miércoles, 21 de septiembre de 2011, 15:06
> thanks for the replies.
>
> On Tue, Sep 20, 2011 at 11:42 PM, rohan puri <rohan.puri15 at gmail.com>
> wrote:
> >
> >
> > On Wed, Sep 21, 2011 at 2:24 AM, Jeff Haran <jharan at bytemobile.com>
> wrote:
> >>
> >> > -----Original Message-----
> >> > From: kernelnewbies-bounces at kernelnewbies.org
> [mailto:kernelnewbies-
> >> > bounces at kernelnewbies.org]
> On Behalf Of Sri Ram Vemulpali
> >> > Sent: Tuesday, September 20, 2011 11:24 AM
> >> > To: kernelnewbies
> >> > Subject: question on memory mapping one page
> at a time
> >> >
> >> > Hi all,
> >> >
> >> > can anyone please explain the following code,
> what it is doing. I want
> >> > the first few statements of the code, as
> they are calculating page
> >> > frame number. This is little confusing,
> thanks in advance.
> >> >
> >> > struct page *simple_vma_nopage(struct
> vm_area_struct *vma,
> >> > unsigned long
> address, int *type)
> >> > {
> >> > struct page *pageptr;
> >> > unsigned long offset = vma->vm_pgoff
> << PAGE_SHIFT;
> >> > unsigned long physaddr = address -
> vma->vm_start + offset;
> >> > unsigned long pageframe = physaddr
> >> PAGE_SHIFT;
> >> > if (!pfn_valid(pageframe))
> >> > return NOPAGE_SIGBUS;
> >> > pageptr = pfn_to_page(pageframe);
> >> > get_page(pageptr);
> >> > if (type)
> >> > *type = VM_FAULT_MINOR;
> >> > return pageptr;
> >> > }
> >> >
> >> > --
> >> > Regards,
> >> > Sri.
> >>
> >> Do a search on "Understanding the Linux Virtual
> Memory Manager" by Mel
> >> Gorman. The PDF is out there for free or you can
> buy the hardcopy.
Does this means that Gorman's book is still useful? I thought it was too outdated.
More information about the Kernelnewbies
mailing list