On 10/19/20 12:00 PM, Jason Gunthorpe wrote: > On Mon, Oct 19, 2020 at 11:36:16AM -0500, Tom Lendacky wrote: > >>> Is RDMA missing something? I don't see anything special in VFIO for >>> instance and the two are very similar - does VFIO work with SME, eg >>> DPDK or something unrelated to virtualization? >> >> If user space is mapping un-encrypted memory, then, yes, it would seem >> that there is a gap in the support where the pgprot_decrypted() would be >> needed in order to override the protection map. > > It isn't "memory" it is PCI BAR pages, eg memory mapped IO Right, I understand that. > >>> Is there a reason not to just add prot_decrypted() to >>> io_remap_pfn_range()? Is there use cases where a caller actually wants >>> encrypted io memory? >> >> As long as you never have physical memory / ram being mapped in this path, >> it seems that applying pgprot_decrypted() would be ok. > > I think the word 'io' implies this is the case.. Heh, you would think so, but I found quite a few things that used ioremap instead of memremap when developing this. > > Let me make a patch for this avenue then, I think it is not OK to add > pgprot_decrypted to every driver.. We already have the special > distinction with io and non-io remap, that seems better. Yup, seems reasonable. > >>> I saw your original patch series edited a few drivers this way, but >>> not nearly enough. So I feel like I'm missing something.. Does vfio >>> work with SME? I couldn't find any sign of it calling prot_decrypted() >>> either? >> >> I haven't tested SME with VFIO/DPDK. > > Hum, I assume it is broken also. Actually quite a swath of drivers > and devices will be broken under this :\ Not sure what you mean by the last statement - in general or when running under VFIO/DPDK? In general, traditional in kernel drivers work just fine under SME without any changes. Thanks, Tom > > Jason >