Arbitration in an sriov environment

US2016147687A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016147687-A1
Application numberUS-201414552666-A
CountryUS
Kind codeA1
Filing dateNov 25, 2014
Priority dateNov 25, 2014
Publication dateMay 26, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In one embodiment, a computer-implemented method includes assigning a time budget to each of a plurality of virtual functions in a single-root input/output (SRIOV) environment, where a first time budget of a first virtual function indicates a quantity of cycles on an engine of the SRIOV environment allowed to the first virtual function within a time slice. A plurality of requests issued by the plurality of virtual functions are selected by a computer processor, where the selecting excludes requests issued by virtual functions that have used their associated time budgets of cycles in a current time slice. The selected plurality of requests are delivered to the engine for processing. The time budgets of the virtual functions are reset and a new time slice begins, at the end of the current time slice.

First claim

Opening claim text (preview).

1 - 6 . (canceled) 7 . A system comprising: a memory; and one or more processors, communicatively coupled to the memory, the one or more processors configured to: assign a time budget to each of a plurality of virtual functions in a single-root input/output (SRIOV) environment, wherein a first time budget of a first virtual function indicates a quantity of cycles on an engine of the SRIOV environment allowed to the first virtual function within a time slice; select a plurality of requests issued by the plurality of virtual functions, wherein the selecting excludes requests issued by virtual functions that have used their associated time budgets of cycles in a current time slice; deliver the selected plurality of requests to the engine for processing; and reset the time budgets of the virtual functions and begin a new time slice, at the end of the current time slice. 8 . The system of claim 7 , the one or more processors being further configured to: assign a quantity of credits to each of the plurality of virtual functions, wherein the quantity of credits assigned to the first virtual function indicates a priority level of the first virtual function; and restrict the first virtual function to a quantity of sessions on the engine, wherein each session is in response to a request, and wherein the quantity of sessions is determined by the quantity of credits assigned to the first virtual function. 9 . The system of claim 8 , wherein, to select the plurality of requests, the one or more processors are further configured to exclude requests issued by virtual functions that have used their associated credits in the current time slice. 10 . The system of claim 8 , the one or more processors being further configured to: count, in real time, the quantity of sessions on the engine used by the first virtual function; and reset the count of the quantity of sessions used by the first virtual function at the end of the current time slice. 11 . The system of claim 8 , wherein usage of the engine by the first virtual function is determined, at least in part, by the first time budget and by the quantity of credits assigned to the first virtual function. 12 . The system of claim 7 , the one or more processors being further configured to: count, in real time, the quantity of cycles on the engine used by the first virtual function; and reset the count of the quantity of cycles used by the first virtual function at the end of the current time slice. 13 . The system of claim 7 , the one or more processors being further configured to instruct one or more priority arbiters to reallocate, to other virtual functions of the plurality of virtual functions, the cycles of the first time budget within the current time slice when the first virtual function has completed its tasks within the current time slice. 14 . A computer program product for arbitrating requests in a single-root input/output (SRIOV) environment, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising: assigning a time budget to each of a plurality of virtual functions in an SRIOV environment, wherein a first time budget of a first virtual function indicates a quantity of cycles on an engine of the SRIOV environment allowed to the first virtual function within a time slice; selecting a plurality of requests issued by the plurality of virtual functions, wherein the selecting excludes requests issued by virtual functions that have used their associated time budgets of cycles in a current time slice; delivering the selected plurality of requests to the engine for processing; and resetting the time budgets of the virtual functions and beginning a new time slice, at the end of the current time slice. 15 . The computer program product of claim 14 , the method further comprising: assigning a quantity of credits to each of the plurality of virtual functions, wherein each session is in response to a request, and wherein the quantity of credits assigned to the first virtual function indicates a priority level of the first virtual function; and restricting the first virtual function to a quantity of sessions on the engine, wherein the quantity of sessions is determined by the quantity of credits assigned to the first virtual function. 16 . The computer program product of claim 15 , wherein selecting the plurality of requests comprises excluding requests issued by virtual functions that have used their associated credits in the current time slice. 17 . The computer program product of claim 15 , the method further comprising: counting, in real time, the quantity of sessions on the engine used by the first virtual function; and resetting the count of the quantity of sessions used by the first virtual function at the end of the current time slice. 18 . The computer program product of claim 15 , wherein usage of the engine by the first virtual function is determined, at least in part, by the first time budget and by the quantity of credits assigned to the first virtual function. 19 . The computer program product of claim 14 , the method further comprising: counting, in real time, the quantity of cycles on the engine used by the first virtual function; and resetting the count of the quantity of cycles used by the first virtual function at the end of the current time slice. 20 . The computer program product of claim 14 , the method further comprising reallocating, to other virtual functions of the plurality of virtual functions, the cycles of the first time budget within the current time slice when the first virtual function has completed its tasks within the current time slice.

Assignees

Inventors

Classifications

  • Resetting means · CPC title

  • using a time dependent access · CPC title

  • I/O management, e.g. providing access to device drivers or storage · CPC title

  • G06F13/372Primary

    using a time-dependent priority, e.g. individually loaded time counters or time slot · CPC title

  • Hypervisor-specific management and integration aspects · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016147687A1 cover?
In one embodiment, a computer-implemented method includes assigning a time budget to each of a plurality of virtual functions in a single-root input/output (SRIOV) environment, where a first time budget of a first virtual function indicates a quantity of cycles on an engine of the SRIOV environment allowed to the first virtual function within a time slice. A plurality of requests issued by the …
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F13/3625. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu May 26 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).