IP Library › Granted Patent US 10,169,075
Granted Patent B2
US 10,169,075 · App. 15/384,961 · Granted Jan 1, 2019

Method for processing interrupt by virtualization platform, and related device

Inventors: Haoyu Zhang (Shenzhen, CN); Hongyong Zang (Beijing, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F9/4812G06F9/45533G06F2009/45579
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 10,169,075
App. No.
15/384,961
Granted
Jan 1, 2019
Kind
B2
Abstract

A method for processing an interrupt by a virtualization platform, and a related device, where the method includes determining an n th physical central processing unit (pCPU) from U target pCPUs when an i th physical interrupt occurs in a j th physical input/output device, setting the n th pCPU to process the i th physical interrupt, determining an i th virtual interrupt according to the i th physical interrupt, and determining an m th virtual central processing unit (vCPU) from V target vCPUs such that a k th virtual machine (VM) uses the m th vCPU to execute the i th virtual interrupt, where U, V, i, j, k, m, and n are positive integers while U and V are greater than or equal to 1.

Claims (156)

1. A method for processing an interrupt by a virtualization platform, wherein the method is applied to a computing node, wherein the computing node comprises a physical hardware layer, a host running at the physical hardware layer, at least one virtual machine (VM) running on the host, and virtual hardware that is virtualized on the at least one VM, wherein the physical hardware layer comprises X physical central processing units (pCPUs) and Y physical input/output devices, wherein the virtual hardware comprises Z virtual central processing units (vCPUs), wherein the Y physical input/output devices comprise a j th physical input/output device, wherein the at least one VM comprises a k th VM, wherein the j th physical input/output device directs to the k th VM, wherein the method is executed by the host, and wherein the method comprises:

determining an n th pCPU from U target pCPUs when an i th physical interrupt occurs in the j th physical input/output device, wherein the U target pCPUs are pCPUs that comprise an affinity relationship with both the i th physical interrupt and V target vCPUs, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and comprise an affinity relationship with an i th virtual interrupt, wherein the i th virtual interrupt corresponds to the i th physical interrupt, wherein the X pCPUs comprise the U target pCPUs, and wherein the Z vCPUs comprise the V target vCPUs;

setting the n th pCPU to process the i th physical interrupt;

determining the i th virtual interrupt according to the i th physical interrupt; and

determining an m th vCPU from the V target vCPUs such that the k th VM uses the m th vCPU to execute the i th virtual interrupt,

wherein X, Y, and Z are positive integers greater than 1, wherein U is a positive integer greater than or equal to 1 and less than or equal to X, wherein V is a positive integer greater than or equal to 1 and less than or equal to Z, and wherein i, j, k, m, and n are positive integers.

2. The method according to claim 1 , wherein the affinity relationship between the U target pCPUs and the i th physical interrupt, the affinity relationship between the U target pCPUs and the V target vCPUs, and the affinity relationship between the V target vCPUs and the i th virtual interrupt are determined in the following manners:

determining the affinity relationship between the V target vCPUs and the i th virtual interrupt, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the i th virtual interrupt;

determining the U target pCPUs, wherein the V target vCPUs can run on the U target pCPUs, wherein U is equal to 1;

determining the i th physical interrupt corresponding to the i th virtual interrupt; and

determining the affinity relationship between the i th physical interrupt and the U target pCPUs, wherein the i th physical interrupt can be processed by the U target pCPUs.

3. The method according to claim 1 , wherein the affinity relationship between the U target pCPUs and the i th physical interrupt, the affinity relationship between the U target pCPUs and the V target vCPUs, and the affinity relationship between the V target vCPUs and the i th virtual interrupt are determined in the following manners:

determining the affinity relationship between the V target vCPUs and the i th virtual interrupt, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the i th virtual interrupt;

determining the U target pCPUs, wherein the V target vCPUs can run on multiple target pCPUs, and wherein U is a positive integer greater than 1 and less than or equal to X;

determining the i th physical interrupt corresponding to the i th virtual interrupt; and

determining the affinity relationship between the i th physical interrupt and the U target pCPUs, wherein the i th physical interrupt can be processed by the U target pCPUs.

4. The method according to claim 3 , wherein when the affinity relationship between the i th physical interrupt and the U target pCPUs is a one-to-many affinity relationship, determining the m th vCPU from the V target vCPUs comprises:

determining whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU;

determining one target vCPU running on the n th pCPU as the m th vCPU when there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU; and

determining one target vCPU from the V target vCPUs as the m th vCPU according to a priority sequence when there is not at least one target vCPU of the V target vCPUs that runs on the n th pCPU.

5. The method according to claim 4 , wherein determining whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU comprises determining, according to virtual interrupt route information, whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU, wherein the virtual interrupt route information comprises a correspondence between the U target pCPUs and target vCPUs running on the U target pCPUs.

6. A method for processing an interrupt by a virtualization platform, wherein the method is applied to a computing node, wherein the computing node comprises a physical hardware layer, a host running at the physical hardware layer, Y virtual machines (VMs) running on the host, Y virtual host (vhost) kernel threads running on the host, and virtual hardware that is virtualized on the Y VMs, wherein the physical hardware layer comprises X physical central processing units (pCPUs), wherein the virtual hardware comprises Z virtual central processing units (vCPUs), wherein each VM of the Y VMs comprises a paravirtualized driver (virtio device), wherein the Y VMs comprise a k th VM, wherein the k th VM comprises an i th virtio device, wherein the i th virtio device corresponds to a i th vhost kernel thread of the Y vhost kernel threads, wherein the method is executed by the host, and wherein the method comprises:

determining an n th pCPU from U target pCPUs when the j th vhost kernel thread triggers an i th vhost thread, wherein the U target pCPUs are pCPUs that comprise an affinity relationship with both the i th vhost thread and V target vCPUs, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and comprise an affinity relationship with a virtual interrupt of the i th virtio device, wherein the virtual interrupt of the i th virtio device corresponds to the i th vhost thread, wherein the X pCPUs comprise the U target pCPUs, and wherein the Z vCPUs comprise the V target vCPUs;

setting the n th pCPU to process the i th vhost thread;

determining the virtual interrupt of the i th virtio device according to the i th vhost thread; and

determining an m th vCPU from the V target vCPUs such that the k th VM uses the m th vCPU to execute the virtual interrupt of the i th virtio device,

wherein X, Y, and Z are positive integers greater than 1, wherein U is a positive integer greater than or equal to 1 and less than or equal to X, wherein V is a positive integer greater than or equal to 1 and less than or equal to Z, and wherein i, j, k, m, and n are positive integers.

7. The method according to claim 6 , wherein the affinity relationship between the U target pCPUs and the i th vhost thread, the affinity relationship between the U target pCPUs and the V target vCPUs, and the affinity relationship between the V target vCPUs and the virtual interrupt of the i th virtio device are determined in the following manners:

determining the affinity relationship between the V target vCPUs and an i th virtual interrupt, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the virtual interrupt of the i th virtio device;

determining the U target pCPUs, wherein the V target vCPUs can run on the U target pCPUs, wherein U is equal to 1;

determining the i th vhost thread corresponding to the virtual interrupt of the i th virtio device; and

determining the affinity relationship between the i th vhost thread and the U target pCPUs, wherein the i th vhost thread can be processed by the U target pCPUs.

8. The method according to claim 6 , wherein the affinity relationship between the U target pCPUs and the i th vhost thread, the affinity relationship between the U target pCPUs and the V target vCPUs, and the affinity relationship between the V target vCPUs and the virtual interrupt of the i th virtio device are determined in the following manners:

determining the affinity relationship between the V target vCPUs and the virtual interrupt of the i th virtio device, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the virtual interrupt of the i th virtio device;

determining the U target pCPUs, wherein the V target vCPUs can run on the multiple target pCPUs, wherein U is a positive integer greater than 1 and less than or equal to X;

determining the i th vhost thread corresponding to the virtual interrupt of the i th virtio device; and

determining the affinity relationship between the i th vhost thread and the U target pCPUs, wherein the i th vhost thread can be processed by the U target pCPUs.

9. The method according to claim 8 , wherein when the affinity relationship between the i th vhost thread and the U target pCPUs is a one-to-many affinity relationship, determining the m th vCPU from the V target vCPUs comprises:

determining whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU;

determining one target vCPU running on the n th pCPU as the m th vCPU when there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU; or

determining one target vCPU from the V target vCPUs as the m th vCPU according to a priority sequence when there is not at least one target vCPU of the V target vCPUs that runs on the n th pCPU.

10. The method according to claim 9 , wherein determining whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU comprises determining, according to virtual interrupt route information of a virtio device, whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU, wherein the virtual interrupt route information of the virtio device comprises a correspondence between the U target pCPUs and target vCPUs running on the U target pCPUs.

11. A host applied to a computing node, wherein the computing node comprises a physical hardware layer, the host running at the physical hardware layer, at least one virtual machine (VM) running on the host, and virtual hardware that is virtualized on the at least one VM, wherein the physical hardware layer comprises X physical central processing units (pCPUs) and Y physical input/output devices, wherein the virtual hardware comprises Z virtual central processing units (vCPUs), wherein the Y physical input/output devices comprise a j th physical input/output device, wherein the at least one VM comprises a k th VM, wherein the j th physical input/output device directs to the k th VM, and wherein the host comprises:

a memory; and

a processor coupled to the memory and configured to:

determine an n th pCPU from U target pCPUs when an i th physical interrupt occurs in the j th physical input/output device, wherein the U target pCPUs are pCPUs that comprise an affinity relationship with both the i th physical interrupt and V target vCPUs, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and comprise an affinity relationship with an i th virtual interrupt, wherein the i th virtual interrupt corresponds to the i th physical interrupt, wherein the X pCPUs comprise the U target pCPUs, and wherein the Z vCPUs comprise the V target vCPUs;

set the n th pCPU to process the i th physical interrupt;

determine the i th virtual interrupt according to the i th physical interrupt; and

determine an m th vCPU from the V target vCPUs such that the k th VM uses the m th vCPU to execute the i th virtual interrupt,

wherein X, Y, and Z are positive integers greater than 1, wherein U is a positive integer greater than or equal to 1 and less than or equal to X, wherein V is a positive integer greater than or equal to 1 and less than or equal to Z, and wherein i, j, k, m, and n are positive integers.

12. The host according to claim 11 , wherein processor is further configured to:

determine the affinity relationship between the V target vCPUs and the i th virtual interrupt, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the i th virtual interrupt;

determine the U target pCPUs, wherein the V target vCPUs can run on the U target pCPUs, wherein U is equal to 1;

determine the i th physical interrupt corresponding to the i th virtual interrupt; and

determine the affinity relationship between the i th physical interrupt and the U target pCPUs, wherein the i th physical interrupt can be processed by the U target pCPUs.

13. The host according to claim 11 , wherein the processor is further configured to:

determine the affinity relationship between the V target vCPUs and the i th virtual interrupt, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the i th virtual interrupt;

determine the U target pCPUs, wherein the V target vCPUs can run on multiple target pCPUs, and wherein U is a positive integer greater than 1 and less than or equal to X;

determine the i th physical interrupt corresponding to the i th virtual interrupt; and

determine the affinity relationship between the i th physical interrupt and the U target pCPUs, wherein the i th physical interrupt can be processed by the U target pCPUs.

14. The host according to claim 13 , wherein the processor is further configured to:

determine whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU;

determine one target vCPU running on the n th pCPU as the m th vCPU such that the k th VM uses the m th vCPU to execute the i th virtual interrupt when there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU; and

determine one target vCPU from the V target vCPUs as the m th vCPU according to a priority sequence such that the k th VM uses the m th vCPU to execute the i th virtual interrupt when there is not at least one target vCPU of the V target vCPUs that runs on the n th pCPU.

15. The host according to claim 14 , wherein determining whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU, the processor is further configured to determine, according to virtual interrupt route information, whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU, wherein the virtual interrupt route information comprises a correspondence between the U target pCPUs and target vCPUs running on the U target pCPUs.

16. A host applied to a computing node, wherein the computing node comprises a physical hardware layer, the host running at the physical hardware layer, Y virtual machines (VMs) running on the host, Y virtual host (vhost) kernel threads running on the host, and virtual hardware that is virtualized on the Y VMs, wherein the physical hardware layer comprises X physical central processing units (pCPUs), wherein the virtual hardware comprises Z virtual central processing units (vCPUs), wherein each VM of the Y VMs comprises a paravirtualized driver (virtio device), wherein the Y VMs comprise a k th VM, wherein the k th VM comprises an i th virtio device, wherein the i th virtio device corresponds to a j th vhost kernel thread of the Y vhost kernel threads, and wherein the host comprises:

a memory; and

a processor coupled to the memory and configured to:

determine an n th pCPU from U target pCPUs when the j th vhost kernel thread triggers an i th vhost thread, wherein the U target pCPUs are pCPUs that comprise an affinity relationship with both the i th vhost thread and V target vCPUs, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and comprise an affinity relationship with a virtual interrupt of the i th virtio device, wherein the virtual interrupt of the i th virtio device corresponds to the i th vhost thread, wherein the X pCPUs comprise the U target pCPUs, and wherein the Z vCPUs comprise the V target vCPUs;

set the n th pCPU to process the i th vhost thread;

determine the virtual interrupt of the i th virtio device according to the i th vhost thread; and

determine an m th vCPU from the V target vCPUs such that the k th VM uses the m th vCPU to execute the virtual interrupt of the i th virtio device,

wherein X, Y, and Z are positive integers greater than 1, wherein U is a positive integer greater than or equal to 1 and less than or equal to X, wherein V is a positive integer greater than or equal to 1 and less than or equal to Z, and wherein i, j, k, m, and n are positive integers.

17. The host according to claim 16 , wherein the processor is further configured to:

determine the affinity relationship between the V target vCPUs and an i th virtual interrupt, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the virtual interrupt of the i th virtio device;

determine the U target pCPUs, wherein the V target vCPUs can run on the U target pCPUs, wherein U is equal to 1;

determine the i th vhost thread corresponding to the virtual interrupt of the i th virtio device; and

determine the affinity relationship between the i th vhost thread and the U target pCPUs, wherein the i th vhost thread can be processed by the U target pCPUs.

18. The host according to claim 16 , wherein the processor is further configured to:

determine the affinity relationship between the V target vCPUs and an i th virtual interrupt, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the virtual interrupt of the i th virtio device;

determine the U target pCPUs, wherein the V target vCPUs can run on the multiple target pCPUs, and wherein U is a positive integer greater than 1 and less than or equal to X;

determine the i th vhost thread corresponding to the virtual interrupt of the i th virtio device; and

determine the affinity relationship between the i th vhost thread and the U target pCPUs, wherein the i th vhost thread can be processed by the U target pCPUs.

19. The host according to claim 18 , wherein the processor is further configured to:

determine whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU;

determine one target vCPU running on the n th pCPU as the m th vCPU such that the k th VM uses the m th vCPU to execute the virtual interrupt of the i th virtio device when there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU; and

determine one target vCPU from the V target vCPUs as the m th vCPU according to a priority sequence such that the k th VM uses the m th vCPU to execute the virtual interrupt of the i th virtio device when there is not at least one target vCPU of the V target vCPUs that runs on the n th pCPU.

20. The host according to claim 19 , wherein determining whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU, the processor is further configured to determine, according to virtual interrupt route information of a virtio device, whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU, wherein the virtual interrupt route information of the virtio device comprises a correspondence between the U target pCPUs and target vCPUs running on the U target pCPUs.

21. A computing node, comprising:

Y physical input/output devices, wherein the Y physical input/output devices comprise a j th physical input/output device;

X physical central processing units (pCPUs);

a memory that is connected to each of the X pCPUs and each of the Y physical input/output devices, wherein one or more pCPUs of the X pCPUs are configured to invoke or execute an operation instruction stored in the memory;

a host;

at least one virtual machine (VM); and

virtual hardware that is virtualized on the at least one VM, wherein the virtual hardware comprises Z virtual central processing units (vCPUs),

wherein the at least one VM comprises a k th VM,

wherein the j th physical input/output device directs to the k th VM,

wherein the host is configured to:

determine an n th pCPU from U target pCPUs when an i th physical interrupt occurs in the j th physical input/output device, wherein the U target pCPUs are pCPUs that comprise an affinity relationship with both the i th physical interrupt and V target vCPUs, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and comprise an affinity relationship with an i th virtual interrupt, wherein the i th virtual interrupt corresponds to the i th physical interrupt, wherein the X pCPUs comprise the U target pCPUs, and wherein the Z vCPUs comprise the V target vCPUs;

set the n th pCPU to process the i th physical interrupt;

determine the i th virtual interrupt according to the i th physical interrupt; and

determine an m th vCPU from the V target vCPUs such that the k th VM uses the m th vCPU to execute the i th virtual interrupt,

wherein X, Y, and Z are positive integers greater than 1,

wherein U is a positive integer greater than or equal to 1 and less than or equal to X,

wherein V is a positive integer greater than or equal to 1 and less than or equal to Z, and

wherein i, j, k, m, and n are positive integers.

22. The computing node according to claim 21 , wherein the host is further configured to determine the affinity relationship between the U target pCPUs and the i th physical interrupt, the affinity relationship between the U target pCPUs and the V target vCPUs, and the affinity relationship between the V target vCPUs and the i th virtual interrupt in the following manners:

determine the affinity relationship between the V target vCPUs and the i th virtual interrupt, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the i th virtual interrupt;

determine the U target pCPUs, wherein the V target vCPUs can run on the U target pCPUs, wherein U is equal to 1;

determine the i th physical interrupt corresponding to the i th virtual interrupt; and

determine the affinity relationship between the i th physical interrupt and the U target pCPUs, wherein the i th physical interrupt can be processed by the U target pCPUs.

23. The computing node according to claim 21 , wherein the host is further configured to determine the affinity relationship between the U target pCPUs and the i th physical interrupt, the affinity relationship between the U target pCPUs and the V target vCPUs, and the affinity relationship between the V target vCPUs and the i th virtual interrupt in the following manners:

determine the affinity relationship between the V target vCPUs and the i th virtual interrupt, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the i th virtual interrupt;

determine the U target pCPUs, wherein the V target vCPUs can run on multiple target pCPUs, and wherein U is a positive integer greater than 1 and less than or equal to X;

determine the i th physical interrupt corresponding to the i th virtual interrupt; and

determine the affinity relationship between the i th physical interrupt and the U target pCPUs, wherein the i th physical interrupt can be processed by the U target pCPUs.

24. The computing node according to claim 23 , wherein determining the m th vCPU from the V target vCPUs, the host is further configured to:

determine whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU;

determine one target vCPU running on the n th pCPU as the m th vCPU when there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU; and

determine one target vCPU from the V target vCPUs as the m th vCPU according to a priority sequence when there is not at least one target vCPU of the V target vCPUs that runs on the n th pCPU.

25. The computing node according to claim 24 , wherein determining whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU, the host is further configured to determine, according to virtual interrupt route information, whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU, wherein the virtual interrupt route information comprises a correspondence between the U target pCPUs and target vCPUs running on the U target pCPUs.

26. A computing node, comprising:

X physical central processing units (pCPUs);

a memory that is connected to the X pCPUs, wherein one or more pCPUs of the X pCPUs are configured to invoke or execute an operation instruction stored in the memory;

a host;

Y virtual machines (VMs);

Y virtual host (vhost) kernel threads; and

virtual hardware that is virtualized on the Y VMs,

wherein the virtual hardware comprises Z virtual central processing units (vCPUs),

wherein each VM of the Y VMs comprises a paravirtualized driver (virtio device),

wherein the Y VMs comprise a k th VM, wherein the k th VM comprises an i th virtio device,

wherein the i th virtio device corresponds to a j th vhost kernel thread of the Y vhost kernel threads,

wherein the host is configured to:

determine an n th pCPU from U target pCPUs when the j th vhost kernel thread triggers an i th vhost thread, wherein the U target pCPUs are pCPUs that have an affinity relationship with both the i th vhost thread and V target vCPUs, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and have an affinity relationship with a virtual interrupt of the i th virtio device, wherein the virtual interrupt of the i th virtio device corresponds to the i th vhost thread, wherein the X pCPUs comprise the U target pCPUs, and wherein the Z vCPUs comprise the V target vCPUs;

set the n th pCPU to process the i th thread;

determine the virtual interrupt of the i th virtio device according to the i th vhost thread; and

determine an m th vCPU from the V target vCPUs such that the k th VM uses the m th vCPU to execute the virtual interrupt of the i th virtio device,

wherein X, Y, and Z are positive integers greater than 1,

wherein U is a positive integer greater than or equal to 1 and less than or equal to X,

wherein V is a positive integer greater than or equal to 1 and less than or equal to Z, and

wherein i, j, k, m, and n are positive integers.

27. The computing node according to claim 26 , wherein the host is further configured to determine the affinity relationship between the U target pCPUs and the i th vhost thread, the affinity relationship between the U target pCPUs and the V target vCPUs, and the affinity relationship between the V target vCPUs and the virtual interrupt of the i th virtio device in the following manners:

determine the affinity relationship between the V target vCPUs and the virtual interrupt of the i th virtio device, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the virtual interrupt of the i th virtio device;

determine the U target pCPUs, wherein the V target vCPUs can run on the U target pCPUs, wherein U is equal to 1;

determine the i th vhost thread corresponding to the virtual interrupt of the i th virtio device; and

determine the affinity relationship between the i th vhost thread and the U target pCPUs, wherein the i th vhost thread can be processed by the U target pCPUs.

28. The computing node according to claim 26 , wherein the host is further configured to determine the affinity relationship between the U target pCPUs and the i th vhost thread, the affinity relationship between the U target pCPUs and the V target vCPUs, and the affinity relationship between the V target vCPUs and the virtual interrupt of the i th virtio device in the following manners:

determine the affinity relationship between the V target vCPUs and the i th virtual interrupt, wherein the V target vCPUs are vCPUs that are virtualized on the k th VM and can process the virtual interrupt of the i th virtio device;

determine the U target pCPUs, wherein the V target vCPUs can run on the multiple target pCPUs, wherein U is a positive integer greater than 1 and less than or equal to X;

determine the i th vhost thread corresponding to the virtual interrupt of the i th virtio device; and

determine the affinity relationship between the i th vhost thread and the U target pCPUs, wherein the i th vhost thread can be processed by the U target pCPUs.

29. The computing node according to claim 28 , wherein determining the m th vCPU from the V target vCPUs, the host is further configured to:

determine whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU;

determine one target vCPU running on the n th pCPU as the m th vCPU when there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU; and

determine one target vCPU from the V target vCPUs as the m th vCPU according to a priority sequence when there is not at least one target vCPU of the V target vCPUs that runs on the n th pCPU.

30. The computing node according to claim 29 , wherein determining whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU, the host is further configured to determine, according to virtual interrupt route information of a virtio device, whether there is at least one target vCPU of the V target vCPUs that runs on the n th pCPU, wherein the virtual interrupt route information of the virtio device comprises a correspondence between the U target pCPUs and target vCPUs running on the U target pCPUs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2016
From: ZHANG, HAOYU; ZANG, HONGYONG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 040746/0934 →
Continuity (2)
Continuation PCTCN2014080430 · Jun 20, 2014
Related Publication 20170102963A1 · Apr 13, 2017