Page MenuHomeFreeBSD

D22397.diff
No OneTemporary

D22397.diff

Index: head/sys/sys/param.h
===================================================================
--- head/sys/sys/param.h
+++ head/sys/sys/param.h
@@ -60,7 +60,7 @@
* in the range 5 to 9.
*/
#undef __FreeBSD_version
-#define __FreeBSD_version 1300057 /* Master, propagated to newvers */
+#define __FreeBSD_version 1300058 /* Master, propagated to newvers */
/*
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
Index: head/sys/vm/vm_page.h
===================================================================
--- head/sys/vm/vm_page.h
+++ head/sys/vm/vm_page.h
@@ -234,15 +234,15 @@
struct md_page md; /* machine dependent stuff */
u_int ref_count; /* page references (A) */
volatile u_int busy_lock; /* busy owners lock */
- uint16_t flags; /* page PG_* flags (P) */
- uint8_t order; /* index of the buddy queue (F) */
+ uint16_t aflags; /* atomic flags (A) */
+ uint8_t queue; /* page queue index (Q) */
+ uint8_t act_count; /* page usage count (P) */
+ uint8_t order; /* index of the buddy queue (F) */
uint8_t pool; /* vm_phys freepool index (F) */
- uint8_t aflags; /* atomic flags (A) */
+ uint8_t flags; /* page PG_* flags (P) */
uint8_t oflags; /* page VPO_* flags (O) */
- uint8_t queue; /* page queue index (Q) */
int8_t psind; /* pagesizes[] index (O) */
int8_t segind; /* vm_phys segment index (C) */
- u_char act_count; /* page usage count (P) */
/* NOTE that these must support one bit per DEV_BSIZE in a page */
/* so, on normal X86 kernels, they must be at least 8 bits wide */
vm_page_bits_t valid; /* valid DEV_BSIZE chunk map (O,B) */
@@ -414,14 +414,14 @@
* the inactive queue, thus bypassing LRU. The page lock must be held to
* set this flag, and the queue lock for the page must be held to clear it.
*/
-#define PGA_WRITEABLE 0x01 /* page may be mapped writeable */
-#define PGA_REFERENCED 0x02 /* page has been referenced */
-#define PGA_EXECUTABLE 0x04 /* page may be mapped executable */
-#define PGA_ENQUEUED 0x08 /* page is enqueued in a page queue */
-#define PGA_DEQUEUE 0x10 /* page is due to be dequeued */
-#define PGA_REQUEUE 0x20 /* page is due to be requeued */
-#define PGA_REQUEUE_HEAD 0x40 /* page requeue should bypass LRU */
-#define PGA_NOSYNC 0x80 /* do not collect for syncer */
+#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_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 */
+#define PGA_REQUEUE_HEAD 0x0040 /* page requeue should bypass LRU */
+#define PGA_NOSYNC 0x0080 /* do not collect for syncer */
#define PGA_QUEUE_STATE_MASK (PGA_ENQUEUED | PGA_DEQUEUE | PGA_REQUEUE | \
PGA_REQUEUE_HEAD)
@@ -434,11 +434,11 @@
* allocated from a per-CPU cache. It is cleared the next time that the
* page is allocated from the physical memory allocator.
*/
-#define PG_PCPU_CACHE 0x0001 /* was allocated from per-CPU caches */
-#define PG_FICTITIOUS 0x0004 /* physical page doesn't exist */
-#define PG_ZERO 0x0008 /* page is zeroed */
-#define PG_MARKER 0x0010 /* special queue marker page */
-#define PG_NODUMP 0x0080 /* don't include this page in a dump */
+#define PG_PCPU_CACHE 0x01 /* was allocated from per-CPU caches */
+#define PG_FICTITIOUS 0x02 /* physical page doesn't exist */
+#define PG_ZERO 0x04 /* page is zeroed */
+#define PG_MARKER 0x08 /* special queue marker page */
+#define PG_NODUMP 0x10 /* don't include this page in a dump */
/*
* Misc constants.
@@ -716,7 +716,7 @@
#ifdef INVARIANTS
void vm_page_object_busy_assert(vm_page_t m);
#define VM_PAGE_OBJECT_BUSY_ASSERT(m) vm_page_object_busy_assert(m)
-void vm_page_assert_pga_writeable(vm_page_t m, uint8_t bits);
+void vm_page_assert_pga_writeable(vm_page_t m, uint16_t bits);
#define VM_PAGE_ASSERT_PGA_WRITEABLE(m, bits) \
vm_page_assert_pga_writeable(m, bits)
#else
@@ -749,7 +749,7 @@
#define VM_PAGE_AFLAG_SHIFT 0
#define VM_PAGE_QUEUE_SHIFT 16
#else
-#define VM_PAGE_AFLAG_SHIFT 24
+#define VM_PAGE_AFLAG_SHIFT 16
#define VM_PAGE_QUEUE_SHIFT 8
#endif
#define VM_PAGE_QUEUE_MASK (0xff << VM_PAGE_QUEUE_SHIFT)
@@ -758,7 +758,7 @@
* Clear the given bits in the specified page.
*/
static inline void
-vm_page_aflag_clear(vm_page_t m, uint8_t bits)
+vm_page_aflag_clear(vm_page_t m, uint16_t bits)
{
uint32_t *addr, val;
@@ -782,7 +782,7 @@
* Set the given bits in the specified page.
*/
static inline void
-vm_page_aflag_set(vm_page_t m, uint8_t bits)
+vm_page_aflag_set(vm_page_t m, uint16_t bits)
{
uint32_t *addr, val;
Index: head/sys/vm/vm_page.c
===================================================================
--- head/sys/vm/vm_page.c
+++ head/sys/vm/vm_page.c
@@ -5014,7 +5014,7 @@
}
void
-vm_page_assert_pga_writeable(vm_page_t m, uint8_t bits)
+vm_page_assert_pga_writeable(vm_page_t m, uint16_t bits)
{
if ((bits & PGA_WRITEABLE) == 0)

File Metadata

Mime Type
text/plain
Expires
Fri, Jul 10, 8:14 PM (4 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34939408
Default Alt Text
D22397.diff (5 KB)

Event Timeline