IP Library Granted Patent US 10,990,436
Granted Patent B2
US 10,990,436 · App. 16/673,358 · Granted Apr 27, 2021

System and method to handle I/O page faults in an I/O memory management unit

Inventor: Shyamkumar T. Iyer (Austin, TX)
Assignee: Dell Products L.P.
G06F9/45558G06F9/30098G06F9/467G06F9/4812G06F9/546G06F12/1009G06F2009/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,990,436
App. No.
16/673,358
Granted
Apr 27, 2021
Kind
B2
Abstract

An information handling system includes an input/output (I/O) device and an input/output memory management unit (I/OMMU). The I/OMMU is configured to translate virtual addresses from the I/O device to physical addresses in a memory. The I/O device is configured to send a first virtual address to the I/OMMU, to receive an error indication from the I/OMMU, and to send an interrupt in response to the error indication, wherein the error indication indicates that the I/OMMU failed to translate the particular first address into a first physical address.

Claims (49)

1. An information handling system, comprising:

a processor;

an input/output (I/O) device that is controlled by the processor via an I/O device driver;

a memory device, wherein a portion of a system physical address (SPA) space of the memory device is allocated to the I/O device driver; and

an input/output memory management unit (I/OMMU) configured to translate virtual addresses from the I/O device to physical addresses in the SPA space;

wherein the I/O device is configured to send a first virtual address to the I/OMMU, to receive a page fault indication from the I/OMMU, and to send an error indication to the I/O device driver in response to the page fault indication, wherein the error indication indicates that the I/OMMU failed to translate the first virtual address into a first physical address; and

wherein, in response to receiving the error indication, the I/O device driver is configured to allocate a sub-portion of the portion of the SPA space to the I/O device, and to send a page table translation to the I/OMMU, the page table translation mapping the first virtual address into a second physical address within the sub-portion.

2. The information handling system of claim 1 , wherein in sending the page table translation to the I/OMMU, the I/O device driver is further configured to send the page table translation to a hypervisor instantiated on the information handling system.

3. The information handling system of claim 2 , further comprising:

an interrupt handler, wherein in sending the page table translation to the I/OMMU, the I/O device driver is further configured to issue an interrupt to the interrupt handler, the interrupt including the page table translation.

4. The information handling system of claim 1 , wherein the I/OMMU includes a translation table.

5. The information handling system of claim 4 , wherein the I/OMMU is further configured to receive the first virtual address, to compare the first virtual address with entries in the translation table, and to determine that the translation table includes no entry associated with the first virtual address.

6. The information handling system of claim 1 , wherein the I/O device includes a transaction retry register, and wherein the I/O device is further configured to store a first transaction associated with the first virtual address to the transaction retry register in response to receiving the error indication.

7. The information handling system of claim 6 , wherein the I/O device driver is further configured to send a retry indication to the I/O device in response to providing the page table translation to the I/OMMU.

8. The information handling system of claim 7 , wherein the I/O device is further configured to provide the first virtual address to the I/OMMU from the transaction retry register in response to receiving the retry indication.

9. The information handling system of claim 1 , wherein the interrupt is a Message Signaled Interrupt-X.

10. A method, comprising:

allocating a portion of a system physical address (SPA) space of a memory device of an information handling system to an input/output (I/O) device driver, wherein a processor of the information handling system is configured to control an I/O device of the information handling system via the I/O device driver;

sending, from the I/O device of the information handling system, to an I/O memory management unit (I/OMMU) of the information handling system, a virtual address, wherein the I/OMMU is configured to translate virtual addresses from the I/O device to physical addresses in a memory of the information handling system;

receiving, by the I/O device, a page fault indication from the I/OMMU, wherein the page fault indication indicates that the I/OMMU failed to translate the first virtual address into a first physical address;

sending, from the I/O device, an error indication to an I/O device driver instantiated on the information handling system in response to the page fault indication, wherein the processor of the information handling system controls the I/O device via the I/O device driver,

allocating, by the I/O device driver, a sub-portion of the portion of the SPA space to the I/O device in response to receiving the error indication; and

sending, by the I/O device driver, a page table translation to the I/OMMU, the page table translation mapping the first virtual address into a second physical address within the sub-portion.

11. The method of claim 10 , wherein in sending the page table translation to the I/OMMU, the method further comprises:

sending, by the I/O device driver, the page table translation to a hypervisor instantiated on the information handling system.

12. The method of claim 11 , wherein in sending the page table translation to the I/OMMU, the method further comprises:

sending, by the I/O device driver, an interrupt to an interrupt handler of the information handling system, the interrupt including the page table translation.

13. The method of claim 10 , wherein the I/OMMU includes a translation table.

14. The method of claim 13 , further comprising:

receiving, by the I/OMMU, the virtual address;

comparing, by the I/O device, the virtual address with entries in the translation table; and

determining, by the I/O device, that the translation table includes no entry associated with the virtual address.

15. The method of claim 10 , further comprising:

storing, by the I/O device, a first transaction associated with the first virtual address to a transaction retry register of the I/O device in response to receiving the page fault indication.

16. The method of claim 15 , further comprising:

sending, by the I/O device driver, a retry indication to the I/O device in response to providing the translation to the I/OMMU.

17. The method of claim 16 , further comprising:

providing, by the I/O device, the first virtual address to the I/OMMU from the transaction retry register in response to receiving the retry indication.

18. The method of claim 10 , wherein the interrupt is a Message Signaled Interrupt-X.

19. An information handling system, comprising:

a first processor including a first memory device that is addressable as a first system physical address (SPA) space of the information handling system;

a second processor including a second memory device that is addressable as a second SPA space of the information handling system;

an input/output (I/O) device that is controlled by at least one of the first and second processors via an I/O device driver; and

an input/output memory management unit (I/OMMU) configured to translate virtual addresses from the I/O device to physical addresses in a third SPA space of the information handling system, the third SPA space including the first and second SPA spaces;

wherein:

a first portion of the first SPA space is allocated to the I/O device driver;

the I/O device is configured to send a first virtual address to the I/OMMU, to receive a page fault indication from the I/OMMU, and to send an error indication to the I/O device driver in response to the page fault indication, wherein the error indication indicates that the I/OMMU failed to translate the particular first address into a first physical address; and

in response to receiving the error indication, the I/O device driver is configured to allocate a second portion of the second SPA space to the I/O device, and to send a page table translation to the I/OMMU, the page table translation mapping the first virtual address into a second physical address within the second portion.

20. The information handling system of claim 19 , wherein in sending the page table translation to the I/OMMU, the I/O device driver is further configured to send the page table translation to a hypervisor instantiated on the information handling system.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2019
From: IYER, SHYAMKUMAR T.
To: DELL PRODUCTS, LP
Reel/Frame 050908/0848 →
Continuity (2)
Continuation In Part 15879080 · Jan 24, 2018
Related Publication 20200065134A1 · Feb 27, 2020