VirtualBox

Changeset 77421 in vbox for trunk/src


Ignore:
Timestamp:
Feb 22, 2019 2:27:06 AM (6 years ago)
Author:
vboxsync
Message:

linux/vboxsf: Better use VbglR0SfHostReqReadPgLst in sf_readpage. FsPerf indicates that it's lightly faster here. bugref:9172

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Additions/linux/sharedfolders/regops.c

    r77420 r77421  
    11101110                    uint8_t             *pbMapped = (g_fHostFeatures & VMMDEV_HVF_HGCM_CONTIGUOUS_PAGE_LIST)
    11111111                                                  ? NULL : (uint8_t *)kmap(page);
    1112                     int vrc = VbglR0SfHostReqReadContig(sf_g->map.root,
    1113                                                         pReq,
    1114                                                         sf_r->handle,
    1115                                                         (uint64_t)page->index << PAGE_SHIFT,
    1116                                                         PAGE_SIZE,
    1117                                                         pbMapped,
    1118                                                         page_to_phys(page));
    1119                     uint32_t cbRead = pReq->Parms.cb32Read.u.value32;
     1112                    uint32_t             cbRead;
     1113                    int                  vrc;
     1114
     1115                    pReq->PgLst.offFirstPage = 0;
     1116                    pReq->PgLst.aPages[0]    = page_to_phys(page);
     1117                    vrc = VbglR0SfHostReqReadPgLst(sf_g->map.root,
     1118                                                   pReq,
     1119                                                   sf_r->handle,
     1120                                                   (uint64_t)page->index << PAGE_SHIFT,
     1121                                                   PAGE_SIZE,
     1122                                                   1 /*cPages*/);
     1123
     1124                    cbRead = pReq->Parms.cb32Read.u.value32;
    11201125                    AssertStmt(cbRead <= PAGE_SIZE, cbRead = PAGE_SIZE);
    11211126                    VbglR0PhysHeapFree(pReq);
     
    11301135                                    /** @todo truncate the inode file size? */
    11311136                            }
     1137
    11321138                            flush_dcache_page(page);
    11331139                            SetPageUptodate(page);
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