tech-kern archive

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

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.
> Thanks.
> On Tue, 27 Dec 2011, YAMAMOTO Takashi wrote:
>> Date: Tue, 27 Dec 2011 02:53:29 +0000 (UTC)
>> From: YAMAMOTO Takashi <>
>> To:
>> Cc:
>> Subject: Re: O->A loan
>> hi,
>> 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.
>> YAMAMOTO Takashi
>>> hi,
>>>> 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
>>> YAMAMOTO Takashi
>>>> -Chuck

Home | Main Index | Thread Index | Old Index