일반적으로 Buddy라고 하면 친구를 뜻한다. 하지만 리눅스에서는 조금 다르다.
Buddy candidates are cache hot
Consider buddies to be cache hot, decreases the likelyness of a cache buddy beging migrated away, increases cache locality
: 버디들은 캐시 핫으로 생각되고, migration이 되는 것을 줄이고, 캐시 locality를 늘린다.
즉 캐시를 공유하는 task를 버디로 묶는 듯 하다. 이런 buddy logic은 task_hot() 함수에서 사용된다. 즉 task가 cache-hot이라고 생각되는지 여부를 판단하는데 사용된다.
Buddy candidates are cache hot
Consider buddies to be cache hot, decreases the likelyness of a cache buddy beging migrated away, increases cache locality
: 버디들은 캐시 핫으로 생각되고, migration이 되는 것을 줄이고, 캐시 locality를 늘린다.
즉 캐시를 공유하는 task를 버디로 묶는 듯 하다. 이런 buddy logic은 task_hot() 함수에서 사용된다. 즉 task가 cache-hot이라고 생각되는지 여부를 판단하는데 사용된다.
/* * Is this task likely cache-hot: */ static int task_hot(struct task_struct *p, u64 now, struct sched_domain *sd) { s64 delta; if (p->sched_class != &fair_sched_class) return 0; /* * Buddy candidates are cache hot: */ if (sched_feat(CACHE_HOT_BUDDY) && this_rq()->nr_running && (&p->se == cfs_rq_of(&p->se)->next || &p->se == cfs_rq_of(&p->se)->last)) return 1; if (sysctl_sched_migration_cost == -1) return 1; if (sysctl_sched_migration_cost == 0) return 0; delta = now - p->se.exec_start; return delta < (s64)sysctl_sched_migration_cost; }
'Enginius > Linux' 카테고리의 다른 글
DWRR_patch guideline -SJ (0) | 2011.09.03 |
---|---|
Real-Time class의 load_balancing (0) | 2011.08.22 |
"all_pinned logic" in Linux (0) | 2011.08.19 |
linux-2.6.24에서 linux-2.6.32로 porting하기 (dec_load(), ) (0) | 2011.08.18 |
CFS(completely fair scheduler) vs DWRR(distributed weighted round robin) (0) | 2011.08.12 |