Hi, thanks for review. On Thu, Nov 25, 2010 at 01:58:04AM +0000, YAMAMOTO Takashi wrote: > hi, > > - what's VM_PHYSSEG_OP_PG?
It's to lookup vm_physseg by "struct vm_page *", relying on that "struct vm_page *[]" is allocated linearly. It'll be used to remove vm_page::phys_addr as we talked some time ago. > - why *offp calculation is done in _p functions, rather than the caller? Hmmm. I can't remember any reason, except it's similar to the original code. It's better to do in callers, yes. Masao > > YAMAMOTO Takashi > > > Module Name: src > > Committed By: uebayasi > > Date: Sun Nov 14 15:06:34 UTC 2010 > > > > Modified Files: > > src/sys/uvm: uvm_page.c uvm_page.h uvm_pglist.c > > > > Log Message: > > Be a little more friendly to dynamic physical segment registration. > > > > Maintain an array of pointer to struct vm_physseg, instead of struct > > array. So that VM subsystem can take its pointer safely. Pointer > > to this struct will replace raw paddr_t usage in the future. > > > > Dynamic removal is not supported yet. > > > > Only MD data structure changes, no kernel bump needed. > > > > Tested on i386, amd64, powerpc/ibm40x, arm11. > > > > > > To generate a diff of this commit: > > cvs rdiff -u -r1.163 -r1.164 src/sys/uvm/uvm_page.c > > cvs rdiff -u -r1.66 -r1.67 src/sys/uvm/uvm_page.h > > cvs rdiff -u -r1.46 -r1.47 src/sys/uvm/uvm_pglist.c > > > > Please note that diffs are not public domain; they are subject to the > > copyright notices on the relevant files. -- Masao Uebayashi / Tombi Inc. / Tel: +81-90-9141-4635