IP Library Granted Patent US 10,540,292
Granted Patent B2
US 10,540,292 · App. 15/616,486 · Granted Jan 21, 2020

TLB shootdowns for low overhead

Inventors: Eric Northup (Seattle, WA); Benjamin Charles Serebrin (Sunnyvale, CA)
Assignee: Google LLC
G06F12/1027G06F12/1009G06F2212/65G06F2212/68
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,540,292
App. No.
15/616,486
Granted
Jan 21, 2020
Kind
B2
Abstract

Aspects of the disclosure relate to directing and tracking translation lookaside buffer (TLB) shootdowns within hardware. One or more processors, comprising one or more processor cores, may determine that a process executing on a processing core causes one or more virtual memory pages to become disassociated with one or more previously associated physical memory addresses. The processing core which is executing that process which caused the disassociation may generate a TLB shootdown request. The processing core may transmit the TLB shootdown request to the other cores. The TLB shootdown request may include identification information, a shootdown address indicating the disassociated virtual memory page or pages which need to be flushed from the respective TLBs of the other cores, and a notification address indicating where the other cores may acknowledge completion of the TLB shootdown request.

Claims (43)

1. A method for directing and tracking translation lookaside buffer (TLB) shootdowns within hardware comprising:

detecting, by one or more processors, each processor comprising one or more processor cores, that a process executing on a first processing core causes one or more virtual memory pages to become disassociated with one or more previously associated physical memory addresses;

generating, by the first processing core, a TLB shootdown request; and

transmitting, by the first processing core, the TLB shootdown request to others of the one or more processing cores, the TLB shootdown request comprising:

a shootdown address indicating the disassociated virtual memory page or pages to be flushed from the respective TLBs of the other processing cores,

a notification address indicating where the other processing cores may acknowledge completion of the TLB shootdown request, and

identification information, wherein the identification information comprises an identifier for components including one or more advanced programmable interrupt controller IDs (APICIDs), one or more virtual processor IDs (VPIDs), and one or more a process-context identifiers (PCIDs), wherein the components comprise one or more of a virtual machine (VM), a virtual computer processor (VCPU) within the VM, a processor core, and a process executed within a VCPU or processor core.

2. The method of claim 1 further comprising, receiving acknowledgments from the other processing cores upon their completion of the TLB shootdown request, wherein the acknowledgements are received at the notification address.

3. The method of claim 1 , wherein the one or more processors execute one or more virtual machines, wherein the virtual machines include one or more virtual computer processors (VCPUs), and the process may be a first process executing in the one or more VCPUs.

4. The method of claim 1 , further comprising:

determining, by a power management unit, whether a second core which received the TLB shootdown request is in a low power state, and

in the event the second core is in a low power state, acknowledging the TLB shootdown request by the power management unit.

5. The method of claim 1 , further comprising:

determining, by an advanced programmable interrupt controller (APIC), whether a second core which received the TLB shootdown request is in a low power state, and in the event the second core is in a low power state, acknowledging the TLB shootdown request by the APIC.

6. The method of claim 1 , further comprising:

tracking the number of acknowledgements received from the components identified by the identification information until all of the identified components acknowledge the TLB shootdown request; and

completing, by the first processor core, the TLB shootdown request upon receiving acknowledgments from all of the components identified by the identification information.

7. A system for directing and tracking translation lookaside buffer (TLB) shootdowns within hardware, the system comprising:

one or more processors, each processor comprising one or more processor cores, wherein the one or more processors are configured to:

determine that a process executing on a first processing core causes one or more virtual memory pages to become disassociated with one or more previously associated physical memory addresses;

generate a TLB shootdown request; and

transmit the TLB shootdown request to others of the one or more processing cores, the TLB shootdown request comprising:

a shootdown address indicating the disassociated virtual memory page or pages to be flushed from the respective TLBs of the other processing cores,

a notification address indicating where the other processing cores may acknowledge completion of the TLB shootdown request, and

identification information, wherein the identification information comprises an identifier for components including one or more advanced programmable interrupt controller IDs (APICIDs), one or more virtual processor IDs (VPIDs), and one or more a process-context identifiers (PCIDs), wherein the components comprise one or more of a VM, a VCPU within the VM, a processor core, and a process executed within a VCPU or processor core.

8. The system of claim 7 , wherein the one or more processors are configured receive acknowledgments from the other processing cores upon their completion of the TLB shootdown request, wherein the acknowledgements are received at the notification address.

9. The system of claim 7 , wherein the one or more processors are configured to execute one or more virtual machines, wherein the virtual machines include one or more virtual computer processors (VCPUs), and the process is a first process executing in the one or more VCPUs.

10. The system of claim 7 further comprising a power management unit, wherein the power management unit is configured to determine whether a second core which received the TLB shootdown request is in a low power state, and in the event the second core is in a low power state, acknowledging the TLB shootdown request by the power management unit.

11. The system of claim 7 , further comprising an advanced programmable interrupt controller (APIC), wherein the APIC is configured to determine whether a second core which received the TLB shootdown request is in a low power state, and in the event the second core is in a low power state, acknowledging the TLB shootdown request by the APIC.

12. The system of claim 7 , wherein the wherein the one or more processors are configured to track the number of acknowledgements received from the components identified by the identification information until all of the identified components acknowledge the TLB shootdown request; and

complete the TLB shootdown request upon receiving acknowledgments from all of the components identified by the identification information.

13. A non-transitory computer readable medium on which instructions are stored, the instructions, when executed by one or more processors, each processor comprising one or more processor cores, cause the one or more processors to perform a method directing and tracking translation lookaside buffer (TLB) shootdowns within hardware, the method comprising:

determining that a process executing on a first processing core causes one or more virtual memory pages to become disassociated with one or more previously associated physical memory addresses;

generating a TLB shootdown request;

transmitting the TLB shootdown request to others of the one or more processing cores, the TLB shootdown request comprising:

a shootdown address indicating the disassociated virtual memory page or pages to be flushed from the respective TLBs of the other processing cores,

a notification address indicating where the other processing cores may acknowledge completion of the TLB shootdown request, and

identification information, wherein the identification information comprises an identifier for components including one or more advanced programmable interrupt controller IDs (APICIDs), one or more virtual processor IDs (VPIDs), and one or more a process-context identifiers (PCIDs), wherein the components comprise one or more of a VM, a VCPU within the VM, a processor core, and a process executed within a VCPU or processor core.

14. The non-transitory computer readable medium of claim 13 , wherein the method further comprises receiving acknowledgments from the other processing cores upon their completion of the TLB shootdown request, wherein the acknowledgements are received at the notification address.

15. The non-transitory computer readable medium of claim 13 , wherein the method further comprises, in the event a second core is in a low power state, receiving an acknowledgement of the TLB shootdown request from a power management unit.

16. The non-transitory computer readable medium of claim 13 , wherein the method further comprises, in the event a second core is in a low power state, receiving an acknowledgement of the TLB shootdown request from an advanced programmable interrupt controller (APIC).

17. The non-transitory computer readable medium of claim 13 , wherein the method further comprises tracking the number of acknowledgements received from the components identified by the identification information until all of the identified components acknowledge the TLB shootdown request; and

completing the TLB shootdown request upon receiving acknowledgments from all of the components identified by the identification information.

Assignments (2)
CHANGE OF NAME Recorded Oct 20, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044567/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 22, 2017
From: NORTHUP, ERIC; SEREBRIN, BENJAMIN CHARLES
To: GOOGLE INC.
Reel/Frame 043356/0806 →
Continuity (2)
Provisional Application 62347495 · Jun 8, 2016
Related Publication 20170357595A1 · Dec 14, 2017