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.

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

Lint
Lint Skipped
Unit
Unit Tests Skipped

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
1052

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

1926

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.