Source-Changes-D archive

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

Re: CVS commit: src/sys/uvm



hi,

> I take silence as "no objection".

the silence in this case means was-busy-for-other-things-and-forgot.
sorry.

>> I have no real code for this big picture at this moment.  Making
>> vm_physseg available as reference is the first step.  This only
>> changes uvm_page_physload() to return a pointer:
>> 
>>      -void uvm_page_physload();
>>      +void *uvm_page_physload();
>> 
>> But this makes XIP pager MUCH cleaner.  The reason has been explained
>> many times.

because the separate uvm_page_physload_device is no longer necessary,
you mean?  i have no problem with the step.

>> Making fault handlers and pagers to use vm_physseg * + off_t is
>> the next step, and I don't intend to work on it now.  I just want
>> to explain the big picture.
>> 
>> > 
>> > >> 
>> > >> Keep vm_physseg * + off_t array on stack.  If UVM objects uses
>> > >> vm_page (e.g. vnode), its pager looks up vm_page -> vm_physseg *
>> > >> + off_t *once* and cache it on stack.
>> > 
>> > do you mean something like this?
>> >    struct {
>> >            vm_physseg *hoge;
>> >            off_t fuga;
>> >    } foo [16];
>> 
>> Yes.
>> 
>> Or cache vm_page * with it, like:
>> 
>>      struct vm_id {
>>              vm_physseg *seg;
>>              off_t off;
>>              vm_page *pg;
>>      };
>> 
>>      uvm_fault()
>>      {
>>              vm_id pgs[];
>>              :
>>      }
>> 
>> Vnode pager (genfs_getpages) takes vm_page's by looking up
>> vnode::v_uobj's list, or uvn_findpages().
>> 
>> When it returns back to fault handler, we have to lookup vm_physseg
>> for each page.  Then fill the "seg" slot above (assuming we'll
>> remove vm_page::phys_addr soon).
>> 
>> Fault handler calls per-vm_page operations iff vm_page slot is filled.
>> XIP pages are not pageq'ed.

pgo_get returns either seg+off or pg for each vm_id slots?

>> XIP pages don't need vm_page, but
>> cached because it's vnode.

can you explain this sentence?

>> (Just in case, have you read my paper?)

which paper?  i guess no.

YAMAMOTO Takashi


Home | Main Index | Thread Index | Old Index