tech-kern archive

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

Re: O->A loan

I did not remove DIAGNOSTIC.
Would you like me to rerun without DIAGNOSTIC?
On Thu, 12 Jan 2012, YAMAMOTO Takashi wrote:

Date: Thu, 12 Jan 2012 03:14:33 +0000 (UTC)
From: YAMAMOTO Takashi <>
Subject: Re: O->A loan


thanks for benchmark!

was it without DIAGNOSTIC?


Hello Yamamoto-san,

I ran dbench on the same system with yamt-pagecache, yamt-pagecache
without a-o loan, and yamt-pagecache-base3.
The tests were run three times on each kernel and the results were
consistent between reboots/runs.


On Tue, 27 Dec 2011, YAMAMOTO Takashi wrote:

Date: Tue, 27 Dec 2011 02:53:29 +0000 (UTC)
From: YAMAMOTO Takashi <>
Subject: Re: O->A loan


i made read with O->A loaning work for easy cases (ie. no locking difficulty)
on yamt-pagecache branch so that someone interested can benchmark.



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?

it might work, but i have some concerns:
- entry fragmentation
- the extra uobj reference keeps the file even after unlink



Home | Main Index | Thread Index | Old Index