2017-01-27 7 views
3

一部の関数名を印刷しようとしていますが、CPU IDがで、関数が実行されています。​​を使用して、いつCPU IDを印刷するかは常にゼロです。私はデュアルコアボードを使用しています。私はちょうどいくつかのカーネル関数が他の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- number-similar-to-ftrace/41871080#41871080助けてもらえますか? – Jeyaram

答えて

1

CPU

sched_setaffinityユーザ空間機能がsched_setaffinityシステムコールを使用して切り替えるにはどのような方法があります。

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

関連する問題