System and method for detecting false sharing

US10402292B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10402292-B2
Application numberUS-201715584749-A
CountryUS
Kind codeB2
Filing dateMay 2, 2017
Priority dateJul 26, 2013
Publication dateSep 3, 2019
Grant dateSep 3, 2019

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 method of false sharing detection includes performing, by a device, a plurality of optimization passes on source code, to produce optimized source code and receiving, by the device, selection criteria, The method also includes adding instrumentation to the optimized source code, by the device, after performing the plurality of optimization passes, to produce an instrumented code, where the instrumentation is configured to track memory access addresses and access types of global variables and heap variables in accordance with the selection criteria.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of false sharing detection, the method comprising: performing, by a computing device, a plurality of optimization passes on source code, to produce optimized source code; receiving, by the computing device, selection criteria, the selection criteria indicating items to be instrumented, items not to be instrumented, or a combination of items to be instrumented and items not to be instrumented; and adding instrumentation to the optimized source code, by the computing device, during compilation of the source code and after performing the plurality of optimization passes, to produce an instrumented code, wherein the instrumentation is configured to track, in accordance with execution of the instrumented code in a run-time environment that includes a plurality of central processing unit (CPU) cores, memory access addresses and access types of global variables and heap variables in accordance with the selection criteria to facilitate detection of false sharing between cache lines of the CPU. 2. The method of claim 1 , wherein adding the instrumentation into the optimized source code comprises inserting instrumentation for read accesses and for write accesses. 3. The method of claim 1 , wherein adding the instrumentation into the optimized source code comprises inserting instrumentation for write accesses and not inserting instrumentation for read accesses. 4. The method of claim 1 , wherein the selection criteria comprises a black list of items not to be instrumented. 5. The method of claim 1 , wherein the selection criteria comprises a red list of items to be instrumented. 6. The method of claim 1 , wherein the selection criteria indicates that all items be instrumented. 7. The method of claim 1 , wherein receiving the selection criteria comprises receiving the selection criteria from a user. 8. A computing device comprising: a non-transitory memory storage comprising instructions; and one or more processors in communication with the memory, wherein the one or more processors execute the instructions to: perform a plurality of optimization passes on source code, to produce optimized source code; receive selection criteria, the selection criteria indicating items to be instrumented, items not to be instrumented, or a combination of items to be instrumented and items not to be instrumented; and add instrumentation to the optimized source code during compilation of the source code and after performing the plurality of optimization passes, to produce an instrumented code, wherein the instrumentation is configured to track, in accordance with execution of the instrumented code in a run-time environment that includes a plurality of central processing unit (CPU) cores, memory access addresses and access types of global variables and heap variables in accordance with the selection criteria to facilitate detection of false sharing between cache lines of the CPU. 9. The computing device of claim 8 , wherein the instructions to add the instrumentation into the optimized source code comprise instructions to insert instrumentation for read accesses and for write accesses. 10. The computing device of claim 8 , wherein the instructions to add the instrumentation into the optimized source code comprise instructions to insert instrumentation for write accesses and not inserting instrumentation for read accesses. 11. The computing device of claim 8 , wherein the selection criteria comprises a black list of items not to be instrumented. 12. The computing device of claim 8 , wherein the selection criteria comprises a red list of items to be instrumented. 13. The computing device of claim 8 , wherein the selection criteria indicates that all items be instrumented. 14. The computing device of claim 8 , wherein the instructions to receive the selection criteria comprise instructions to receive the selection criteria from a user. 15. A non-transitory computer-readable media storing computer instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising: performing a plurality of optimization passes on source code, to produce optimized source code; receiving selection criteria, the selection criteria indicating items to be instrumented, items not to be instrumented, or a combination of items to be instrumented and items not to be instrumented; and adding instrumentation to the optimized source code after performing the plurality of optimization passes, to produce an instrumented code, wherein the instrumentation is configured to track, in accordance with execution of the instrumented code in a run-time environment that includes a plurality of central processing unit (CPU) cores, memory access addresses and access types of global variables and heap variables in accordance with the selection criteria to facilitate detection of false sharing between cache lines of the CPU. 16. The non-transitory computer-readable media of claim 15 , wherein adding the instrumentation into the optimized source code comprises inserting instrumentation for read accesses and for write accesses. 17. The non-transitory computer-readable media of claim 15 , wherein adding the instrumentation into the optimized source code comprises inserting instrumentation for write accesses and not inserting instrumentation for read accesses. 18. The non-transitory computer-readable media of claim 15 , wherein the selection criteria comprises a black list of items not to be instrumented. 19. The non-transitory computer-readable media of claim 15 , wherein the selection criteria comprises a red list of items to be instrumented. 20. The non-transitory computer-readable media of claim 15 , wherein the selection criteria indicates that all items be instrumented.

Assignees

Inventors

Classifications

  • Benchmarking · CPC title

  • using speculative control · CPC title

  • where the computing system component is a memory, e.g. virtual memory, cache (accessing, addressing or allocating within memory systems or architectures G06F12/00; checking stores for correct operation G11C29/00) · CPC title

  • Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes · CPC title

  • Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents (software debugging using additional hardware using a specific debug interface G06F11/3656; performance evaluation by tracing or monitoring G06F11/3466) · 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 US10402292B2 cover?
In one embodiment, a method of false sharing detection includes performing, by a device, a plurality of optimization passes on source code, to produce optimized source code and receiving, by the device, selection criteria, The method also includes adding instrumentation to the optimized source code, by the device, after performing the plurality of optimization passes, to produce an instrumented…
Who is the assignee on this patent?
Futurewei Technologies Inc
What technology area does this patent fall under?
Primary CPC classification G06F11/3003. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 03 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).