US 12,259,824 B2
Assigning input/output virtual addresses using a pre-defined randomness algorithm
Michael Tsirkin, Yokneam (IL)
Assigned to Red Hat, Inc., Raleigh, NC (US)
Filed by RED HAT, INC., Raleigh, NC (US)
Filed on Oct. 26, 2022, as Appl. No. 17/973,839.
Prior Publication US 2024/0143514 A1, May 2, 2024
Int. Cl. G06F 12/1045 (2016.01); G06F 12/1036 (2016.01)
CPC G06F 12/1054 (2013.01) [G06F 12/1036 (2013.01); G06F 2212/7201 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method comprising:
generating, by an input/output memory management unit (IOMMU), an input/output virtual address (IOVA) that includes a string of bits, wherein generating the IOVA involves randomizing one or more of the bits using a pre-defined randomness algorithm;
storing, by the IOMMU in a translation table, an entry that maps the IOVA to a physical memory address of a storage device; and
subsequent to storing the entry in the translation table:
receiving, by the IOMMU, a request from an input/output (IO) device, wherein the request is to access data at the IOVA;
in response to receiving the request, identifying, by the IOMMU, the physical memory address that is mapped to the IOVA in the entry; and
allowing, by the IOMMU, the IO device to access the data at the physical memory address.