Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F175565744
D59995.id187751.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D59995.id187751.diff
View Options
diff --git a/sys/powerpc/aim/mmu_oea64.c b/sys/powerpc/aim/mmu_oea64.c
--- a/sys/powerpc/aim/mmu_oea64.c
+++ b/sys/powerpc/aim/mmu_oea64.c
@@ -101,6 +101,13 @@
#include "mmu_oea64.h"
+/*
+ * PGA_EXECUTABLE is set when an executable mapping of the page is created and
+ * cleared when the page's last mapping is destroyed. It is used to avoid
+ * redundant synchronization of the instruction cache.
+ */
+#define PGA_EXECUTABLE PGA_PMAP_PRIV1
+
void moea64_release_vsid(uint64_t vsid);
uintptr_t moea64_get_unique_vsid(void);
diff --git a/sys/vm/vm_page.h b/sys/vm/vm_page.h
--- a/sys/vm/vm_page.h
+++ b/sys/vm/vm_page.h
@@ -350,8 +350,9 @@
* exclusive busied. The MI VM layer must never access this flag
* directly. Instead, it should call pmap_page_is_write_mapped().
*
- * PGA_EXECUTABLE may be set by pmap routines, and indicates that a page has
- * at least one executable mapping. It is not consumed by the MI VM layer.
+ * PGA_PMAP_PRIV1 is reserved for use by the pmap, which defines its meaning.
+ * The MI VM layer does not consume it, except to assert that it is clear when
+ * a managed page is freed.
*
* PGA_NOSYNC must be set and cleared with the page busy lock held.
*
@@ -383,7 +384,7 @@
*/
#define PGA_WRITEABLE 0x0001 /* page may be mapped writeable */
#define PGA_REFERENCED 0x0002 /* page has been referenced */
-#define PGA_EXECUTABLE 0x0004 /* page may be mapped executable */
+#define PGA_PMAP_PRIV1 0x0004 /* reserved for use by the pmap */
#define PGA_ENQUEUED 0x0008 /* page is enqueued in a page queue */
#define PGA_DEQUEUE 0x0010 /* page is due to be dequeued */
#define PGA_REQUEUE 0x0020 /* page is due to be requeued */
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -4120,7 +4120,7 @@
if ((m->oflags & VPO_UNMANAGED) == 0) {
KASSERT(!pmap_page_is_mapped(m),
("vm_page_free_prep: freeing mapped page %p", m));
- KASSERT((m->a.flags & (PGA_EXECUTABLE | PGA_WRITEABLE)) == 0,
+ KASSERT((m->a.flags & (PGA_PMAP_PRIV1 | PGA_WRITEABLE)) == 0,
("vm_page_free_prep: mapping flags set in page %p", m));
} else {
KASSERT(m->a.queue == PQ_NONE,
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Oct 12, 6:09 PM (37 m, 38 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40691339
Default Alt Text
D59995.id187751.diff (2 KB)
Attached To
Mode
D59995: vm_page: Replace PGA_EXECUTABLE with PGA_MACHDEP0004
Attached
Detach File
Event Timeline
Log In to Comment