IP Library Granted Patent US 9,201,682
Granted Patent B2
US 9,201,682 · App. 13/923,513 · Granted Dec 1, 2015

Virtualized device reset

Inventors: Gongxian Jeffrey Cheng (Toronto, CA); Anthony Asaro (Toronto, CA); Yinan Jiang (Richmond Hill, CA)
Assignee: ATI Technologies ULC
G06F9/45558G06F1/24G06F9/45533G06F11/1441G06F2009/4557G06F2009/45575G06F2009/45591
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,201,682
App. No.
13/923,513
Granted
Dec 1, 2015
Kind
B2
Abstract

In a hardware-based virtualization system, a hypervisor switches out of a first function into a second function. The first function is one of a physical function and a virtual function and the second function is one of a physical function and a virtual function. During the switching a malfunction of the first function is detected. The first function is reset without resetting the second function. The switching, detecting, and resetting operations are performed by a hypervisor of the hardware-based virtualization system. Embodiments further include a communication mechanism for the hypervisor to notify a driver of the function that was reset to enable the driver to restore the function without delay.

Claims (62)

1. A method for resetting a function in a hardware-based virtualization system, comprising:

switching out of a first function into a second function, wherein the first function is one of a physical function and a virtual function and the second function is one of a physical function and virtual function;

detecting a malfunction in the first function during the switching; and

resetting the first function without resetting the second function,

wherein the switching, detecting and the resetting are performed by a hypervisor.

2. The method of claim 1 , wherein the detecting comprises checking a status of a register in an input/output virtualization (IOV) capability structure of the hardware-based virtualization system.

3. The method of claim 2 , wherein the IOV capability structure is a graphics processing unit (GPU) IOV capability structure.

4. The method of claim 1 , wherein the first function is a first virtual function and the second function is a second virtual function.

5. The method of claim 4 , wherein the resetting comprises a function level reset (FLR) of the first virtual function.

6. The method of claim 4 , further comprising:

determining that the first virtual function is in a busy state after the resetting; and

resetting a physical function associated with the first virtual function in response to the determining,

wherein the determining and the resetting are performed by the hypervisor.

7. The method of claim 4 , further comprising:

determining that the first virtual function is in an idle state after the resetting;

restoring configuration data of the first virtual function; and

notifying a driver of the first virtual function about the resetting,

wherein the restoring and the notifying are performed by the hypervisor in response to the determining.

8. The method of claim 7 , wherein the notifying comprises:

performing a write operation to a reset notification register;

generating an interrupt signal in response to the write operation; and

propagating the interrupt signal to the driver of the first virtual function.

9. The method of claim 1 , wherein the first function is a first physical function and the second function is a virtual function associated with the first physical function.

10. The method of claim 9 , wherein the resetting comprises a soft function level resetting (FLR) of the first physical function without resetting the associated virtual function or any additional any virtual functions associated with the physical function.

11. The method of claim 9 , further comprising:

determining that the first physical function is in a busy state after the resetting; and

resetting the first physical function associated with the virtual function,

wherein the detecting and the resetting are performed by the hypervisor.

12. The method of claim 10 , further comprising:

enabling and assigning resources to the associated virtual function;

restoring the configuration data of the first physical function and the associated virtual function;

initializing a software virtual machine (SVM);

initializing a processor; and

notifying the physical function and the virtual function about the resetting.

13. The method of claim 1 , wherein resetting the first function without resetting the second function comprises:

issuing an idle command to the first function;

waiting for a predetermined time interval for execution of the issued idle command;

determining whether the issued idle command has completed execution and returned the first function to an idle status; and

if it is determined that the first function has returned to an idle status, continue switching out of the first function to the second function.

14. The method of claim 13 further comprising:

if the first function has not returned to an idle status, performing one of a function level reset, a soft level reset and a hard reset of the first function.

15. The method of claim 13 wherein the resetting comprises:

generating a write request to a register corresponding to the first function; and

setting the register to a known reset state based on the write request.

16. A hardware-based virtualization system to reset a function, comprising:

one or more processors; and

a memory, the memory storing instructions that, when executed by the one or more processors, cause the one or more processors to:

switch out of a first function into a second function, wherein the first function is one of a physical function and a virtual function and the second function is one of a physical function and virtual function;

detect a malfunction in the first function during the switch; and

reset the first function without resetting the second function.

17. The system of claim 16 , wherein the first function is a first virtual function and the second function is a second virtual function.

18. The method of claim 17 , wherein the reset comprises a function level reset (FLR) of the first virtual function.

19. The system of claim 17 , wherein the hypervisor is further configured to:

determine that the first virtual function is in a busy state after the reset; and

reset a physical function associated with the first virtual function when the first virtual function is determined to be in a busy state.

20. The system of claim 16 , wherein the first function is a first physical function and the second function is a virtual function associated with the physical function.

21. A non-transitory computer readable storage device having computer program logic recorded thereon, execution of which, by a computing device, causes the computing device to perform operations, comprising:

switching out of a first function into a second function, wherein the first function is one of a physical function and a virtual function and the second function is one of a physical function and virtual function; detecting a malfunction in the first function during the switching; and

resetting the first function without resetting the second function,

wherein the switching, detecting and the resetting are performed by a hypervisor.

22. The computer readable storage device of claim 21 , wherein the first function is a first virtual function and the second function is a second virtual function.

23. The computer readable storage device of claim 21 , wherein the first function is a first physical function and the second function is a virtual function associated with the first physical function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2015
From: JIANG, YINAN; ASARO, ANTHONY; CHENG, GONGXIAN JEFFREY
To: ATI TECHNOLOGIES ULC
Reel/Frame 035067/0244 →
Continuity (1)
Related Publication 20140380028A1 · Dec 25, 2014