Revert "mm: relocate 'write_protect_seq' in struct mm_struct"
This reverts commit 2e3025434a6ba090c85871a1d4080ff784109e1f. It breaks the abi right now, but will come back in through the `android12-5.10` branch in the near future. Bug: 161946584 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com> Change-Id: I5db1a5a7d6025c34528a57544928a89b2c2570b5
This commit is contained in:
@@ -468,6 +468,13 @@ struct mm_struct {
|
|||||||
*/
|
*/
|
||||||
atomic_t has_pinned;
|
atomic_t has_pinned;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @write_protect_seq: Locked when any thread is write
|
||||||
|
* protecting pages mapped by this mm to enforce a later COW,
|
||||||
|
* for instance during page table copying for fork().
|
||||||
|
*/
|
||||||
|
seqcount_t write_protect_seq;
|
||||||
|
|
||||||
#ifdef CONFIG_MMU
|
#ifdef CONFIG_MMU
|
||||||
atomic_long_t pgtables_bytes; /* PTE page table pages */
|
atomic_long_t pgtables_bytes; /* PTE page table pages */
|
||||||
#endif
|
#endif
|
||||||
@@ -476,18 +483,6 @@ struct mm_struct {
|
|||||||
spinlock_t page_table_lock; /* Protects page tables and some
|
spinlock_t page_table_lock; /* Protects page tables and some
|
||||||
* counters
|
* counters
|
||||||
*/
|
*/
|
||||||
/*
|
|
||||||
* With some kernel config, the current mmap_lock's offset
|
|
||||||
* inside 'mm_struct' is at 0x120, which is very optimal, as
|
|
||||||
* its two hot fields 'count' and 'owner' sit in 2 different
|
|
||||||
* cachelines, and when mmap_lock is highly contended, both
|
|
||||||
* of the 2 fields will be accessed frequently, current layout
|
|
||||||
* will help to reduce cache bouncing.
|
|
||||||
*
|
|
||||||
* So please be careful with adding new fields before
|
|
||||||
* mmap_lock, which can easily push the 2 fields into one
|
|
||||||
* cacheline.
|
|
||||||
*/
|
|
||||||
struct rw_semaphore mmap_lock;
|
struct rw_semaphore mmap_lock;
|
||||||
|
|
||||||
struct list_head mmlist; /* List of maybe swapped mm's. These
|
struct list_head mmlist; /* List of maybe swapped mm's. These
|
||||||
@@ -508,15 +503,7 @@ struct mm_struct {
|
|||||||
unsigned long stack_vm; /* VM_STACK */
|
unsigned long stack_vm; /* VM_STACK */
|
||||||
unsigned long def_flags;
|
unsigned long def_flags;
|
||||||
|
|
||||||
/**
|
|
||||||
* @write_protect_seq: Locked when any thread is write
|
|
||||||
* protecting pages mapped by this mm to enforce a later COW,
|
|
||||||
* for instance during page table copying for fork().
|
|
||||||
*/
|
|
||||||
seqcount_t write_protect_seq;
|
|
||||||
|
|
||||||
spinlock_t arg_lock; /* protect the below fields */
|
spinlock_t arg_lock; /* protect the below fields */
|
||||||
|
|
||||||
unsigned long start_code, end_code, start_data, end_data;
|
unsigned long start_code, end_code, start_data, end_data;
|
||||||
unsigned long start_brk, brk, start_stack;
|
unsigned long start_brk, brk, start_stack;
|
||||||
unsigned long arg_start, arg_end, env_start, env_end;
|
unsigned long arg_start, arg_end, env_start, env_end;
|
||||||
|
Reference in New Issue
Block a user