VirtualBox

Changeset 75500 in vbox for trunk/src/VBox/HostServices


Ignore:
Timestamp:
Nov 16, 2018 1:24:39 AM (6 years ago)
Author:
vboxsync
Message:

VMMDev,Main,HostServices: More profiling of HGCM guest call processing.

Location:
trunk/src/VBox/HostServices
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/GuestControl/service.cpp

    r73511 r75500  
    974974                                      uint32_t u32Function,
    975975                                      uint32_t cParms,
    976                                       VBOXHGCMSVCPARM paParms[])
     976                                      VBOXHGCMSVCPARM paParms[],
     977                                      uint64_t tsArrival)
    977978    {
    978979        AssertLogRelReturnVoid(VALID_PTR(pvService));
    979980        SELF *pSelf = reinterpret_cast<SELF *>(pvService);
    980981        AssertPtrReturnVoid(pSelf);
     982        RT_NOREF_PV(tsArrival);
    981983        pSelf->call(callHandle, u32ClientID, pvClient, u32Function, cParms, paParms);
    982984    }
  • trunk/src/VBox/HostServices/GuestControl/testcase/tstGuestControlSvc.cpp

    r69500 r75500  
    211211        aParmsGuest[1].setUInt32(0 /* Parameters */);
    212212        pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    213                         GUEST_MSG_WAIT, 2, &aParmsGuest[0]);
     213                        GUEST_MSG_WAIT, 2, &aParmsGuest[0], 0);
    214214        RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VINF_SUCCESS, callHandle.rc);
    215215
  • trunk/src/VBox/HostServices/GuestProperties/service.cpp

    r75498 r75500  
    353353                                      uint32_t u32Function,
    354354                                      uint32_t cParms,
    355                                       VBOXHGCMSVCPARM paParms[])
     355                                      VBOXHGCMSVCPARM paParms[],
     356                                      uint64_t tsArrival)
    356357    {
    357358        AssertLogRelReturnVoid(VALID_PTR(pvService));
     
    360361        pSelf->call(callHandle, u32ClientID, pvClient, u32Function, cParms, paParms);
    361362        LogFlowFunc(("returning\n"));
     363        RT_NOREF_PV(tsArrival);
    362364    }
    363365
  • trunk/src/VBox/HostServices/GuestProperties/testcase/tstGuestPropSvc.cpp

    r70828 r75500  
    424424    else
    425425        pTable->pfnCall(pTable->pvService, &callHandle, 0, NULL, command,
    426                         useSetProp ? 3 : 2, aParms);
     426                        useSetProp ? 3 : 2, aParms, 0);
    427427    return callHandle.rc;
    428428}
     
    509509        callHandle.rc = pTable->pfnHostCall(pTable->pvService, command, 1, aParms);
    510510    else
    511         pTable->pfnCall(pTable->pvService, &callHandle, 0, NULL, command, 1, aParms);
     511        pTable->pfnCall(pTable->pvService, &callHandle, 0, NULL, command, 1, aParms, 0);
    512512    return callHandle.rc;
    513513}
     
    703703        aParms[1].setUInt64(1);
    704704        aParms[2].setPointer(pvBuf, cbBuf);
    705         pTable->pfnCall(pTable->pvService, &callHandle, 0, NULL, GUEST_PROP_FN_GET_NOTIFICATION, 4, aParms);
     705        pTable->pfnCall(pTable->pvService, &callHandle, 0, NULL, GUEST_PROP_FN_GET_NOTIFICATION, 4, aParms, 0);
    706706
    707707        if (   callHandle.rc != VERR_BUFFER_OVERFLOW
     
    729729        aParms[1].setUInt64(u64Timestamp);
    730730        aParms[2].setPointer(pvBuf, cbBuf);
    731         pTable->pfnCall(pTable->pvService, &callHandle, 0, NULL, GUEST_PROP_FN_GET_NOTIFICATION, 4, aParms);
     731        pTable->pfnCall(pTable->pvService, &callHandle, 0, NULL, GUEST_PROP_FN_GET_NOTIFICATION, 4, aParms, 0);
    732732        if (   RT_FAILURE(callHandle.rc)
    733733            || (i == 0 && callHandle.rc != VWRN_NOT_FOUND)
     
    770770    g_AsyncNotification.callHandle.rc = VINF_HGCM_ASYNC_EXECUTE;
    771771    pTable->pfnCall(pTable->pvService, &g_AsyncNotification.callHandle, 0, NULL,
    772                     GUEST_PROP_FN_GET_NOTIFICATION, 4, g_AsyncNotification.aParms);
     772                    GUEST_PROP_FN_GET_NOTIFICATION, 4, g_AsyncNotification.aParms, 0);
    773773    if (RT_FAILURE(g_AsyncNotification.callHandle.rc))
    774774        RTTestIFailed("GET_NOTIFICATION call failed, rc=%Rrc.", g_AsyncNotification.callHandle.rc);
  • trunk/src/VBox/HostServices/HostChannel/service.cpp

    r69500 r75500  
    206206                                  uint32_t u32Function,
    207207                                  uint32_t cParms,
    208                                   VBOXHGCMSVCPARM paParms[])
    209 {
    210     NOREF(pvService);
     208                                  VBOXHGCMSVCPARM paParms[],
     209                                  uint64_t tsArrival)
     210{
     211    RT_NOREF(pvService, tsArrival);
    211212
    212213    int rc = VINF_SUCCESS;
  • trunk/src/VBox/HostServices/SharedClipboard/service.cpp

    r75498 r75500  
    406406                                   uint32_t u32Function,
    407407                                   uint32_t cParms,
    408                                    VBOXHGCMSVCPARM paParms[])
    409 {
     408                                   VBOXHGCMSVCPARM paParms[],
     409                                   uint64_t tsArrival)
     410{
     411    RT_NOREF_PV(tsArrival);
    410412    int rc = VINF_SUCCESS;
    411413
  • trunk/src/VBox/HostServices/SharedClipboard/testcase/tstClipboardServiceHost.cpp

    r69658 r75500  
    118118    call.rc = VERR_TRY_AGAIN;
    119119    table.pfnCall(NULL, &call, 1 /* clientId */, &g_Client, VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG,
    120                   2, parms);
     120                  2, parms, 0);
    121121    RTTESTI_CHECK_RC(call.rc, VERR_TRY_AGAIN);  /* This should get updated only when the guest call completes. */
    122122    vboxSvcClipboardReportMsg (&g_Client, VBOX_SHARED_CLIPBOARD_HOST_MSG_READ_DATA,
     
    127127    call.rc = VERR_TRY_AGAIN;
    128128    table.pfnCall(NULL, &call, 1 /* clientId */, &g_Client, VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG,
    129                   2, parms);
     129                  2, parms, 0);
    130130    RTTESTI_CHECK_RC(call.rc, VERR_TRY_AGAIN);  /* This call should not complete yet. */
    131131
     
    138138    call.rc = VERR_TRY_AGAIN;
    139139    table.pfnCall(NULL, &call, 1 /* clientId */, &g_Client, VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG,
    140                   2, parms);
     140                  2, parms, 0);
    141141    RTTESTI_CHECK(parms[0].u.uint32 == VBOX_SHARED_CLIPBOARD_HOST_MSG_READ_DATA);
    142142    RTTESTI_CHECK(parms[1].u.uint32 == VBOX_SHARED_CLIPBOARD_FMT_HTML);
     
    144144    call.rc = VERR_TRY_AGAIN;
    145145    table.pfnCall(NULL, &call, 1 /* clientId */, &g_Client, VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG,
    146                   2, parms);
     146                  2, parms, 0);
    147147    RTTESTI_CHECK_RC(call.rc, VERR_TRY_AGAIN);  /* This call should not complete yet. */
    148148
     
    153153    call.rc = VERR_TRY_AGAIN;
    154154    table.pfnCall(NULL, &call, 1 /* clientId */, &g_Client, VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG,
    155                   2, parms);
     155                  2, parms, 0);
    156156    RTTESTI_CHECK_RC(call.rc, VERR_TRY_AGAIN);  /* This should get updated only when the guest call completes. */
    157157    vboxSvcClipboardReportMsg (&g_Client, VBOX_SHARED_CLIPBOARD_HOST_MSG_READ_DATA,
     
    162162    call.rc = VERR_TRY_AGAIN;
    163163    table.pfnCall(NULL, &call, 1 /* clientId */, &g_Client, VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG,
    164                   2, parms);
     164                  2, parms, 0);
    165165    RTTESTI_CHECK(parms[0].u.uint32 == VBOX_SHARED_CLIPBOARD_HOST_MSG_READ_DATA);
    166166    RTTESTI_CHECK(parms[1].u.uint32 == VBOX_SHARED_CLIPBOARD_FMT_HTML);
     
    168168    call.rc = VERR_TRY_AGAIN;
    169169    table.pfnCall(NULL, &call, 1 /* clientId */, &g_Client, VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG,
    170                   2, parms);
     170                  2, parms, 0);
    171171    RTTESTI_CHECK_RC(call.rc, VERR_TRY_AGAIN);  /* This call should not complete yet. */
    172172
     
    179179    call.rc = VERR_TRY_AGAIN;
    180180    table.pfnCall(NULL, &call, 1 /* clientId */, &g_Client, VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG,
    181                   2, parms);
     181                  2, parms, 0);
    182182    RTTESTI_CHECK(parms[0].u.uint32 == VBOX_SHARED_CLIPBOARD_HOST_MSG_READ_DATA);
    183183    RTTESTI_CHECK(parms[1].u.uint32 == VBOX_SHARED_CLIPBOARD_FMT_UNICODETEXT);
     
    185185    call.rc = VERR_TRY_AGAIN;
    186186    table.pfnCall(NULL, &call, 1 /* clientId */, &g_Client, VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG,
    187                   2, parms);
     187                  2, parms, 0);
    188188    RTTESTI_CHECK(parms[0].u.uint32 == VBOX_SHARED_CLIPBOARD_HOST_MSG_READ_DATA);
    189189    RTTESTI_CHECK(parms[1].u.uint32 == VBOX_SHARED_CLIPBOARD_FMT_HTML);
     
    191191    call.rc = VERR_TRY_AGAIN;
    192192    table.pfnCall(NULL, &call, 1 /* clientId */, &g_Client, VBOX_SHARED_CLIPBOARD_FN_GET_HOST_MSG,
    193                   2, parms);
     193                  2, parms, 0);
    194194    RTTESTI_CHECK_RC(call.rc, VERR_TRY_AGAIN);  /* This call should not complete yet. */
    195195    table.pfnUnload(NULL);
  • trunk/src/VBox/HostServices/SharedFolders/service.cpp

    r75498 r75500  
    9898static STAMPROFILE g_StatCancelMappingsChangesWait;
    9999static STAMPROFILE g_StatUnknown;
     100static STAMPROFILE g_StatMsgStage1;
    100101/** @} */
    101102
     
    398399}
    399400
    400 static DECLCALLBACK(void) svcCall (void *, VBOXHGCMCALLHANDLE callHandle, uint32_t u32ClientID,
    401                                    void *pvClient, uint32_t u32Function, uint32_t cParms, VBOXHGCMSVCPARM paParms[])
     401static DECLCALLBACK(void) svcCall (void *, VBOXHGCMCALLHANDLE callHandle, uint32_t u32ClientID, void *pvClient,
     402                                   uint32_t u32Function, uint32_t cParms, VBOXHGCMSVCPARM paParms[], uint64_t tsArrival)
    402403{
    403     RT_NOREF1(u32ClientID);
     404    RT_NOREF(u32ClientID, tsArrival);
    404405#ifndef VBOX_WITHOUT_RELEASE_STATISTICS
    405406    uint64_t tsStart;
    406407    STAM_GET_TS(tsStart);
     408    STAM_REL_PROFILE_ADD_PERIOD(&g_StatMsgStage1, tsStart - tsArrival);
    407409#endif
    408410    Log(("SharedFolders host service: svcCall: u32ClientID = %u, fn = %u, cParms = %u, pparms = %p\n", u32ClientID, u32Function, cParms, paParms));
     
    18041806             HGCMSvcHlpStamRegister(g_pHelpers, &g_StatCancelMappingsChangesWait, STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_CALLS, "SHFL_FN_CANCEL_MAPPINGS_CHANGES_WAITS",     "/HGCM/VBoxSharedFolders/FnCancelMappingsChangesWaits");
    18051807             HGCMSvcHlpStamRegister(g_pHelpers, &g_StatUnknown,                   STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_CALLS, "SHFL_FN_???",                               "/HGCM/VBoxSharedFolders/FnUnknown");
     1808             HGCMSvcHlpStamRegister(g_pHelpers, &g_StatMsgStage1,                 STAMTYPE_PROFILE, STAMVISIBILITY_ALWAYS, STAMUNIT_CALLS, "Time from VMMDev arrival to worker thread.","/HGCM/VBoxSharedFolders/MsgStage1");
    18061809        }
    18071810    }
  • trunk/src/VBox/HostServices/SharedFolders/testcase/tstSharedFolderService.cpp

    r75380 r75500  
    645645    psvcTable->pfnCall(psvcTable->pvService, &callHandle, 0,
    646646                       psvcTable->pvService, SHFL_FN_MAP_FOLDER,
    647                        SHFL_CPARMS_MAP_FOLDER, aParms);
     647                       SHFL_CPARMS_MAP_FOLDER, aParms, 0);
    648648    AssertReleaseRC(callHandle.rc);
    649649    return aParms[1].u.uint32;
     
    665665    psvcTable->pfnCall(psvcTable->pvService, &callHandle, 0,
    666666                       psvcTable->pvService, SHFL_FN_UNMAP_FOLDER,
    667                        SHFL_CPARMS_UNMAP_FOLDER, aParms);
     667                       SHFL_CPARMS_UNMAP_FOLDER, aParms, 0);
    668668    AssertReleaseRC(callHandle.rc);
    669669    fillTestShflString(&FolderName, pcszFolderName);
     
    693693    psvcTable->pfnCall(psvcTable->pvService, &callHandle, 0,
    694694                       psvcTable->pvService, SHFL_FN_CREATE,
    695                        RT_ELEMENTS(aParms), aParms);
     695                       RT_ELEMENTS(aParms), aParms, 0);
    696696    if (RT_FAILURE(callHandle.rc))
    697697        return callHandle.rc;
     
    717717    psvcTable->pfnCall(psvcTable->pvService, &callHandle, 0,
    718718                       psvcTable->pvService, SHFL_FN_READ,
    719                        RT_ELEMENTS(aParms), aParms);
     719                       RT_ELEMENTS(aParms), aParms, 0);
    720720    if (pcbRead)
    721721        *pcbRead = aParms[3].u.uint32;
     
    737737    psvcTable->pfnCall(psvcTable->pvService, &callHandle, 0,
    738738                       psvcTable->pvService, SHFL_FN_WRITE,
    739                        RT_ELEMENTS(aParms), aParms);
     739                       RT_ELEMENTS(aParms), aParms, 0);
    740740    if (pcbWritten)
    741741        *pcbWritten = aParms[3].u.uint32;
     
    753753    psvcTable->pfnCall(psvcTable->pvService, &callHandle, 0,
    754754                       psvcTable->pvService, SHFL_FN_FLUSH,
    755                        SHFL_CPARMS_FLUSH, aParms);
     755                       SHFL_CPARMS_FLUSH, aParms, 0);
    756756    return callHandle.rc;
    757757}
     
    783783    psvcTable->pfnCall(psvcTable->pvService, &callHandle, 0,
    784784                       psvcTable->pvService, SHFL_FN_LIST,
    785                        RT_ELEMENTS(aParms), aParms);
     785                       RT_ELEMENTS(aParms), aParms, 0);
    786786    if (pcFiles)
    787787        *pcFiles = aParms[7].u.uint32;
     
    803803    psvcTable->pfnCall(psvcTable->pvService, &callHandle, 0,
    804804                       psvcTable->pvService, SHFL_FN_INFORMATION,
    805                        RT_ELEMENTS(aParms), aParms);
     805                       RT_ELEMENTS(aParms), aParms, 0);
    806806    return callHandle.rc;
    807807}
     
    821821    psvcTable->pfnCall(psvcTable->pvService, &callHandle, 0,
    822822                       psvcTable->pvService, SHFL_FN_LOCK,
    823                        RT_ELEMENTS(aParms), aParms);
     823                       RT_ELEMENTS(aParms), aParms, 0);
    824824    return callHandle.rc;
    825825}
  • trunk/src/VBox/HostServices/SharedOpenGL/crserver/crservice.cpp

    r69500 r75500  
    414414}
    415415
    416 static DECLCALLBACK(void) svcCall (void *, VBOXHGCMCALLHANDLE callHandle, uint32_t u32ClientID, void *pvClient, uint32_t u32Function, uint32_t cParms, VBOXHGCMSVCPARM paParms[])
     416static DECLCALLBACK(void) svcCall (void *, VBOXHGCMCALLHANDLE callHandle, uint32_t u32ClientID, void *pvClient,
     417                                   uint32_t u32Function, uint32_t cParms, VBOXHGCMSVCPARM paParms[], uint64_t tsArrival)
    417418{
     419    RT_NOREF(pvClient, tsArrival);
    418420    int rc = VINF_SUCCESS;
    419 
    420     NOREF(pvClient);
    421421
    422422    if (g_u32fCrHgcmDisabled)
Note: See TracChangeset for help on using the changeset viewer.

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