uvm_physseg: cluster fields used during RB tree lookup for PHYS_TO_VM_PAGE().
This commit is contained in:
parent
e3d221ef2a
commit
9887ecbe68
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: uvm_physseg.c,v 1.13 2019/12/21 14:41:44 ad Exp $ */
|
||||
/* $NetBSD: uvm_physseg.c,v 1.14 2020/03/15 21:06:30 ad Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1997 Charles D. Cranor and Washington University.
|
||||
@ -87,12 +87,15 @@
|
||||
* uvm_physseg: describes one segment of physical memory
|
||||
*/
|
||||
struct uvm_physseg {
|
||||
/* used during RB tree lookup for PHYS_TO_VM_PAGE(). */
|
||||
struct rb_node rb_node; /* tree information */
|
||||
paddr_t start; /* PF# of first page in segment */
|
||||
paddr_t end; /* (PF# of last page in segment) + 1 */
|
||||
struct vm_page *pgs; /* vm_page structures (from start) */
|
||||
|
||||
/* less performance sensitive fields. */
|
||||
paddr_t avail_start; /* PF# of first free page in segment */
|
||||
paddr_t avail_end; /* (PF# of last free page in segment) +1 */
|
||||
struct vm_page *pgs; /* vm_page structures (from start) */
|
||||
struct extent *ext; /* extent(9) structure to manage pgs[] */
|
||||
int free_list; /* which free list they belong on */
|
||||
u_int start_hint; /* start looking for free pages here */
|
||||
@ -121,9 +124,9 @@ struct vm_page *uvm_physseg_seg_alloc_from_slab(uvm_physseg_t, size_t);
|
||||
struct uvm_physseg_graph {
|
||||
struct rb_tree rb_tree; /* Tree for entries */
|
||||
int nentries; /* Number of entries */
|
||||
};
|
||||
} __aligned(COHERENCY_UNIT);
|
||||
|
||||
static struct uvm_physseg_graph uvm_physseg_graph;
|
||||
static struct uvm_physseg_graph uvm_physseg_graph __read_mostly;
|
||||
|
||||
/*
|
||||
* Note on kmem(9) allocator usage:
|
||||
|
Loading…
Reference in New Issue
Block a user