Lines Matching refs:process
53 record, and the PASID (process address space ID) of the current process.
76 - Allocate the PASID, and program the process page-table (%cr3 register) in the
92 The kernel must allocate a PASID on behalf of each process which will use
93 ENQCMD and program it into the new MSR to communicate the process identity to
95 from this process. When a user submits a work descriptor to a device using the
100 entry in IOMMU with the process address used by the CPU (e.g. %cr3 register in
105 process share the same page tables, thus the same MSR value.
110 PASID is initialized as IOMMU_PASID_INVALID (-1) when a process is created.
113 allocated. This allocation happens when a process opens/binds an SVA-capable
114 device but finds no PASID for this process. Subsequent binds of the same, or
117 Although the PASID is allocated to the process by opening a device,
118 it is not active in any of the threads of that process. It's loaded to the
123 has not been initialized with the PASID value assigned to the process
125 been allocated for the process, and so initializes the IA32_PASID MSR
128 On fork(2) or exec(2) the PASID is removed from the process as it no
132 able to use the PASID allocated to the process. The IA32_PASID is not
137 were created before the PASID was assigned to the mm of the process, newly
143 If a process does a close(2) of the device file descriptor and munmap(2)
146 process that accessed the device. But this is harmless as without the
152 * Each process has many threads, but only one PASID.
157 * For each device with which a process interacts, there must be
159 * Many threads within a process can share a single portal to access
163 * The single process-wide PASID is used by all threads to interact
187 there is a separate hardware instance required per process. For example,
188 consider doorbells as a mechanism of informing hardware about work to process.
189 Each doorbell is required to be spaced 4k (or page-size) apart for process
204 used with ENQCMD to submit work, the device can distinguish the process
206 process. This helps the device scale to a large number of processes.