Method and system for infiniband host channel adaptor quality of service
First Claim
1. A method for allocating resources of a host channel adapter, comprising:
- receiving, by the host channel adapter from a virtual machine manager on a host, a first resource allocation request;
identifying, by the host channel adapter, an underlying function referenced in the first resource allocation request, wherein the underlying function corresponds to a single virtual machine located on the host;
determining, by the host channel adapter, that the first resource allocation request specifies a number of physical collect buffers (PCBs) allocated to the underlying function;
allocating, by the host channel adapter, the number of PCBs to the underlying function by storing the number in a control and status register (CSR);
determining, by the host channel adapter, that the first resource allocation request specifies a number of virtual collect buffers (VCBs) allocated to the underlying function;
allocating, by the host channel adapter, the number of VCBs to the underlying function by storing a base address register (BAR) in the CSR;
receiving, by the host channel adapter, first command data for a first command from the single virtual machine for sending packets on a network, wherein the first command data specifies an address of a VCB of the number of VCBs allocated to the single virtual machine;
determining, using the CSR, that the underlying function has in use at least the number of PCBs when the first command data is received; and
dropping the first command data in the first command based on the underlying function having in use at least the number of PCBs.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for allocating resources of a host channel adapter includes the host channel adapter identifying an underlying function referenced in the first resource allocation request received from a virtual machine manager, determining that the first resource allocation request specifies a number of physical collect buffers (PCBs) allocated to the underlying function, allocating the number of PCBs to the underlying function, determining that the first resource allocation request specifies a number of virtual collect buffers (VCBs) allocated to the underlying function, and allocating the number of VCBs to the underlying function. The host channel adapter further receives command data for a command from the single virtual machine, determines that the underlying function has in use at least the number of PCBs when the command data is received, and drops the command data in the first command based on the underlying function having in use at least the number of PCBs.
64 Citations
20 Claims
-
1. A method for allocating resources of a host channel adapter, comprising:
-
receiving, by the host channel adapter from a virtual machine manager on a host, a first resource allocation request; identifying, by the host channel adapter, an underlying function referenced in the first resource allocation request, wherein the underlying function corresponds to a single virtual machine located on the host; determining, by the host channel adapter, that the first resource allocation request specifies a number of physical collect buffers (PCBs) allocated to the underlying function; allocating, by the host channel adapter, the number of PCBs to the underlying function by storing the number in a control and status register (CSR); determining, by the host channel adapter, that the first resource allocation request specifies a number of virtual collect buffers (VCBs) allocated to the underlying function; allocating, by the host channel adapter, the number of VCBs to the underlying function by storing a base address register (BAR) in the CSR; receiving, by the host channel adapter, first command data for a first command from the single virtual machine for sending packets on a network, wherein the first command data specifies an address of a VCB of the number of VCBs allocated to the single virtual machine; determining, using the CSR, that the underlying function has in use at least the number of PCBs when the first command data is received; and dropping the first command data in the first command based on the underlying function having in use at least the number of PCBs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A host channel adapter comprising:
-
a plurality of physical collect buffers (PCBs); a first control and status register (CSR) corresponding to a first underlying function, wherein the first underlying function corresponds to a first virtual machine; a second CSR corresponding to a second underlying function, wherein the second underlying function corresponding to a second virtual machine; a service processor resource manager operatively connected to the first CSR and the second CSR and configured to; receive, from a virtual machine manager on a host, a first resource allocation request; identify the first underlying function referenced in the first resource allocation request; determine that the first resource allocation request specifies a first number of PCBs allocated to the first underlying function; allocate the first number of PCBs to the first underlying function by storing the first number in the first CSR; determine that the first resource allocation request specifies a first number of virtual collect buffers (VCBs) allocated to the first underlying function; allocate the first number of VCBs to the first underlying function by storing a base address register (BAR) in the CSR; receive, from the virtual machine manager on a host, a second resource allocation request; identify the second underlying function referenced in the second resource allocation request; determine that the second resource allocation request specifies a second number of PCBs allocated to the second underlying function; and allocate the second number of PCBs to the second underlying function by storing the second number in the second CSR; and a PCB allocator configured to; receive first command data for a first command from the first virtual machine for sending packets on an network, wherein the first command data specifies an address of a VCB of the first number of VCBs; determine, using the CSR, that the underlying function has in use at least the number of PCBs when the first command data is received; and drop the first command data in the first command based on the underlying function having in use at least the number of PCBs. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
a host comprising; a virtual machine manager configured to send a first resource allocation request and a second resource allocation request; a first virtual machine; and a second virtual machine; and a host channel adapter operatively connected to the host and comprising; a plurality of physical collect buffers (PCBs); a first control and status register (CSR) corresponding to a first underlying function, wherein the first underlying function corresponds to the first virtual machine; a second CSR corresponding to a second underlying function, wherein the second underlying function corresponding to the second virtual machine; a service processor resource manager configured to; receive the first resource allocation request; identify the first underlying function referenced in the first resource allocation request; determine that the first resource allocation request specifies a first number of PCBs allocated to the first underlying function; allocate the first number of PCBs to the first underlying function by storing the first number in the first CSR; determine that the first resource allocation request specifies a first number of virtual collect buffers (VCBs) allocated to the first underlying function; allocate the first number of VCBs to the first underlying function by storing a base address register (BAR) in the CSR; receive the second resource allocation request; identify the second underlying function referenced in the second resource allocation request; determine that the second resource allocation request specifies a second number of PCBs allocated to the second underlying function; and allocate the second number of PCBs to the second underlying function by storing the second number in the second CSR; and a PCB allocator configured to; receive first command data for a first command from the first virtual machine for sending packets on a network, wherein the first command data specifies an address of a VCB of the first number of VCBs; determine, using the CSR, that the underlying function has in use at least the number of PCBs when the first command data is received; and drop the first command data in the first command based on the underlying function having in use at least the number of PCBs. - View Dependent Claims (18, 19, 20)
-
Specification