Page MenuHomeFreeBSD

hyperv/stor: Refactor storvsc by applying BUS_DMA for CAM_DATA_BIO
ClosedPublic

Authored by honzhan_microsoft.com on Jul 12 2016, 8:38 AM.
Tags
None
Referenced Files
F81554922: D7195.diff
Thu, Apr 18, 12:03 AM
Unknown Object (File)
Tue, Mar 19, 10:24 PM
Unknown Object (File)
Tue, Mar 19, 10:24 PM
Unknown Object (File)
Mar 18 2024, 12:04 PM
Unknown Object (File)
Mar 16 2024, 7:12 AM
Unknown Object (File)
Mar 16 2024, 7:12 AM
Unknown Object (File)
Mar 16 2024, 7:12 AM
Unknown Object (File)
Mar 16 2024, 7:12 AM

Details

Summary

This fix targets to clean the storage code with BUS_DMA interface.
In addition, this can improve the performance 1.35X ~ 2.35x for FIO on hyperv.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 4485
Build 4536: arc lint + arc unit

Event Timeline

honzhan_microsoft.com retitled this revision from to hyperv/stor: Refactor storvsc by applying BUS_DMA for CAM_DATA_BIO.
honzhan_microsoft.com updated this object.
sepherosa_gmail.com edited edge metadata.

Look fine. Some minors.

sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
1048

Destroy the map; though it should be no-op in this case. And the maps could also be destroyed on storvsc_detach path.

1922

Pass BUS_DMA_NOWAIT as the flag, since the code here assumes the direct running of the callback. And check the return value of bus_dmamap_load_ccb, even though it should not fail here, since no bounce pages will be needed; better safe than sorry.

This revision is now accepted and ready to land.Jul 12 2016, 9:20 AM
This revision now requires review to proceed.Jul 13 2016, 5:02 AM
This revision is now accepted and ready to land.Jul 13 2016, 8:42 AM
This revision was automatically updated to reflect the committed changes.