Keir Fraser wrote:Actually, it's trickier than that. The PDPTR, just like the segments, aren't a real cache, and aren't invalidated by INVLPG. This means you can't go from less permissive to more permissive, which is normally permitted in the x86. The PDPTR should really be thought of as an extended cr3 with four entries (this is also how it would be typically implemented in hardware) rather than as a part of the paging structure per se. We do NOT want to frob %cr4 unless we actually need to clear all the global pages. The stuff in chapter 10 sounds like they're flagging for a revised INVLPG instruction or mode which would fit some of the extremely serious defects in INVLPG that was introduced by haphazard semantics from the P5 and early P6 days. In general, we should assume that INVLPG only flushes the hierarchy above it, and not rely on side effects. In particular, we should only assume INVLPG invalidates the hierarchy immediately above it, not on any side effects. That's basically sane design anyway. Now, all of this reminds me of something somewhat messy: if we share the kernel page tables for trampoline page tables, as discussed elsewhere, we HAVE to do a complete, all-tlb-including-global-pages flush after use, since the kernel pages are global and otherwise will stick around. Unlike the permissions pages, there aren't G enable bits on the higher levels, but only for the PTEs themselves. -hpa --
| Greg Kroah-Hartman | [PATCH 012/196] nozomi driver |
| Ingo Molnar | Re: [patch 00/13] Syslets, "Threadlets", generic AIO support, v3 |
| Rafael J. Wysocki | [PATCH -mm 5/6] Freezer: Remove PF_NOFREEZE from bluetooth threads |
| Ingo Molnar | Re: [PATCH 00/23] per device dirty throttling -v8 |
git: | |
| David Miller | [GIT]: Networking |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Natalie Protasevich | [BUG] New Kernel Bugs |
