Page MenuHomeFreeBSD

D15462.id42656.diff
No OneTemporary

D15462.id42656.diff

Index: sys/vm/vm_page.h
===================================================================
--- sys/vm/vm_page.h
+++ sys/vm/vm_page.h
@@ -208,7 +208,7 @@
uint16_t flags; /* page PG_* flags (P) */
uint8_t aflags; /* access is atomic */
uint8_t oflags; /* page VPO_* flags (O) */
- uint8_t queue; /* page queue index (Q) */
+ volatile uint8_t queue; /* page queue index (Q) */
int8_t psind; /* pagesizes[] index (O) */
int8_t segind; /* vm_phys segment index (C) */
uint8_t order; /* index of the buddy queue (F) */
Index: sys/vm/vm_page.c
===================================================================
--- sys/vm/vm_page.c
+++ sys/vm/vm_page.c
@@ -3088,10 +3088,11 @@
static struct mtx *
vm_page_pagequeue_lockptr(vm_page_t m)
{
+ uint8_t queue;
- if (m->queue == PQ_NONE)
+ if ((queue = m->queue) == PQ_NONE)
return (NULL);
- return (&vm_page_pagequeue(m)->pq_mutex);
+ return (&vm_pagequeue_domain(m)->vmd_pagequeues[queue].pq_mutex);
}
static inline void

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 25, 6:49 PM (1 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
24184676
Default Alt Text
D15462.id42656.diff (1001 B)

Event Timeline