Browse Prior Art Database

Dynamically tuning the number of I/O queues in HBA based on lock contention in the device driver.

IP.com Disclosure Number: IPCOM000249202D
Publication Date: 2017-Feb-09
Document File: 2 page(s) / 22K

Publishing Venue

The IP.com Prior Art Database

Abstract

A single I/O queue in a host bus adapter creates a performance bottle neck. All modern HBAs(host bus adapter) support configuring multiple I/O queues such that I/O can be run in parallel to maximize through put. However, having I/O queues more than required can result in per-slot resource crunch. Disclosed is a method to adjust number of I/O queues optimally such that lock contention on the I/O queue is minimized.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 52% of the total text.

1

Dynamically tuning the number of I /O queues in HBA based on lock contention in the device driver.

Disclosed is a method to dynamically increase or reduce the number of I/O queues of a HBA. The PCIe adapters (for e.g Fibre Channel HBAs , SCSI HBA or NIC adapters) support multiple I/O queues. Enabling multiple I/O queues helps running I/O in parallel across CPUs so that bandwidth is efficiently utilized, I/Os per second (IOPS) is maximized and I/O latency is reduced.

When there is only one I/O queue, all the threads issuing the I/O contend on the same I/O queue lock. Hence there is contention for the I/O queue lock and creates a bottle neck. However, having more number of I/O queues poses its own challenges like: The per function resources are limited especially in SRIOV(Single Root I/O Virtualization) virtual functions. Since all virtual functions have to share the PCI slot resources, there is a chance that having more number of I/O queues reduce the share of resources of each queue. This may lead to either failure of configuration of device or no resource failures during runtime I/O.

An optimal number of I/O queues is always desirable. A method is proposed to configure optimal number of queues dynamically without effecting the I/O.

Disclosed is a method to dynamically adjust the number of configured I/O queues based on measuring the lock contention on the I/O queues. The advantage is the number of I/O queues are optimal to achieve the optimal performance. The core idea is to have instrumentation in the...