uma for acpi object cache

Andriy Gapon avg at FreeBSD.org
Sat Jan 26 08:30:35 UTC 2013


on 25/01/2013 10:38 Andriy Gapon said the following:
> on 24/01/2013 22:33 Jung-uk Kim said the following:
>> On 2013-01-24 13:49:07 -0500, Andriy Gapon wrote:
>>> on 24/01/2013 20:29 Jung-uk Kim said the following:
>>>> When utcache.c works, it works fairly well, actually. :-)
>>
>>> Well, my primary motivation for the patch is all the reports about
>>> mysterious panics that seem to involve the cache: 
>>> http://thread.gmane.org/gmane.os.freebsd.devel.acpi/7562 
>>> http://thread.gmane.org/gmane.os.freebsd.devel.acpi/7613 
>>> http://thread.gmane.org/gmane.os.freebsd.devel.acpi/7077
>>
>>> There were a few more reports with the same theme. I hoped that
>>> using uma(9) instead of hand-rolled code would lead to better 
>>> diagnostic and debugging cabilities.
>>
>> Hmm...  I am not really sure local cache is to blame here.  If you
>> really want to prove your theory, I think a simple modification to
>> utcache.c should do:
>>
>>      Cache->LinkOffset = 8;
>>      Cache->ListName   = CacheName;
>>      Cache->ObjectSize = ObjectSize;
>> -    Cache->MaxDepth   = MaxDepth;
>> +    Cache->MaxDepth   = 0;
>>
>>      *ReturnCache = Cache;
>>      return (AE_OK);
>>
>> This should effectively kill object caching.
> 
> That's a very simple trick, I wonder why I didn't think about it :-)
> Now I need to wait until one of the reporters resurfaces.
> 

And just to clarify - I didn't and don't suspect the cache code itself.
I suspect some code that uses the cache (directly or indirectly) - something
like double-free or use-after-free, etc.

-- 
Andriy Gapon


More information about the freebsd-acpi mailing list