*/ struct rb_root_cached pi_waiters; /* Updated under owner's pi_lock and rq lock */ struct task_struct *pi_top_task; /* Deadlock detection and priority inheritance handling: */ struct rt_mutex_waiter *pi_blocked_on; #endif #ifdef CONFIG_DEBUG_MUTEXES /* Mutex deadlock detection: ...
u64 gtime;struct prev_cputime prev_cputime;#ifdefCONFIG_VIRT_CPU_ACCOUNTING_GENstruct vtime vtime;#endif #ifdefCONFIG_NO_HZ_FULLatomic_t tick_dep_mask;#endif/* Context switch counts: */unsigned long nvcsw;unsigned long nivcsw;/* Monotonic time in nsecs: */u64 start_time;/* Boot bas...
2 struct vm_area_struct * mmap; //指向虚拟区间(VMA)的链表 3 struct rb_root mm_rb; //指向线性区对象红黑树的根 4 struct vm_area_struct * mmap_cache; //指向最近找到的虚拟区间 5 unsigned long(*get_unmapped_area) (struct file *filp, 6 unsigned long addr, unsigned long len, 7 unsigne...
struct rb_root_cached pi_waiters; /* Updated under owner's pi_lock and rq lock */ struct task_struct *pi_top_task; /* Deadlock detection and priority inheritance handling: */ struct rt_mutex_waiter *pi_blocked_on; #endif #ifdef CONFIG_DEBUG_MUTEXES ...
1structmm_struct {2structvm_area_struct * mmap;//指向虚拟区间(VMA)的链表3structrb_root mm_rb;//指向线性区对象红黑树的根4structvm_area_struct * mmap_cache;//指向最近找到的虚拟区间5unsignedlong(*get_unmapped_area) (structfile *filp,6unsignedlongaddr, unsignedlonglen,7unsignedlongpgoff, unsi...
struct rb_root mm_rb; 1. 2. 3. 4. 在地址空间中,mmap为地址空间的内存区域(用vm_area_struct结构来表示)链表,mm_rb用红黑树来存储,链表表示起来更加方便,红黑树表示起来更加方便查找。区别是,当虚拟区较少的时候,这个时候采用单链表,由mmap指向这个链表,当虚拟区多时此时采用红黑树的结构,由mm_rb指向这...
/* 40 16 */ struct rb_root_cached ins_root; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct rb_root_cached del_root; /* 72 16 */ struct mutex mutex; /* 88 32 */ struct btrfs_inode_item inode_item; /* 120 160 */ /* --- cache...
structrb_rootmm_rb;//指向red_black树 structvm_area_struct*mmap_cache;//找到最近的虚拟区间 unsignedlong(*get_unmapped_area)(struct file *filp,unsignedlongaddr,unsignedlonglen,unsignedlongpgoof,unsignedlongflags); void(*unmap_area)(struct mm_struct *mm,unsignedlongaddr); ...
1struct mm_struct{2struct vm_area_struct*mmap;//指向虚拟区间(VMA)的链表3struct rb_root mm_rb;//指向线性区对象红黑树的根4struct vm_area_struct*mmap_cache;//指向最近找到的虚拟区间5unsignedlong(*get_unmapped_area)(struct file*filp,6unsigned long addr,unsigned long len,7unsigned long pgoff,...
mm_struct 定义在include/linux/mm_types.h 中,其中的域抽象了进程的地址空间,如下图所⽰: 1 2 3 4 5 6 7 891011121314151617181920212223242526272829303132struct mm_struct { struct vm_area_struct * mmap; //指向虚拟区间(VMA)的链表 struct rb_root mm_rb; //指向线性区对象红⿊树的根 st...