2017-01-27 11 views
3

일부 기능 이름을 인쇄하려고합니다. CPU ID가이고 기능이 실행됩니다. linux-4.1 kernel을 사용하고 CPU ID를 인쇄 할 때 항상 0입니다. 듀얼 코어 보드를 사용하고 있습니다. 일부 커널 기능이 다른 CPU에서도 실행될 수 있음을 보여주고 싶습니다. CPU를 전환하고 cpu id을 1로 인쇄 할 수있는 방법이 있습니까? armv7 보드를 사용하고 있습니다. : 우리는 번호가 변경 첫 번째 열에서 볼 수 있듯이ARM의 다른 CPU 코어에서 커널 기능을 실행 중입니다.

0) 0.073 us |  mutex_unlock(); 
3) 0.124 us |    iov_iter_fault_in_readable(); 
1) 0.105 us |  fget_light(); 
3)    |    ext3_write_begin() { 
0) 0.071 us |  put_pid(); 
3)    |     ext3_writepage_trans_blocks() { 
3) 0.043 us |     journal_blocks_per_page(); 
1)    |  sock_poll() { 
0) 3.126 us |  } 
1)    |   unix_poll() { 
3) 0.390 us |     } 
0) 6.007 us | } 
3)    |     grab_cache_page_write_begin() { 
1)    |   __pollwait() { 
3)    |     find_lock_page() { 
0) 0.077 us | fput(); 
3) 0.074 us |      find_get_page(); 
1)    |    add_wait_queue() { 
1) 0.081 us |    _raw_spin_lock_irqsave(); 

, 어떻게 수정 커널 소스 것을 달성 할 수있다.

+0

http://stackoverflow.com/questions/7476656/setting-cpu-affinity-for-linux-kernel-not-process 및 http://stackoverflow.com/questions/41870418/printing-cpu- 숫자 유사 - ftrace/41871080 # 41871080 도움이 될 수도 있습니다 !!! – Jeyaram

답변

1

사용자 공간 기능은 sched_setaffinity 시스템 호출을 사용

sched_setaffinity는 CPU를 전환 할 수있는 방법이 있습니까.

sched_setaffinity 시스템 호출의 구현을 살펴보면 커널 공간에 사용 된 동일한 이름의 커널 함수가 있습니다.
http://lxr.free-electrons.com/source/kernel/sched/core.c#L4685

여기서 sched_setaffinity는 커널에서 사용됩니다.
http://lxr.free-electrons.com/source/kernel/trace/trace_hwlat.c#L269