Questions tagged «linux-kernel»

有关Linux内核和Linux内核相关主题的问题,例如。实现细节,例如系统调用,内核自定义等。对于不涉及内核细节的Linux用户空间主题,[linux]或发行标签更为合适。

1
锁定该进程(忽略SIGKILL)是可运行的(不是僵尸或处于不间断的睡眠状态)。它处于什么状态?
我有一个进程,现在已经有几次停止响应了,并且似乎已完全锁定。它不会响应任何使用gdb进行strace或偷看的尝试(gdb挂在wait4()syscall上)。该进程是可运行的,并且不等待syscall(/ proc / X / syscall:)running或处于不间断的睡眠状态(/ proc / X / status:)State: R (running)。 这个过程到底处于什么状态?这可能是某种类型的内核错误吗? 该过程是redis,现在已经发生了几次。看来,唯一可以杀死该进程的是重新启动。操作系统为美分7。 编辑:内核版本是3.10.0-123.13.2.el7.x86_64。尝试更新到3.10.0-229.11.1.el7,以查看是否有任何区别。

1
如何更改Linux上下文切换频率?
如何更改Linux(linaro,ubuntu,debian)上下文切换频率? 我可以权衡使用响应速度较慢的系统来获得更高效的系统。 EDIT1:我有一个主要进程,我想尽可能快地运行(每秒最大时钟周期),因此我想降低上下文切换频率(=增加时间片)。问题是如何做到这一点,并且会产生重大影响。我可以计算上下文切换的成本吗?意思是,我可以估计是否将时间片增加两倍,对于我关心的主要流程,我的性能提升将是多少?


2
如何启用和使用BFQ调度程序?
我刚刚使用ukuu(Ubuntu内核更新实用程序https://doc.ubuntu-fr.org/ubuntu_kernel_upgrade_utility)在Ubuntu 17.04上安装了Linux内核版本4.12 。 问题是,当我检查可用的I / O调度程序时,似乎找不到BFQ或Kyber I / O调度程序: cat /sys/class/block/sda/queue/scheduler > noop deadline [cfq] 那么如何使用此Linux版本中的新调度程序之一?


2
Linux内核删除自定义键盘扫描代码
我有一个老式的IBM 122键型号M键盘,适合在现代计算机上使用。我正在使用Teensy 2.0进行编码并处理USB方面的问题。我从Humble Hacker键盘项目(https://github.com/humblehacker/keyboard)借用了固件,并在构建配置中添加了额外的键。到目前为止,一切都很好。 所有“常规”键都可以使用,但是内核似乎正在删除多余的键(F13- F24等)。 运行/lib/udev/keymap -i input/event0显示所有正常键的扫描代码,但多余键则无显示。 运行wireshark以捕获数据包的USB端口表明键盘正在发送扫描代码,但是看起来内核在原则上只是丢弃了它们。 我觉得这是内核驱动程序中的某些东西,根本没有提供它不期望的扫描代码。 我认为.h在内核源代码的某个文件中的某处会存在某种“主”键映射,但是到目前为止,我一直没有成功找到它。 值得强调的是,我没有像在我之前的其他许多人一样要求在X中映射额外的键。这是一个低级的,显然与内核相关的问题。暂时假设我根本不会使用X。我需要的是扫描代码在我运行时显示/lib/udev/keymap -i,我可以从那里开始其余的工作。


3
如何搜索linux内核邮件列表档案?
我想通过搜索Linux内核邮件列表以查找有关该主题的最新讨论,来研究为什么Linux内核功能似乎从我的Linux安装中丢失了。我发现的唯一可以搜索邮件列表档案的站点是gmane。但是,搜索gmane上带有引号的术语(例如,“ / usr / firmware”)并不将结果限制为仅包含带引号的短语。是否有更高级的Linux内核邮件列表搜索?

2
GRUB2和内核vga =参数
根据文档,vga=从GRUB2开始不赞成使用内核参数。某些新适配器似乎不再支持该内核,这一事实无关紧要,因为我拥有的显卡已经使用了七到八年。 现在的问题是,我想使用更高分辨率的文本模式,例如80x50,而不是默认的80x25字符。显然,所有的图形(VBE / VESA)模式,是这款显卡(ATI RAGE XL)的问题了-可用模式只显示列表中0通过6。6是80x60,但看起来可怕,所以我想一起去1(80x50的)。 每当不支持默认模式(默认注释已注释掉GRUB_TERMINAL=console)并提示我进行选择时,我都会在获得可用模式列表后看到80x50和80x60工作。 如果不应该在内核命令行上设置模式,并且每次使用GRUB_GFXMODE(带有或不带有预加载vbe模块)都GRUB_GFXPAYLOAD_LINUX=keep失败,那么如何设置模式?失败如:屏幕保持空白,因为这是我在本机中拥有的卡的无效图形模式? 我的想法是nomodeset仍然传递给内核,但是引导加载程序仍然必须设置图形模式。而且除了vga=内核参数之外,我看不到其他任何选项。 注意: GRUB2控制台上的vbetest和videotest命令将使屏幕空白,然后声称没有视频输入,然后屏幕切换到睡眠模式。vbeinfo并videoinfo显示了上述以外的一些可用模式,但没有提及应在何处设置。另外,在内核命令行中传递vga=1(不传递nomodeset)时,我看到一个很简短的警告,说明它已过时,但是它太长了,无法完全读取-输出不会出现在中dmesg。

5
在内核中启用IOMMU以实现图形卡传递
简短问题: 如何intel_iommu在Linux内核中打开设置?我使用grub2引导程序运行Debian主机。我见过的文档说编辑/boot/grub/menu.lst,似乎只与grub 1.x相关,因为我没有该文件。 据我了解(也是我能想到的最后一个选项),更改此启动选项可能会消除以下错误消息: /var/log/kern.log vboxpci: No IOMMU domain (attach) 长问题: 使访客操作系统直接访问图形卡 我最近意识到,可以将PCI Express设备传递给Virtualbox中运行的来宾OS。酷,我想!我有两块NVIDIA Quadro FX图形卡(具有SLI桥接器连接,希望不会引起麻烦),并且希望将第二张图形卡专用于来宾OS,以便可以在其中使用OpenGL功能。 Photoshop等。 NVIDIA销售这种“ SLI Multi-OS ”配置,这基本上是我多年来一直想要设置的配置,但是我不想花太多时间在虚拟化软件(Parallels极限工作站)上。使用VirtualBox已有很多年了。 主机系统 我正在相当高端的工作站设备(具有Intel ICH10R芯片组和Xeon W3680 CPU的Asus P6T7 WS超级计算机主板)上从Debian存储库中运行linux-3.5.0-19,并希望在内核中打开IOMMU支持。 ,最好不必自己编译。 的BIOS 在BIOS设置中,启用了VT-x和VT-d支持。不过,我看不到任何特别提及IOMMU的内容。 连接PCI设备 这真是令人惊讶的简单!官方的VirtualBox文档在这里。我发现不那么模棱两可的是,打开了nvidia-settings,选择了辅助图形卡并记下了总线ID(在我的情况下为“ PCI:5:0:0”)。然后,从主机的命令行: VBoxManage modifyvm "Windows Guest" --pciattach 05:00.0 (当我第一次运行此程序时,出现了一个错误,因为VirtualBox在模拟PIIX芯片组;它说PCI直通仅适用于ICH9芯片组。因此,我在VirtualBox VM System设置中将芯片组更改为ICH9,并打开了guest虚拟机。以安装必要的新驱动程序。稍后重新启动,一切正常,因此我关闭了来宾,然后重新运行命令。) 没有输出,我几乎立即返回到命令行。 从来宾使用主机GPU 在打开guest虚拟机之前,我首先通过virtualbox-dkms重新启动了主机,以防内核中发生未记录的事件。当我在没有sudo特权的情况下运行上一个命令时,我怀疑是否进行了任何更改。 当我下一次启动客户机时,Windows Update开始执行它的工作,并自动检测并安装了正确的NVIDIA驱动程序。到目前为止一切都很好。不过,在使用设备之前,我必须重新启动访客。 问题 现在,图形卡驱动程序已安装在客户机上,并且已连接PCI设备,现在我无法进入Windows桌面了。我进入Windows登录屏幕,然后登录后,屏幕冻结,只说“ …

1
将“ memfd”视为“拥有文件的进程”是否错误?
https://dvdhrm.wordpress.com/2014/06/10/memfd_create2/ 从理论上讲,您可以在memfd_create()不引入新系统调用的情况下实现[ ]行为,如下所示: int fd = open("/tmp", O_RDWR | O_TMPFILE | O_EXCL, S_IRWXU); (请注意,为了在此处更方便地保证tmpfs,我们可以使用“ /dev/shm”代替“ /tmp”)。 因此,最重要的问题是为什么我们到底需要第三种方式? [...] 后备内存用于拥有文件且不受安装配额限制的进程。 ^我认为这句话的第一部分不值得依靠吗? 所述memfd_create()的代码被作为“的字面实施链接的文件居住在[α] TMPFS必须是内核内部 ”。跟踪代码,我知道它与不实施LSM检查有所不同,正如博客文章继续说明的那样,它还创建了memfds以支持“密封”。但是,我非常怀疑memfds正在考虑不同的,以原则上TMPFILE。 具体来说,当OOM杀手敲门时,我认为它不会解决memfds持有的内存问题。这可能总计高达RAM的50%-tmpfs的size = option的值。内核不会为内部tmpfs设置其他值,因此它将使用默认大小50%。 因此,我认为我们通常可以期望拥有大memfd的进程,但是没有其他重要的内存分配不会被OOM杀死。那是对的吗?

4
如何在CentOS 7中安全删除旧的内核版本?
我可能会由于CentOS 7中竞争性内核而遇到奇怪的症状。那么,如何安全删除旧内核?我怎么知道最新的内核呢? 下面是我在有关服务器上研究此内容时获得的终端输出。请注意,我尝试了package-cleanup,但它保留了相同的2个内核: 本教程中的说明说以下两个命令的输出应该匹配,但是即使重新启动后,您也可以看到它们不匹配: [root@localhost ~]# rpm -qa kernel |sort -V |tail -n 1 kernel-3.10.0-229.el7.x86_64 [root@localhost ~]# uname -r 3.10.0-229.14.1.el7.x86_64 其余命令确认有两个内核,并说明了删除旧内核的尝试。 [root@localhost ~]# cd /usr/src/kernels [root@localhost kernels]# ls -al total 16 drwxr-xr-x. 4 root root 4096 Oct 2 12:55 . drwxr-xr-x. 4 root root 4096 Oct 2 13:15 .. drwxr-xr-x. …

1
如何解释kworker线程名称?
在双插槽Xeon X5650六核主板顶部运行的Linux 3.11.0-13泛型上,htop显示了不同的kworker线程。按名称排序(我调整了这里显示的结果,使内核2上的线程先于内核10上的线程),结果如下: kworker/0:0H kworker/0:1 kworker/0:2 kworker/1:0 kworker/1:0H kworker/1:1 kworker/2:0 kworker/2:0H kworker/2:1 ..... kworker/11:0 kworker/11:0H kworker/11:1 kworker/u48:0 kworker/u49:4 kworker/u49:5 kworker/u50:1 kworker/u50:2 ....... 名称以数字开头的线程将以相同的数字固定到核心。因此,第一个数字是运行该线程的核心,我想知道这些线程之后:(0或0Hor 1)后的符号是什么? 我也想知道uXX:Y符号的含义是什么? 我对kworker线程的功能只有一个模糊的了解:它们处理由执行I / O的系统调用引起的异步事件。他们在某处记录了吗?

3
内核:命名空间支持
我想知道Linux内核中“命名空间支持”功能到底意味着什么。我正在使用内核3.11.1(当前最新的稳定内核)。 如果我决定禁用它,我是否会注意到系统上的任何更改? 如果有人决定使用名称空间,仅NAMESPACES=Y在内核中进行编译就足够了吗,还是他还需要用户空间工具?

9
Linux在286上?
我没有286,也没有打算在一台Linux上运行。但是,由于286具有保护模式,为什么经常说Linux需要386 CPU或更高版本? 从http://tuxmobil.org/286_mobile.html看来,ELKS版本的Linux可以在286上运行,这是正确的吗?进行了哪些修改(如果有的话)以允许内核在286 CPU上运行? 现在,很明显,我知道为386编译的内核无法在286 CPU(16位)上执行。所以我的问题是,为什么不能为286编译标准Linux内核,然后在286上执行呢?Linux是否需要硬件VM86支持?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.