Messages in this thread | | | From | "Edgecombe, Rick P" <> | Subject | Re: [GIT PULL] x86/shstk for 6.4 | Date | Sun, 7 May 2023 16:24:24 +0000 |
| |
On Sat, 2023-05-06 at 17:19 -0700, Linus Torvalds wrote: > So I think "novma" is more closely related to what the semantics > actually are, and the "kernel" thing is just a "on x86-64, we have > this special case where we don't have vma's and don't worry about > losing the dirty bit". > > Hmm?
Yea, it seems ok.
To me what pte_mkwrite_novma() really does is make a PTE writable in the conventional sense. Unfortunately, now that "writable" is starting to get overloaded, there is no good name specific to the original type of writable.
I don't know if I'm bikeshedding here, but what pte_mkwrite(pte, vma) kind of does now is remove a PTE's protection in a general sense. After using it, userspace can change the mapping. Sometimes with normal writes for the that type of VMA, sometimes with shadow stack accesses for another. So I wonder about leaving pte_mkwrite(pte), and creating pte_mkunprotected(pte, vma) or pte_mkmodifiable(pte, vma). This makes more sense to me, but then I guess every other architecture has to wade through this concept to deal with the simpler writable pattern they care about. It also no longer matches VM_WRITE. I'll stick with pte_mkwrite_novma(), unless you like that better.
BTW, I forgot to mention that there is another architecture (maybe 2) that is expected to use this refactor for implementing their shadow stacks. So FWIW, this churn is not just for x86.
| |