ARM10C : 114 주차
일시 : 2015.08.15 (114 주차 스터디 진행)
모임명 : NAVER_개발자커뮤니티지원_10차ARM-C
장소 : 토즈 타워점
장소지원 : NAVER 개발자 커뮤니티 지원 프로그램
참여인원 : 3명
114 주차 진도
- start_kernel 1 ~/kernel/iamroot/linux-stable/init/main.c
- cgroup_init_early 634 ~/kernel/iamroot/linux-stable/init/main.c
- init_task 5239 RCU_INIT_POINTER(init_task.cgroups, &init_css_set);
main.c::start_kernel()
// ARM10C 20130824
// asmlinkage의 의미
// http://www.spinics.net/lists/arm-kernel/msg87677.html
asmlinkage void __init start_kernel(void)
{
char * command_line;
extern const struct kernel_param __start___param[], __stop___param[];
// ATAG,DTB 정보로 사용
/*
* Need to run as early as possible, to initialize the
* lockdep hash:
*/
lockdep_init();
smp_setup_processor_id();
debug_objects_early_init();
/*
* Set up the the initial canary ASAP:
*/
boot_init_stack_canary();
cgroup_init_early();
cgroup.c::cgroup_init_early()
- call: start_kernel()->cgroup_init_early()
// ARM10C 20150808
int __init cgroup_init_early(void)
{
struct cgroup_subsys *ss;
int i;
atomic_set(&init_css_set.refcount, 1);
// atomic_set에서 한일:
// init_css_set.refcount: 1
INIT_LIST_HEAD(&init_css_set.cgrp_links);
// INIT_LIST_HEAD에서 한일:
// (&init_css_set.cgrp_links)->next: &init_css_set.cgrp_links
// (&init_css_set.cgrp_links)->prev: &init_css_set.cgrp_links
INIT_LIST_HEAD(&init_css_set.tasks);
// INIT_LIST_HEAD에서 한일:
// (&init_css_set.tasks)->next: &init_css_set.tasks
// (&init_css_set.tasks)->prev: &init_css_set.tasks
INIT_HLIST_NODE(&init_css_set.hlist);
// INIT_HLIST_NODE에서 한일:
// (&init_css_set.hlist)->next: NULL
// (&init_css_set.hlist)->pprev: NULL
css_set_count = 1;
// css_set_count: 1
init_cgroup_root(&cgroup_dummy_root);
// init_cgroup_root에서 한일:
// (&(&cgroup_dummy_root)->subsys_list)->next: &(&cgroup_dummy_root)->subsys_list
// (&(&cgroup_dummy_root)->subsys_list)->prev: &(&cgroup_dummy_root)->subsys_list
// (&(&cgroup_dummy_root)->root_list)->next: &(&cgroup_dummy_root)->root_list
// (&(&cgroup_dummy_root)->root_list)->prev: &(&cgroup_dummy_root)->root_list
// (&(&(&cgroup_dummy_root)->top_cgroup)->sibling)->next: &(&(&cgroup_dummy_root)->top_cgroup)->sibling
// (&(&(&cgroup_dummy_root)->top_cgroup)->sibling)->prev: &(&(&cgroup_dummy_root)->top_cgroup)->sibling
// (&(&(&cgroup_dummy_root)->top_cgroup)->children)->next: &(&(&cgroup_dummy_root)->top_cgroup)->children
// (&(&(&cgroup_dummy_root)->top_cgroup)->children)->prev: &(&(&cgroup_dummy_root)->top_cgroup)->children
// (&(&(&cgroup_dummy_root)->top_cgroup)->files)->next: &(&(&cgroup_dummy_root)->top_cgroup)->files
// (&(&(&cgroup_dummy_root)->top_cgroup)->files)->prev: &(&(&cgroup_dummy_root)->top_cgroup)->files
// (&(&(&cgroup_dummy_root)->top_cgroup)->cset_links)->next: &(&(&cgroup_dummy_root)->top_cgroup)->cset_links
// (&(&(&cgroup_dummy_root)->top_cgroup)->cset_links)->prev: &(&(&cgroup_dummy_root)->top_cgroup)->cset_links
// (&(&(&cgroup_dummy_root)->top_cgroup)->release_list)->next: &(&(&cgroup_dummy_root)->top_cgroup)->release_list
// (&(&(&cgroup_dummy_root)->top_cgroup)->release_list)->prev: &(&(&cgroup_dummy_root)->top_cgroup)->release_list
// (&(&(&cgroup_dummy_root)->top_cgroup)->pidlists)->next: &(&(&cgroup_dummy_root)->top_cgroup)->pidlists
// (&(&(&cgroup_dummy_root)->top_cgroup)->pidlists)->prev: &(&(&cgroup_dummy_root)->top_cgroup)->pidlists
// (&(&(&cgroup_dummy_root)->top_cgroup)->event_list)->next: &(&(&cgroup_dummy_root)->top_cgroup)->event_list
// (&(&(&cgroup_dummy_root)->top_cgroup)->event_list)->prev: &(&(&cgroup_dummy_root)->top_cgroup)->event_list
// (&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->count: 1
// (&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->wait_lock)->rlock)->raw_lock: { { 0 } }
// (&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->wait_lock)->rlock)->magic: 0xdead4ead
// (&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->wait_lock)->rlock)->owner: 0xffffffff
// (&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->wait_lock)->rlock)->owner_cpu: 0xffffffff
// (&(&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->wait_list)->next: &(&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->wait_list
// (&(&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->wait_list)->prev: &(&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->wait_list
// (&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->onwer: NULL
// (&(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex)->magic: &(&(&cgroup_dummy_root)->top_cgroup)->pidlist_mutex
// (&(&(&cgroup_dummy_root)->top_cgroup)->event_list_lock)->raw_lock: { { 0 } }
// (&(&(&cgroup_dummy_root)->top_cgroup)->event_list_lock)->magic: 0xdead4ead
// (&(&(&cgroup_dummy_root)->top_cgroup)->event_list_lock)->owner: 0xffffffff
// (&(&(&cgroup_dummy_root)->top_cgroup)->event_list_lock)->owner_cpu: 0xffffffff
// (&(&(&(&cgroup_dummy_root)->top_cgroup)->xattrs)->head)->next: &(&(&(&cgroup_dummy_root)->top_cgroup)->xattrs)->head
// (&(&(&(&cgroup_dummy_root)->top_cgroup)->xattrs)->head)->prev: &(&(&(&cgroup_dummy_root)->top_cgroup)->xattrs)->head
// (&(&(&(&cgroup_dummy_root)->top_cgroup)->xattrs)->lock)->raw_lock: { { 0 } }
// (&(&(&(&cgroup_dummy_root)->top_cgroup)->xattrs)->lock)->magic: 0xdead4ead
// (&(&(&(&cgroup_dummy_root)->top_cgroup)->xattrs)->lock)->owner: 0xffffffff
// (&(&(&(&cgroup_dummy_root)->top_cgroup)->xattrs)->lock)->owner_cpu: 0xffffffff
//
// (&(&cgroup_dummy_root)->top_cgroup)->dummy_css.cgroup: &(&cgroup_dummy_root)->top_cgroup
// (&(&cgroup_dummy_root)->top_cgroup)->root: &cgroup_dummy_root
// (&(&cgroup_dummy_root)->top_cgroup)->name: (struct cgroup_name *)(&root_cgroup_name)
// (&cgroup_dummy_root)->number_of_cgroups: 1
//
// (&cgroup_dummy_root)->cgroup_idr의 맵버값을 0으로 초기화 수행
// (&(&(&cgroup_dummy_root)->cgroup_idr)->lock)->raw_lock: { { 0 } }
// (&(&(&cgroup_dummy_root)->cgroup_idr)->lock)->magic: 0xdead4ead
// (&(&(&cgroup_dummy_root)->cgroup_idr)->lock)->owner: 0xffffffff
// (&(&(&cgroup_dummy_root)->cgroup_idr)->lock)->owner_cpu: 0xffffffff
cgroup_root_count = 1;
// cgroup_root_count: 1
RCU_INIT_POINTER(init_task.cgroups, &init_css_set);
// RCU_INIT_POINTER에서 한일:
// (&(&cgroup_dummy_root)->top_cgroup)->name: (struct cgroup_name *)(&root_cgroup_name)
// 2015/08/08 종료
// 2015/08/15 시작
init_cgrp_cset_link.cset = &init_css_set;
// init_cgrp_cset_link.cset: &init_css_set
// cgroup_dummy_top: &cgroup_dummy_root.top_cgroup
init_cgrp_cset_link.cgrp = cgroup_dummy_top;
// init_cgrp_cset_link.cgrp: &cgroup_dummy_root.top_cgroup
list_add(&init_cgrp_cset_link.cset_link, &cgroup_dummy_top->cset_links);
// list_add에서 한일:
// list의 HEAD인 &cgroup_dummy_top->cset_links에 &init_cgrp_cset_link.cset_link 추가
//
// (&cgroup_dummy_top->cset_links)->prev: &init_cgrp_cset_link.cset_link
// (&init_cgrp_cset_link.cset_link)->next: &cgroup_dummy_top->cset_links
// (&init_cgrp_cset_link.cset_link)->prev: &cgroup_dummy_top->cset_links
// (&cgroup_dummy_top->cset_links)->next: &init_cgrp_cset_link.cset_link
list_add(&init_cgrp_cset_link.cgrp_link, &init_css_set.cgrp_links);
// list_add에서 한일:
// list의 HEAD인 &init_css_set.cgrp_links에 &init_cgrp_cset_link.cgrp_link 추가
//
// (&init_css_set.cgrp_links)->prev: &init_cgrp_cset_link.cgrp_link
// (&init_cgrp_cset_link.cgrp_link)->next: &init_css_set.cgrp_links
// (&init_cgrp_cset_link.cgrp_link)->prev: &init_css_set.cgrp_links
// (&init_css_set.cgrp_links)->next: &init_cgrp_cset_link.cgrp_link
// 2015/08/15 종료
log
0943280..851984e master -> origin/master
Updating 0943280..851984e
Fast-forward
arch/arm/include/asm/atomic.h | 3 +
arch/arm/include/asm/processor.h | 1 +
fs/file.c | 1 +
fs/fs_struct.c | 1 +
include/asm-generic/param.h | 1 +
include/linux/bitmap.h | 2 +
include/linux/cgroup.h | 5 +
include/linux/compiler.h | 2 +
include/linux/cpumask.h | 16 ++-
include/linux/ftrace.h | 7 +-
include/linux/idr.h | 2 +
include/linux/init_task.h | 304 +++++++++++++++++++++++++++++++++++++--
include/linux/irqflags.h | 3 +-
include/linux/list.h | 82 +++++++++++
include/linux/lockdep.h | 4 +-
include/linux/mutex-debug.h | 2 +
include/linux/pid.h | 4 +
include/linux/plist.h | 13 ++
include/linux/rcupdate.h | 7 +
include/linux/sched.h | 2 +
include/linux/sched/rt.h | 4 +
include/linux/spinlock.h | 6 +
include/linux/spinlock_types.h | 20 +++
include/linux/threads.h | 1 +
include/linux/types.h | 2 +
include/linux/xattr.h | 15 ++
include/uapi/linux/sched.h | 1 +
init/init_task.c | 112 +++++++++++++++
init/main.c | 1 +
kernel/cgroup.c | 263 +++++++++++++++++++++++++++++++++
kernel/locking/mutex.c | 2 +
kernel/nsproxy.c | 1 +
lib/idr.c | 14 ++
mm/init-mm.c | 1 +
34 files changed, 891 insertions(+), 14 deletions(-)
851984e..a8f6f9b master -> origin/master
Updating 851984e..a8f6f9b
Fast-forward
kernel/cgroup.c | 2 ++
1 file changed, 2 insertions(+)
댓글 없음:
댓글 쓰기