On Mon, 2019-06-17 at 12:12 -0700, Andy Lutomirski wrote: > On Mon, Jun 17, 2019 at 11:37 AM Dave Hansen <dave.hansen@xxxxxxxxx> wrote: > > > > Tom Lendacky, could you take a look down in the message to the talk of > > SEV? I want to make sure I'm not misrepresenting what it does today. > > ... > > > > > > > > I actually don't care all that much which one we end up with. It's not > > > > like the extra syscall in the second options means much. > > > > > > The benefit of the second one is that, if sys_encrypt is absent, it > > > just works. In the first model, programs need a fallback because > > > they'll segfault of mprotect_encrypt() gets ENOSYS. > > > > Well, by the time they get here, they would have already had to allocate > > and set up the encryption key. I don't think this would really be the > > "normal" malloc() path, for instance. > > > > > > How do we > > > > eventually stack it on top of persistent memory filesystems or Device > > > > DAX? > > > > > > How do we stack anonymous memory on top of persistent memory or Device > > > DAX? I'm confused. > > > > If our interface to MKTME is: > > > > fd = open("/dev/mktme"); > > ptr = mmap(fd); > > > > Then it's hard to combine with an interface which is: > > > > fd = open("/dev/dax123"); > > ptr = mmap(fd); > > > > Where if we have something like mprotect() (or madvise() or something > > else taking pointer), we can just do: > > > > fd = open("/dev/anything987"); > > ptr = mmap(fd); > > sys_encrypt(ptr); > > I'm having a hard time imagining that ever working -- wouldn't it blow > up if someone did: > > fd = open("/dev/anything987"); > ptr1 = mmap(fd); > ptr2 = mmap(fd); > sys_encrypt(ptr1); > > So I think it really has to be: > fd = open("/dev/anything987"); > ioctl(fd, ENCRYPT_ME); > mmap(fd); This requires "/dev/anything987" to support ENCRYPT_ME ioctl, right? So to support NVDIMM (DAX), we need to add ENCRYPT_ME ioctl to DAX? > > But I really expect that the encryption of a DAX device will actually > be a block device setting and won't look like this at all. It'll be > more like dm-crypt except without device mapper. Are you suggesting not to support MKTME for DAX, or adding MKTME support to dm-crypt? Thanks, -Kai