On Fri, Jan 8, 2021 at 9:15 AM Will Deacon <will@xxxxxxxxxx> wrote: > > The big difference in this version is that I have reworked it based on > Kirill's patch which he posted as a follow-up to the original. However, > I can't tell where we've landed on that -- Linus seemed to like it, but > Hugh was less enthusiastic. Yeah, I like it, but I have to admit that it had a disturbingly high number of small details wrong for several versions. I hope you picked up the final version of the code. At the same time, I do think that the "disturbingly high number of issues" was primarily exactly _because_ the old code was so incomprehensible, and I think the end result is much cleaner, so I still like it. >I think that my subsequent patches are an > awful lot cleaner after the rework Yeah, I think that's a side effect of "now the code really makes a lot more sense". Your subsequent patches 2-3 certainly are much simpler now, although I'd be inclined to add an argument to "do_set_pte()" that has the "write" and "pretault" bits in it, instead of having to modify the 'vmf' structure. I still dislike how we basically randomly modify the information in that 'vmf' thing. That said, now it's just a small detail - not really objectionable, just a "this could be cleaner, I think". I think it was Kirill who pointed out that we sadly cannot make 'vmf' read-only anyway, because it does also contain those pre-allocation details etc (vmf->pte etc) that are very much about what the current "state" of the fault is. So while I would hope it could be more read-only than it is, my wish that it could _actually_ be 'const' is clearly just an irrelevant dream. Linus