VirtualBox

Changeset 27302 in vbox for trunk


Ignore:
Timestamp:
Mar 11, 2010 8:11:17 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
58714
Message:

IPRT: RIP RTCache*, RTMemCache* is way better...

Location:
trunk
Files:
2 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/DevBusLogic.cpp

    r26836 r27302  
    3535#ifdef IN_RING3
    3636# include <iprt/alloc.h>
    37 # include <iprt/cache.h>
     37# include <iprt/memcache.h>
    3838# include <iprt/param.h>
    3939# include <iprt/uuid.h>
     
    369369
    370370    /** Cache for task states. */
    371     R3PTRTYPE(PRTOBJCACHE)          pTaskCache;
     371    R3PTRTYPE(RTMEMCACHE)           hTaskCache;
    372372
    373373    /** Device state for BIOS access. */
     
    17661766    uint32_t           uTargetDevice;
    17671767
    1768     rc = RTCacheRequest(pBusLogic->pTaskCache, (void **)&pTaskState);
     1768    rc = RTMemCacheAllocEx(pBusLogic->hTaskCache, (void **)&pTaskState);
    17691769    AssertMsgRCReturn(rc, ("Getting task from cache failed rc=%Rrc\n", rc), rc);
    17701770
     
    17951795        AssertMsgRCReturn(rc, ("Finishing BIOS SCSI request failed rc=%Rrc\n", rc), rc);
    17961796
    1797         rc = RTCacheInsert(pBusLogic->pTaskCache, pTaskState);
    1798         AssertMsgRCReturn(rc, ("Getting task from cache failed rc=%Rrc\n", rc), rc);
     1797        RTMemCacheFree(pBusLogic->hTaskCache, pTaskState);
    17991798    }
    18001799    else
     
    19881987
    19891988    /* Add task to the cache. */
    1990     rc = RTCacheInsert(pBusLogic->pTaskCache, pTaskState);
    1991     AssertMsgRC(rc, ("Inserting task state into cache failed rc=%Rrc\n", rc));
    1992 
     1989    RTMemCacheFree(pBusLogic->hTaskCache, pTaskState);
    19931990    return VINF_SUCCESS;
    19941991}
     
    20062003    int rc;
    20072004
    2008     rc = RTCacheRequest(pBusLogic->pTaskCache, (void **)&pTaskState);
     2005    rc = RTMemCacheAllocEx(pBusLogic->hTaskCache, (void **)&pTaskState);
    20092006    AssertMsgReturn(RT_SUCCESS(rc) && (pTaskState != NULL), ("Failed to get task state from cache\n"), rc);
    20102007
     
    20792076                                        BUSLOGIC_MAILBOX_INCOMING_COMPLETION_WITH_ERROR);
    20802077
    2081             rc = RTCacheInsert(pBusLogic->pTaskCache, pTaskState);
    2082             AssertMsgRC(rc, ("Failed to insert task state into cache rc=%Rrc\n", rc));
     2078            RTMemCacheFree(pBusLogic->hTaskCache, pTaskState);
    20832079        }
    20842080        else
     
    25102506    PDMDEV_CHECK_VERSIONS_RETURN_QUIET(pDevIns);
    25112507
    2512     int rc = RTCacheDestroy(pThis->pTaskCache);
     2508    int rc = RTMemCacheDestroy(pThis->hTaskCache);
    25132509    AssertMsgRC(rc, ("Destroying task cache failed rc=%Rrc\n", rc));
    25142510
     
    25912587
    25922588    /* Initialize task cache. */
    2593     rc = RTCacheCreate(&pThis->pTaskCache, 0 /* unlimited */, sizeof(BUSLOGICTASKSTATE), RTOBJCACHE_PROTECT_INSERT);
     2589    rc = RTMemCacheCreate(&pThis->hTaskCache, sizeof(BUSLOGICTASKSTATE), 0, UINT32_MAX,
     2590                          NULL, NULL, NULL, 0);
    25942591    if (RT_FAILURE(rc))
    25952592        return PDMDEV_SET_ERROR(pDevIns, rc,
  • trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp

    r26173 r27302  
    3030#include <iprt/string.h>
    3131#ifdef IN_RING3
    32 # include <iprt/cache.h>
     32# include <iprt/memcache.h>
    3333# include <iprt/mem.h>
    3434# include <iprt/param.h>
     
    270270    VBOXSCSI                       VBoxSCSI;
    271271    /** Cache for allocated tasks. */
    272     R3PTRTYPE(PRTOBJCACHE)         pTaskCache;
     272    R3PTRTYPE(RTMEMCACHE)          hTaskCache;
    273273    /** Status LUN: The base interface. */
    274274    PDMIBASE                       IBase;
     
    19401940
    19411941    lsilogicFinishAddressReply(pLsiLogic, &pTaskState->IOCReply, false);
    1942     RTCacheInsert(pLsiLogic->pTaskCache, pTaskState);
     1942    RTMemCacheFree(pLsiLogic->hTaskCache, pTaskState);
    19431943
    19441944    return rc;
     
    20122012    }
    20132013
    2014     RTCacheInsert(pLsiLogic->pTaskCache, pTaskState);
     2014    RTMemCacheFree(pLsiLogic->hTaskCache, pTaskState);
    20152015
    20162016    return VINF_SUCCESS;
     
    33733373
    33743374        /* Get new task state. */
    3375         rc = RTCacheRequest(pLsiLogic->pTaskCache, (void **)&pTaskState);
     3375        rc = RTMemCacheAllocEx(pLsiLogic->hTaskCache, (void **)&pTaskState);
    33763376        AssertRC(rc);
    33773377
     
    34383438                rc = lsilogicProcessMessageRequest(pLsiLogic, &pTaskState->GuestRequest.Header, &Reply);
    34393439                AssertRC(rc);
    3440                 RTCacheInsert(pLsiLogic->pTaskCache, pTaskState);
     3440                RTMemCacheFree(pLsiLogic->hTaskCache, pTaskState);
    34413441            }
    34423442
     
    35143514    uint32_t           uTargetDevice;
    35153515
    3516     rc = RTCacheRequest(pLsiLogic->pTaskCache, (void **)&pTaskState);
     3516    rc = RTMemCacheAllocEx(pLsiLogic->hTaskCache, (void **)&pTaskState);
    35173517    AssertMsgRCReturn(rc, ("Getting task from cache failed rc=%Rrc\n", rc), rc);
    35183518
     
    35543554    AssertMsgRCReturn(rc, ("Finishing BIOS SCSI request failed rc=%Rrc\n", rc), rc);
    35553555
    3556     rc = RTCacheInsert(pLsiLogic->pTaskCache, pTaskState);
    3557     AssertMsgRCReturn(rc, ("Getting task from cache failed rc=%Rrc\n", rc), rc);
    3558 
     3556    RTMemCacheFree(pLsiLogic->hTaskCache, pTaskState);
    35593557    return rc;
    35603558}
     
    43644362    /* Destroy task cache. */
    43654363    int rc = VINF_SUCCESS;
    4366     if (pThis->pTaskCache)
    4367         rc = RTCacheDestroy(pThis->pTaskCache);
     4364    if (pThis->hTaskCache != NIL_RTMEMCACHE)
     4365        rc = RTMemCacheDestroy(pThis->hTaskCache);
    43684366
    43694367    lsilogicConfigurationPagesFree(pThis);
     
    45524550     * Allocate task cache.
    45534551     */
    4554     rc = RTCacheCreate(&pThis->pTaskCache, 0, sizeof(LSILOGICTASKSTATE), RTOBJCACHE_PROTECT_INSERT);
     4552    rc = RTMemCacheCreate(&pThis->hTaskCache, sizeof(LSILOGICTASKSTATE), 0, UINT32_MAX,
     4553                          NULL, NULL, NULL, 0);
    45554554    if (RT_FAILURE(rc))
    45564555        return PDMDEV_SET_ERROR(pDevIns, rc,
  • trunk/src/VBox/Devices/Storage/DrvVD.cpp

    r27232 r27302  
    3333#include <iprt/file.h>
    3434#include <iprt/string.h>
    35 #include <iprt/cache.h>
    3635#include <iprt/tcp.h>
    3736#include <iprt/semaphore.h>
     
    12031202                break;
    12041203            }
    1205             rc = CFGMR3QueryBoolDef(pCurNode, "UseNewIo", &fUseNewIo, false);
     1204            rc = CFGMR3QueryBoolDef(pCurNode, "UseNewIo", &fUseNewIo, true);
    12061205            if (RT_FAILURE(rc))
    12071206            {
  • trunk/src/VBox/Devices/testcase/tstDeviceStructSizeRC.cpp

    r27002 r27302  
    14521452    GEN_CHECK_OFF(BUSLOGIC, pNotifierQueueR0);
    14531453    GEN_CHECK_OFF(BUSLOGIC, pNotifierQueueRC);
    1454     GEN_CHECK_OFF(BUSLOGIC, pTaskCache);
     1454    GEN_CHECK_OFF(BUSLOGIC, hTaskCache);
    14551455    GEN_CHECK_OFF(BUSLOGIC, VBoxSCSI);
    14561456    GEN_CHECK_OFF(BUSLOGIC, aDeviceStates);
     
    15201520    GEN_CHECK_OFF(LSILOGICSCSI, enmCtrlType);
    15211521    GEN_CHECK_OFF(LSILOGICSCSI, VBoxSCSI);
    1522     GEN_CHECK_OFF(LSILOGICSCSI, pTaskCache);
     1522    GEN_CHECK_OFF(LSILOGICSCSI, hTaskCache);
    15231523    GEN_CHECK_OFF(LSILOGICSCSI, IBase);
    15241524    GEN_CHECK_OFF(LSILOGICSCSI, ILeds);
  • trunk/src/VBox/Runtime/Makefile.kmk

    r27033 r27302  
    258258        common/misc/assert.cpp \
    259259        common/misc/buildconfig.cpp \
    260         common/misc/cache.cpp \
    261260        common/misc/cidr.cpp \
    262261        common/misc/getopt.cpp \
  • trunk/src/VBox/Runtime/testcase/tstRTMemCache.cpp

    r26484 r27302  
    3636#include <iprt/asm.h>
    3737#include <iprt/err.h>
    38 #include <iprt/cache.h>
    3938#include <iprt/initterm.h>
    4039#include <iprt/mem.h>
     
    5857    uint32_t            cbObject;
    5958    bool                fUseCache;
    60     bool                fUseOldCache;
    6159} TST3THREAD, *PTST3THREAD;
    6260
     
    6967/** Global mem cache handle for use in some of the testcases. */
    7068static RTMEMCACHE           g_hMemCache;
    71 /** For testcase 3. */
    72 static PRTOBJCACHE          g_pOldCacheTst3;
    7369/** Stop indicator for tst3 threads.  */
    7470static bool volatile        g_fTst3Stop;
     
    235231        }
    236232    }
    237     else if (pThread->fUseOldCache)
    238     {
    239         while (!g_fTst3Stop)
    240         {
    241             void *apv[64];
    242 
    243             for (unsigned i = 0; i < RT_ELEMENTS(apv); i++)
    244             {
    245                 apv[i] = NULL;
    246                 RTTEST_CHECK_RC_OK(g_hTest, RTCacheRequest(g_pOldCacheTst3, &apv[i]));
    247             }
    248 
    249             for (unsigned i = 0; i < RT_ELEMENTS(apv); i++)
    250                 RTCacheInsert(g_pOldCacheTst3, apv[i]);
    251 
    252             cIterations += RT_ELEMENTS(apv);
    253         }
    254     }
    255233    else
    256234    {
     
    284262    RTTestISubF("Benchmark - %u threads, %u bytes, %u secs, %s", cThreads, cbObject, cSecs,
    285263                iMethod == 0 ? "RTMemCache"
    286                 : iMethod == 1 ? "RTCache"
    287264                : "RTMemAlloc");
    288265
     
    292269     */
    293270    RTTESTI_CHECK_RC_RETV(RTMemCacheCreate(&g_hMemCache, cbObject, 0 /*cbAlignment*/, UINT32_MAX, NULL, NULL, NULL, 0 /*fFlags*/), VINF_SUCCESS);
    294     RTTESTI_CHECK_RC_RETV(RTCacheCreate(&g_pOldCacheTst3, 0, cbObject, RTOBJCACHE_PROTECT_INSERT | RTOBJCACHE_PROTECT_REQUEST), VINF_SUCCESS);
    295271
    296272    RTSEMEVENTMULTI hEvt;
     
    306282        aThreads[i].cIterations = 0;
    307283        aThreads[i].fUseCache   = iMethod == 0;
    308         aThreads[i].fUseOldCache= iMethod == 1;
    309284        aThreads[i].cbObject    = cbObject;
    310285        aThreads[i].hEvt        = hEvt;
     
    338313
    339314    /* clean up */
    340     RTTESTI_CHECK_RC(RTCacheDestroy(g_pOldCacheTst3), VINF_SUCCESS);
    341315    RTTESTI_CHECK_RC(RTMemCacheDestroy(g_hMemCache), VINF_SUCCESS);
    342316    RTTESTI_CHECK_RC_OK(RTSemEventMultiDestroy(hEvt));
     
    347321    tst3(cThreads, cbObject, 0, cSecs);
    348322    tst3(cThreads, cbObject, 1, cSecs);
    349     tst3(cThreads, cbObject, 2, cSecs);
    350323}
    351324
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette