On Tue, Nov 29, 2011 at 06:38:27AM +0000, YAMAMOTO Takashi wrote:
O->A loaned pages installed on the user address space would have a different
owner than the usual map->entry.uvm_obj.
although it was not a problem when you wrote this patch, at least some
non-mechanical changes would be required after the recent locking
changes in this area. namely, uvm_map_lock_entry etc now assumes that
any pages mapped in a map entry belong to either the entry's amap or
underlying object.
ok, I didn't think it would be entirely mechanical. :-)
what if the O->A loan code also changed the entry's uvm_obj to be the vnode
that the pages really belong to? if the loan range in the amap is fully
populated (which it is in this context) then that shouldn't affect the
logical contents of the entry, it would just cause anyone locking the entry
to also lock the vnode. if the range of the loan is smaller than the
range of the entry, we could split the entry. do you think that would work?