YONETANI Tomokazu wrote:
Uff, now I've got it.
It hangs in OsdCache.c:AcpiOsAcquireObject

Object = objcache_get(Cache->cache, M_WAITOK);

Heh.  The ACPI docs are simply not nice enough:

/*******************************************************************************
*
* FUNCTION:    AcpiOsCreateCache
*
* PARAMETERS:  CacheName       - Ascii name for the cache
*              ObjectSize      - Size of each cached object
*              MaxDepth        - Maximum depth of the cache (in objects)
*              ReturnCache     - Where the new cache object is returned

we interpret MaxDepth as "object limit".

but look what utcache.c/AcpiOsReleaseObject does:

   /* If cache is full, just free this object */

   if (Cache->CurrentDepth >= Cache->MaxDepth)
   {
       ACPI_FREE (Object);
       ACPI_MEM_TRACKING (Cache->TotalFreed++);
   }

   /* Otherwise put this object back into the cache */

Quite differently.  Basically MaxDepth is "maximum number of unallocated objects", not 
"maximum number of allocated objects".  bummer :)

cheers
 simon

--
Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low €€€ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to