uma for acpi object cache

Jung-uk Kim jkim at FreeBSD.org
Mon Jan 28 18:42:24 UTC 2013


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2013-01-26 03:30:27 -0500, Andriy Gapon wrote:
> 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.

I haven't tried it for ages but ACPI_DBG_TRACK_ALLOCATIONS was meant
to track such problems.  Try adding it in acfreebsd.h.

Jung-uk Kim
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iQEcBAEBAgAGBQJRBsY6AAoJECXpabHZMqHO/sYH/0T/Imtxw70IwN5Ri7qP2C0G
+zkZeUosV8hUI8xmXOdQMtyYhBXQprAoewXvAAnx0iCTLYtjNDt0lMGvoyyMDqOW
bwupzYE+6GhaTDDc+8bfSxxMbDXgXqFuIqkohBnZPAQ7GdfLNwY2KHwGlA6T+o/s
XailQ+sq9zN4VJ6SDoNAvpi1+O9FsO1GJBfnIihdY/S8b99n2ffpOO2XcAIIPwCE
huxWnZ/GYVPmoVuvEKyc7CzzsGxRZfdQpJ5e7oPvwM5JAG7GEmc1VzRDPBtCFBWL
VO3sBH3ObKX2+H0LhU9tskCVsmuzD0U+/ygF3P8NRkuLP7Y/yQiAWIoZeEr1saI=
=05h0
-----END PGP SIGNATURE-----


More information about the freebsd-acpi mailing list