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...
Masao
Home |
Main Index |
Thread Index |
Old Index