问题
Are there kernel functions in Linux that would return the number of the physical core and logical core (in case of Hyperthreading) on which a kernel module is running ?
回答1:
Have a look at the end of include/linux/smp.h
: smp_processor_id()
gives you the number of the current executing CPU. get_cpu()
will do
the same and will also disable preemption so that you will stay on
that CPU until put_cpu()
is called.
From user-space, you can use sched_getcpu()
or getcpu()
to obtain the same information.
来源:https://stackoverflow.com/questions/7315907/how-to-find-physical-and-logical-core-number-in-a-kernel-module