Merge pull request #4503 from amshinde/multi-queue-block

block: Leverage multiqueue for virtio-block
This commit is contained in:
Fabiano Fidêncio
2022-06-23 12:17:11 +02:00
committed by GitHub
2 changed files with 8 additions and 1 deletions

View File

@@ -753,6 +753,11 @@ func (clh *cloudHypervisor) hotplugAddBlockDevice(drive *config.BlockDrive) erro
clhDisk.Readonly = &drive.ReadOnly clhDisk.Readonly = &drive.ReadOnly
clhDisk.VhostUser = func(b bool) *bool { return &b }(false) clhDisk.VhostUser = func(b bool) *bool { return &b }(false)
queues := int32(clh.config.NumVCPUs)
queueSize := int32(1024)
clhDisk.NumQueues = &queues
clhDisk.QueueSize = &queueSize
diskRateLimiterConfig := clh.getDiskRateLimiterConfig() diskRateLimiterConfig := clh.getDiskRateLimiterConfig()
if diskRateLimiterConfig != nil { if diskRateLimiterConfig != nil {
clhDisk.SetRateLimiterConfig(*diskRateLimiterConfig) clhDisk.SetRateLimiterConfig(*diskRateLimiterConfig)

View File

@@ -1364,7 +1364,9 @@ func (q *qemu) hotplugAddBlockDevice(ctx context.Context, drive *config.BlockDri
return err return err
} }
if err = q.qmpMonitorCh.qmp.ExecutePCIDeviceAdd(q.qmpMonitorCh.ctx, drive.ID, devID, driver, addr, bridge.ID, romFile, 0, true, defaultDisableModern); err != nil { queues := int(q.config.NumVCPUs)
if err = q.qmpMonitorCh.qmp.ExecutePCIDeviceAdd(q.qmpMonitorCh.ctx, drive.ID, devID, driver, addr, bridge.ID, romFile, queues, true, defaultDisableModern); err != nil {
return err return err
} }
case q.config.BlockDeviceDriver == config.VirtioBlockCCW: case q.config.BlockDeviceDriver == config.VirtioBlockCCW: