Managed memory systems with multiple priority queues
US-2022155997-A1 · May 19, 2022 · US
US12591532B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12591532-B2 |
| Application number | US-202318394424-A |
| Country | US |
| Kind code | B2 |
| Filing date | Dec 22, 2023 |
| Priority date | Dec 22, 2023 |
| Publication date | Mar 31, 2026 |
| Grant date | Mar 31, 2026 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
In at least one embodiment, processing can include: assigning services a non-critical polling priority or a critical polling priority, where each service is associated with a queue set including a completion queue (CQ) and receiving queue (RQ) associated with received messages stored in memory of the local node and sent by a remote node via remote direct memory access (RDMA); partitioning CQs of the queue sets in accordance with assigned polling priorities to generate a non-critical CQ list and a critical CQ list; polling the non-critical CQ list by a non-critical poller at a non-critical polling frequency for completion signals or indicators associated with received non-critical messages of the local node to be serviced; and polling the critical CQ list by a critical poller at a critical polling frequency for completion signals or indicators associated with received critical messages of the local node to be serviced.
Opening claim text (preview).
What is claimed is: 1 . A computer-implemented method comprising: for a first plurality of services, assigning each service of the first plurality a polling priority of a non-critical polling priority or a critical polling priority, wherein each service of the first plurality is associated with a corresponding service queue set of a second plurality of service queue sets of a local node, wherein each service queue set of the second plurality of service queue sets associated with a corresponding service of the first plurality includes a completion queue (CQ) and an associated receiving queue (RQ) of work queue entries (WQEs) associated with received messages that are stored in a first memory of the local node and sent by a remote node via remote direct memory access (RDMA); partitioning CQs of the second plurality of service queue sets associated with the first plurality of services in accordance with assigned polling priorities to generate a non-critical CQ list of the local node and a critical CQ list of the local node, wherein the non-critical CQ list includes CQs associated with services of the first plurality assigned the non-critical polling priority, and wherein the critical CQ list includes CQs associated with services of the first plurality assigned the critical polling priority; polling each CQ of the non-critical CQ list on the local node by a non-critical poller at a non-critical polling frequency, wherein said polling said each CQ of the non-critical CQ list includes polling said each CQ of the non-critical CQ list for completion signals or indicators associated with corresponding received non-critical messages of the local node to be serviced; and polling each CQ of the critical CQ list on the local node by a critical poller at a critical polling frequency, wherein said polling said each CQ of the critical CQ list includes polling said each CQ of the critical CQ list for completion signals or indicators associated with corresponding received critical messages of the local node to be serviced. 2 . The computer-implemented method of claim 1 , wherein each RQ of the second plurality of service queue sets is configured to synchronize via RDMA with an Send Queue (SQ) of the remote node such that when a first WQE (work queue element or entry), that is associated with an outgoing message stored in a second memory of the remote node, is enqueued in the SQ of the remote node, the outgoing message is sent via RDMA from the remote node to the local node, where the outgoing message is received by the local node and stored in an incoming message buffer of the first memory of the local node, wherein the incoming message buffer of the local node is associated with a second WQE of the RQ that synchronizes via RDMA with the SQ. 3 . The computer-implemented method of claim 2 , further comprising: in response to storing, via RDMA, the outgoing message of the remote node in the incoming message buffer of the second WQE of the RQ having an associated CQ on the local node, generating a completion signal or indicator to indicate that the second WQE of the RQ associated with the incoming message buffer needs servicing or handling by a service of the first plurality associated with the RQ. 4 . The computer-implemented method of claim 3 , wherein the CQ associated with the RQ includes a CQ Entry (CQE) associated with the second WQE and the incoming message buffer whereby the CQE serves as a signal or indicator that a received message of the local node stored in the incoming message buffer needs servicing or handling by the local node. 5 . The computer-implemented method of claim 1 , further comprising: for each completion signal or indicator of a CQ of the non-critical list associated with a corresponding received non-critical message of the local node, servicing said received non-critical message by the local node. 6 . The computer-implemented method of claim 5 , wherein said servicing said received non-critical message of the local node includes forwarding any of: a CQE of the CQ where the CQE is associated with said received non-critical message, or a WQE of an RQ associated with the CQ where the WQE is associated with said received non-critical message, to a worker thread of one service of the first plurality executing on the local node, wherein said one service is assigned the non-critical polling frequency and said one service is associated with the RQ and the CQ on the local node. 7 . The computer-implemented method of claim 6 , wherein for each RQ of a queue set of the second plurality that is associated with a corresponding CQ of the queue set of a service assigned the non-critical polling priority, each CQE of the corresponding CQ is associated with a WQE of said each RQ wherein the WQE references a buffer in the first memory of the local node, and wherein the buffer stores an incoming non-critical message transmitted via RDMA from the local node to the remote node. 8 . The computer-implemented method of claim 1 , further comprising: for each completion signal or indicator of a CQ of the critical list associated with a corresponding received critical message of the local node, servicing said received critical message by the local node. 9 . The computer-implemented method of claim 8 , wherein said servicing said received critical message of the local node includes forwarding any of: a CQE of the CQ where the CQE is associated with said received critical message, or a WQE of an RQ associated with the CQ where the WQE is associated with said received critical message, to a worker thread of one service of the first plurality executing on the local node, wherein said one service is assigned the critical polling frequency and said one service is associated with the RQ and the CQ on the local node. 10 . The computer-implemented method of claim 9 , wherein for each RQ of a queue set of the second plurality that is associated with a corresponding CQ of the queue set of a service assigned the critical polling priority, each CQE of the corresponding CQ is associated with a WQE of said each RQ wherein the WQE references a buffer in the first memory of the local node, wherein the buffer stores an incoming critical message transmitted via RDMA from the local node to the remote node. 11 . The computer-implemented method of claim 1 , wherein the critical poller and the non-critical poller are separate independent pollers. 12 . The computer-implemented method of claim 1 , wherein the critical poller is a first dedicated critical polling thread that only performs critical polling of CQs associated with services of the first plurality assigned the critical polling priority, and wherein the non-critical poller is a second dedicated non-critical polling thread that only performs non-critical polling of CQs associated with services of the first plurality assigned the non-critical polling priority. 13 . The computer-implemented method of claim 1 , wherein the critical polling frequency indicates a greater polling frequency than the non-critical polling frequency such that critical polling, as performed by the critical poller, is performed at a greater frequency that non-critical polling, as performed by the non-critical poller. 14 . The computer-implemented method of claim 1 , wherein a first service of the first plurality is assigned the critical polling frequency, a first queue set of the second plurality is associated with the first service, the first queue set including a first RQ, and a first CQ that is associated with the first RQ and that signals completed receipt of critical messages by the local node. 15 . The comput
Distributed shared memory [DSM], e.g. remote direct memory access [RDMA] · CPC title
Reordering of instructions, e.g. using queues or age tags · CPC title
using successive scanning, e.g. polling (G06F13/24 takes precedence) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.