Resolving page faults out of context for shared contexts

US9996357B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9996357-B2
Application numberUS-201514928590-A
CountryUS
Kind codeB2
Filing dateOct 30, 2015
Priority dateOct 30, 2015
Publication dateJun 12, 2018
Grant dateJun 12, 2018

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.

Systems, methods, and computer program products to perform an operation comprising creating, by a kernel, a temporary effective address associated with a virtual segment identifier (VSID), wherein the VSID is received by a processor in an asynchronous interrupt generated by a coherent accelerator in response to a page fault generated by the coherent accelerator in executing an instruction, accessing the temporary effective address by the processor to recreate the page fault on the processor, and resolving the page fault by an operating system executing on the processor.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: creating, by an operating system (OS) kernel, a temporary effective address associated with a virtual segment identifier (VSID), wherein the VSID is received by a processor in an asynchronous interrupt generated by a coherent accelerator in response to a page fault generated by the coherent accelerator in executing an instruction; creating a hidden thread handler in the OS kernel; accessing, by the hidden thread handler executing on the processor, the temporary effective address to recreate the page fault on the processor; and resolving the page fault by the OS executing on the processor. 2. The method of claim 1 , wherein the page fault is generated by the coherent accelerator while executing an instruction of a first process, wherein the first process is associated with a first hardware context of the coherent accelerator shared by a plurality of processes including the first process. 3. The method of claim 2 , wherein the VSID is specified in a segment table shared by the plurality of processes sharing the first hardware context, wherein each of the plurality of processes maintains a distinct effective address space. 4. The method of claim 1 , further comprising: determining a byte offset from the temporary effective address; and determining a real address of a memory location subject to the page fault using the VSID and the byte offset. 5. The method of claim 1 , wherein creating the temporary effective address includes associating the VSID with a temporary process and makes the VSID addressable by the kernel. 6. The method of claim 1 , wherein the page fault was generated by a first process, wherein the OS kernel, when creating the temporary address, is executing a second process, wherein the first and second processes are unrelated, wherein recreating the page fault on the processor converts the asynchronous interrupt to a synchronous exception. 7. The method of claim 1 , wherein the processor is of a plurality of processors in a system, the method further comprising: upon determining the page fault was resolved by the operating system, restarting the coherent accelerator. 8. A system, comprising: a processor; a coherent accelerator; and a memory storing program code, which, when executed on the processor, performs an operation comprising: creating, by an operating system (OS) kernel, a temporary effective address associated with a virtual segment identifier (VSID), wherein the VSID is received by a processor in an asynchronous interrupt generated by a coherent accelerator in response to a page fault generated by the coherent accelerator in executing an instruction; creating a hidden thread handler in the OS kernel; accessing, by the hidden thread handler executing on the processor, the temporary effective address to recreate the page fault on the processor; and resolving the page fault by the OS executing on the processor. 9. The system of claim 8 , wherein the page fault is generated by the coherent accelerator while executing an instruction of a first process, wherein the first process is associated with a first hardware context of the coherent accelerator shared by a plurality of processes including the first process. 10. The system of claim 9 , wherein the VSID is specified in a segment table shared by the plurality of processes sharing the first hardware context, wherein each of the plurality of processes maintains a distinct effective address space. 11. The system of claim 8 , further comprising: determining a byte offset from the temporary effective address; and determining a real address of a memory location subject to the page fault using the VSID and the byte offset. 12. The system of claim 8 , wherein the page fault was generated by a first process, wherein the OS kernel, when creating the temporary address, is executing a second process, wherein the first and second processes are unrelated wherein recreating the page fault on the processor converts the asynchronous interrupt to a synchronous exception. 13. The system of claim 8 , wherein the processor is of a plurality of processors in a system, the operation further comprising: upon determining the page fault was resolved by the operating system, restarting the coherent accelerator. 14. A computer program product comprising: a non-transitory computer-readable storage medium having computer-readable program code embodied therewith, the computer-readable program code executable by one or more computer processors to perform an operation comprising: creating, by an operating system (OS) kernel, a temporary effective address associated with a virtual segment identifier (VSID), wherein the VSID is received by a processor in an asynchronous interrupt generated by a coherent accelerator in response to a page fault generated by the coherent accelerator in executing an instruction; creating a hidden thread handler in the OS kernel; accessing, by the hidden thread handler executing on the processor, the temporary effective address to recreate the page fault on the processor; and resolving the page fault by the OS executing on the processor. 15. The computer program product of claim 14 , wherein the page fault is generated by the coherent accelerator while executing an instruction of a first process, wherein the first process is associated with a first hardware context of the coherent accelerator shared by a plurality of processes including the first process. 16. The computer program product of claim 15 , wherein the VSID is specified in a segment table shared by the plurality of processes sharing the first hardware context, wherein each of the plurality of processes maintains a distinct effective address space. 17. The computer program product of claim 14 , further comprising: determining a byte offset from the temporary effective address; and determining a real address of a memory location subject to the page fault using the VSID and the byte offset. 18. The computer program product of claim 14 , wherein the page fault was generated by a first process, wherein the OS kernel, when creating the temporary address, is executing a second process, wherein the first and second processes are unrelated, wherein recreating the page fault on the processor converts the asynchronous interrupt to a synchronous exception. 19. The computer program product of claim 14 , wherein the processor is of a plurality of processors in the system, the operation further comprising: upon determining the page fault was resolved by the operating system, restarting the coherent accelerator.

Assignees

Inventors

Classifications

  • where tasks reside in different layers, e.g. user- and kernel-space · CPC title

  • G06F9/38Primary

    Concurrent instruction execution, e.g. pipeline or look ahead · CPC title

  • G06F12/08Primary

    in hierarchically structured memory systems, e.g. virtual memory systems · CPC title

  • for multiple virtual address spaces, e.g. segmentation (G06F12/1036 takes precedence) · CPC title

  • Latency reduction · 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 US9996357B2 cover?
Systems, methods, and computer program products to perform an operation comprising creating, by a kernel, a temporary effective address associated with a virtual segment identifier (VSID), wherein the VSID is received by a processor in an asynchronous interrupt generated by a coherent accelerator in response to a page fault generated by the coherent accelerator in executing an instruction, acce…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F9/38. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 12 2018 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).