什么是__kernel_vsyscall? [英] What is __kernel_vsyscall?

查看:525
本文介绍了什么是__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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆