tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pgo_get()? what's that? (was Re: Device page)

> > > What's pgo_get()?  Since you seem to be immersed in UVM, you may be in a
> > > good position to write the manual pages that it so badly lacks.  Even if
> > > you just jot some notes on each function, I can write the manual pages.
> > 
> > UVM abstracts things that is mapped & put onto the main memory as 
> > "uvm_object".
> > Most typically vnode.  UVM doesn't know how those instances corresponds to
> > their backends.  When UVM wants to load those objects put onto memory, UVM
> > asks its super class to get objects from backends.  That's the pgo_get()
> > operation.
> Do you mean subclass?

Classes are called "pager".  Instances of pagers are uvm_object.

Usually filesystem data is stored in a backend, then read from / write to
there.  tmpfs is special in that it doesn't have any on-disk format but just
ask "aobj", another pager to manage data.  "aobj" is a pager which allocates
pages using swap as backing store.

I've not understood well about layered uvm_objects like tmpfs.  Especially about
locking.  tmpfs's pager returning underlying (lowermost?) layer's vm_page
back to uvm_fault() still seems very odd to me.  Probably such a thing was
introduced after the original design of UVM?  I need more thought...


Home | Main Index | Thread Index | Old Index