On Mon, Jun 16, 2025 at 08:15:11AM +0000, Duan, Zhenzhong wrote: > >IIUIC, the guest kernel cmdline can switch the mode between the > >stage1 (nesting) and stage2 (legacy/emulated VT-d), right? > > Right. E.g., kexec from "intel_iommu=on,sm_on" to "intel_iommu=on,sm_off", > Then first kernel will run in scalable mode and use stage1(nesting) and > second kernel will run in legacy mode and use stage2.
In scalable mode, guest kernel has a stage1 (nested) domain and host kernel has a stage2 (nesting parent) domain. In this case, the VFIO container IOAS could be the system AS corresponding to the kernel-managed stage2 domain. In legacy mode, guest kernel has a stage2 (normal) domain while host kernel has a stage2 (shadow) domain? In this case, the VFIO container IOAS should be the iommu AS corresponding to the kernel guest-level stage2 domain (or should it be shadow)? The ARM model that Shameer is proposing only allows a nested SMMU when such a legacy mode is off. This simplifies a lot of things. But the difficulty of the VT-d model is that it has to rely on a guest bootcmd during runtime.. Nicolin