>> ENQCMDS does not have the restriction of using a single CPU MSR to store >> PASIDs, PASID is supplied to the instruction operand. > > Huh? That isn't what it says in the programming manual. It says the > PASID only comes from the IA32_PASID msr and the only two operands are > the destination MMIO and the memory source for the rest of the payload. Jason, Two different instructions with only one letter different in the name. ENQCMD - ring 3 instruction. The PASID is inserted into the descriptor pushed to the device from the IA32_PASID MSR. ENQCMDS - ring 0 instruction (see that trailing "S" for Supervisor mode). In this case the submitter can include any PASID value they want in the in-memory copy of the descriptor and ENQCMDS will pass that to the device. -Tony