Method and system for queue descriptor cache management for a host channel adapter
First Claim
1. A method for managing a queue descriptor cache of a host channel adaptor (HCA), comprising:
- obtaining a queue descriptor from memory, wherein the queue descriptor comprises a plurality of data describing a queue and wherein the memory is located in a host system;
storing a copy of the queue descriptor in the queue descriptor cache of the HCA;
accessing, by the HCA, the copy of the queue descriptor to obtain the plurality of data;
accessing, by the HCA and using the plurality of data, the queue;
updating, by the HCA, the plurality of data to reflect the access to the queue;
calculating, using the plurality of data, a value corresponding to utilization of the queue;
comparing the value against a threshold;
fetching, if the value exceeds the threshold, a new copy of the queue descriptor from memory; and
replacing the copy of the queue descriptor in the queue descriptor cache with the new copy obtained from the memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for managing a queue descriptor cache of a host channel adaptor (HCA) includes obtaining a queue descriptor from memory. The queue descriptor includes data describing a queue and the memory is located in a host system. The method further includes storing a copy of the queue descriptor in the queue descriptor cache of the HCA. The HCA accesses the copy of the queue descriptor to obtain the plurality of data, accesses the queue using the data, and updates the data to reflect the access to the queue. The method further includes calculating, using the data, a value corresponding to utilization of the queue, comparing the value against a threshold, fetching, if the value exceeds the threshold, a new copy of the queue descriptor from memory, and replacing the copy of the queue descriptor in the queue descriptor cache with the new copy obtained from the memory.
-
Citations
20 Claims
-
1. A method for managing a queue descriptor cache of a host channel adaptor (HCA), comprising:
-
obtaining a queue descriptor from memory, wherein the queue descriptor comprises a plurality of data describing a queue and wherein the memory is located in a host system; storing a copy of the queue descriptor in the queue descriptor cache of the HCA; accessing, by the HCA, the copy of the queue descriptor to obtain the plurality of data; accessing, by the HCA and using the plurality of data, the queue; updating, by the HCA, the plurality of data to reflect the access to the queue; calculating, using the plurality of data, a value corresponding to utilization of the queue; comparing the value against a threshold; fetching, if the value exceeds the threshold, a new copy of the queue descriptor from memory; and replacing the copy of the queue descriptor in the queue descriptor cache with the new copy obtained from the memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A host channel adaptor (HCA), comprising:
-
descriptor fetch circuitry, comprising; a queue descriptor cache, configured to store a copy of a queue descriptor comprising a plurality of data describing a queue, wherein the queue descriptor is located in a memory of a host operatively connected to the HCA, and wherein the queue is located in the memory and comprises a plurality of entries; and cache control circuitry, configured to; obtain the copy of the queue descriptor from the memory, store the copy of the queue descriptor in the cache, determine that the HCA has accessed the queue, calculate a value representing a utilization of the queue, compare the value against a threshold, and fetch a new copy of the queue descriptor from memory when the value exceeds the threshold; and a plurality of additional circuitry, configured to; access the copy of the queue descriptor to obtain the plurality of data; access, using the plurality of data, the queue; and update the plurality of data to reflect the access to the queue. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system comprising:
-
a host, comprising; a processor, and a memory configured to store; a queue descriptor comprising a plurality of data describing a queue, comprising; a hardware pointer configured to reference an entry in the queue most recently access by the HCA, a software pointer configured to reference an entry in the queue most recently accessed by a host, and a threshold; and a queue comprising a plurality of entries; and a host channel adapter (HCA) operatively connected to the host and comprising; a cache configured to store a copy of the queue descriptor, and cache control circuitry, configured to; obtain the copy of the queue descriptor from the memory; store the copy of the queue descriptor in the cache; determine that the HCA has accessed the queue; calculate a value representing the number of entries separating the software pointer and the hardware pointer; compare the value against the threshold; and fetch a new copy of the queue descriptor from the memory when the value exceeds the threshold; and a plurality of additional circuitry, configured to; access the copy of the queue descriptor to obtain the plurality of data; access, using the plurality of data, the queue; and update the plurality of data to reflect the access to the queue. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification