|
@@ -224,7 +224,8 @@ struct vm_region {
|
|
|
* library, the executable area etc).
|
|
|
*/
|
|
|
struct vm_area_struct {
|
|
|
- struct mm_struct * vm_mm; /* The address space we belong to. */
|
|
|
+ /* The first cache line has the info for VMA tree walking. */
|
|
|
+
|
|
|
unsigned long vm_start; /* Our start address within vm_mm. */
|
|
|
unsigned long vm_end; /* The first byte after our end address
|
|
|
within vm_mm. */
|
|
@@ -232,9 +233,6 @@ struct vm_area_struct {
|
|
|
/* linked list of VM areas per task, sorted by address */
|
|
|
struct vm_area_struct *vm_next, *vm_prev;
|
|
|
|
|
|
- pgprot_t vm_page_prot; /* Access permissions of this VMA. */
|
|
|
- unsigned long vm_flags; /* Flags, see mm.h. */
|
|
|
-
|
|
|
struct rb_node vm_rb;
|
|
|
|
|
|
/*
|
|
@@ -245,6 +243,12 @@ struct vm_area_struct {
|
|
|
*/
|
|
|
unsigned long rb_subtree_gap;
|
|
|
|
|
|
+ /* Second cache line starts here. */
|
|
|
+
|
|
|
+ struct mm_struct *vm_mm; /* The address space we belong to. */
|
|
|
+ pgprot_t vm_page_prot; /* Access permissions of this VMA. */
|
|
|
+ unsigned long vm_flags; /* Flags, see mm.h. */
|
|
|
+
|
|
|
/*
|
|
|
* For areas with an address space and backing store,
|
|
|
* linkage into the address_space->i_mmap interval tree, or
|