Enqueue Submission Model for QoS Rate Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current systems fail to ensure fair sharing of resources among a large number of clients, such as applications, drivers, and virtual machines, due to limitations in tracking quality of service (QoS) information, particularly in virtualized environments where privileged and unprivileged clients have differing access levels.
Innovation Solution
The implementation of an enqueue submission model that carries QoS information along with command data, using a Process Address Space Identifier (PASID) to enable QoS-based handling and rate control at a granular level, allowing for fair sharing of hardware resources among multiple clients without increasing complexity on the device side.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If a single hardware interface is shared with up to one million applications/drivers/VMs/containers, then the system can support a large number of clients, but it becomes impossible for devices to store/track QoS information for such a large number of clients
Solution Approach 1:
The patent extracts QoS tracking functionality from the device side and relocates it to the processor side. The processor maintains QoS information in PASID tables and enforcement state, while the device only needs to receive QoS parameters with work submissions and enforce them locally. This extraction resolves the contradiction by enabling support for one million clients without requiring the device to store/track QoS information for all of them.
Solution Approach 2:
The patent introduces QoS parameters as an intermediary mechanism carried within work submission packets. These parameters include QoS class, priority, and rate control information that are embedded in the work queue entries. This intermediary allows the system to convey QoS information efficiently without requiring complex device-side tracking structures for each client.
2Ease of operation
If unlimited portals are kept in control of host/root partition, then privileged clients can access resources, but there is no way to ensure fair sharing among different VMs/containers
Solution Approach 1:
The patent applies local quality by differentiating QoS handling based on client type and portal privileges. Ring-0 clients with unlimited portals receive appropriate QoS enforcement, while Ring-3 clients in virtualized environments get fair share allocation through the hypervisor-managed PASID tables. Each client type receives customized QoS treatment according to its specific needs and privileges.
Solution Approach 2:
The patent implements preliminary action by pre-configuring QoS parameters and rate control limits in the PASID tables before work submissions occur. The hypervisor or operating system sets up QoS class, priority, and rate control information in advance for each PASID, enabling fair share allocation to be automatically enforced without real-time negotiation or complex runtime decisions.
3Device complexity
If devices provide at most two levels or classes of service, then device complexity is reduced, but it cannot ensure dedicated quota for privileged clients and fair share among unprivileged clients simultaneously
Solution Approach 1:
The patent segments QoS enforcement into two distinct layers: a simple two-class service structure at the device level (primitives vs. non-primitives) and a complex multi-level QoS system at the processor level through PASID tables. This segmentation allows the device to maintain low complexity while the processor handles sophisticated QoS guarantees for both privileged and unprivileged clients simultaneously.
Data Source
AI summary
In one embodiment, a processor comprises: a first configuration register to store quality of service (QoS) information for a process address space identifier (PASID) value associated with a first process; and an execution circuit coupled to the first configuration register, where the execution circuit, in response to a first instruction, is to obtain command data from a first location identified in a source operand of the first instruction, insert the QoS information and the PASID value into the command data, and send a request comprising the command data to a device coupled to the processor, to enable the device to use the QoS information of a plurality of requests to manage sharing between a plurality of processes. Other embodiments are described and claimed.


