什么是__kernel_vsyscall? [英] What is __kernel_vsyscall?
问题描述
我有一个核心看起来与我通常得到的核心不同 - 大多数线程都在__kernel_vsyscall():
I got a core that looks very different from the ones I usually get - most of the threads are in __kernel_vsyscall() :
9 process 11334 0xffffe410 in __kernel_vsyscall ()
8 process 11453 0xffffe410 in __kernel_vsyscall ()
7 process 11454 0xffffe410 in __kernel_vsyscall ()
6 process 11455 0xffffe410 in __kernel_vsyscall ()
5 process 11474 0xffffe410 in __kernel_vsyscall ()
4 process 11475 0xffffe410 in __kernel_vsyscall ()
3 process 11476 0xffffe410 in __kernel_vsyscall ()
2 process 11477 0xffffe410 in __kernel_vsyscall ()
1 process 11323 0x08220782 in MyClass::myfunc ()
这是什么意思?
编辑:
特别是,我通常在pthread_cond_wait和___newselect_nocancel中看到很多线程,现在这些线程在每个线程的第二帧 - 为什么这个核心不同?
In particular, I usually see a lot of threads in "pthread_cond_wait" and "___newselect_nocancel" and now those are on the second frame in each thread - why is this core different?
推荐答案
__ kernel_vsyscal
是linux-gate.so Linux内核的一部分)使用最快的可用方法进行系统调用,优选 sysenter
指令。这件事由 Johan Petersson 正确解释。
__kernel_vsyscal
is the method used by linux-gate.so (a part of the Linux kernel) to make a system call using the fastest available method, preferably the sysenter
instruction. The thing is properly explained by Johan Petersson.
这篇关于什么是__kernel_vsyscall?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!