我对RHEL机器上的TTY子系统有一些问题。根据我在日志中看到的,每次生成新控制台(无论是pts还是tty)时都会生成一些内核oops。在我看来,那里似乎存在某种种族状况。下面是堆栈跟踪:

kernel:  INFO: task sshd:6338 blocked for more than 120 seconds.
kernel:       Tainted: P           ---------------    2.6.32-504.el6.x86_64 #1
kernel:  "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
kernel:  sshd          D 0000000000000000     0  6338   6195 0x00000080
kernel:  ffff88035be8d728 0000000000000082 0000000000000000 0000000000000000
kernel:  ffff88035be8d7f8 ffffffff8105ca34 00009488ef033e83 ffff88035be8d708
kernel:  ffff88035be8d880 0000000109b91c98 ffff881eea341098 ffff88035be8dfd8
kernel:  Call Trace:
kernel:  [<ffffffff8105ca34>] ? find_busiest_group+0x244/0x9e0
kernel:  [<ffffffff8152a8c5>] schedule_timeout+0x215/0x2e0
kernel:  [<ffffffff8152a543>] wait_for_common+0x123/0x180
kernel:  [<ffffffff81064b90>] ? default_wake_function+0x0/0x20
kernel:  [<ffffffff8152a65d>] wait_for_completion+0x1d/0x20
kernel:  [<ffffffff81098bf7>] flush_work+0x77/0xc0
kernel:  [<ffffffff81098460>] ? wq_barrier_func+0x0/0x20
kernel:  [<ffffffff81098e14>] flush_delayed_work+0x54/0x70
kernel:  [<ffffffff813392f5>] tty_flush_to_ldisc+0x15/0x20
kernel:  [<ffffffff81333cc7>] n_tty_poll+0x67/0x1d0
kernel:  [<ffffffff8132f80a>] tty_poll+0x8a/0xa0
kernel:  [<ffffffff811a6895>] do_select+0x3c5/0x7c0
kernel:  [<ffffffff8149cf18>] ? ip_finish_output+0x148/0x310
kernel:  [<ffffffff811a59f0>] ? __pollwait+0x0/0xf0
kernel:  [<ffffffff811a5ae0>] ? pollwake+0x0/0x60
kernel:  [<ffffffff811a5ae0>] ? pollwake+0x0/0x60
kernel:  [<ffffffff811a5ae0>] ? pollwake+0x0/0x60
kernel:  [<ffffffff811a5ae0>] ? pollwake+0x0/0x60
kernel:  [<ffffffff8152d04b>] ? _spin_unlock_bh+0x1b/0x20
kernel:  [<ffffffff8144b835>] ? release_sock+0xe5/0x110
kernel:  [<ffffffff814a52cc>] ? tcp_sendmsg+0x73c/0xa20
kernel:  [<ffffffff8144a72b>] ? sock_aio_write+0x19b/0x1c0
kernel:  [<ffffffff8133158d>] ? tty_wakeup+0x3d/0x80
kernel:  [<ffffffff811a6e1a>] core_sys_select+0x18a/0x2c0
kernel:  [<ffffffff8109eb00>] ? autoremove_wake_function+0x0/0x40
kernel:  [<ffffffff811a71a7>] sys_select+0x47/0x110
kernel:  [<ffffffff810e5c87>] ? audit_syscall_entry+0x1d7/0x200
kernel:  [<ffffffff810e5a7e>] ? __audit_syscall_exit+0x25e/0x290
kernel:  [<ffffffff8100b072>] system_call_fastpath+0x16/0x1b

因此,查看最后两个函数调用,任务似乎通过schedule_timeout()被安排睡眠一段时间,然后find_business_group尝试平衡该任务生成的负载。是正确的还是我在这里遗漏了什么?
谢谢。

最佳答案

如果有人感兴趣,我打开了一个案例Redhat,它似乎是关于阵列控制器(HPSA)中的HP固件错误的问题。更多详情:https://access.redhat.com/solutions/1179703
我已经检查了Bugzilla,发现这个bug可能与
智能阵列固件版本。
这个错误是在带有以下控制器组合的系统上重现的
版本和HPSA模块版本。(新的HPSA模块版本和旧的
固件版本)
KMOD HPSA:3.4.4-1-RH1
SA固件:3.22
控制器:P220I(103C:323B 103C:3355版本01)
运行新HPSA模块版本和新固件版本的系统
没有复制此错误。
KMOD HPSA:3.4.4-1-RH1
SA固件:3.42
控制器:P220I(103C:323B 103C:3355版本01)
运行旧HPSA模块版本和旧固件版本的系统
也没有复制这个错误。
KMOD HPSA:3.4.0-1-RH1
SA固件:3.22
控制器:P220I(103C:323B 103C:3355版本01)
在我们的例子中,控制器固件版本是3.22,我们使用
新的HPSA模块版本3.4.4-1-RH2。
$cat proc/scsi/scsi grep-一家5 p220i供应商:HP型号:
P220i版本:3.22类型:RAID
ANSI SCSI版本:05
现在我看到,对于旧内核,我们使用的是旧版本的hpsa模块
(3.4.0-1-RH1)。这样系统就不会遇到这个bug。
modinfo hpsa filename:/lib/modules/2.6.32-431.23.3.el6.x86_64/kernel/drivers/scsi/hpsa.ko
许可证:GPL版本:3.4.0-1-RH1描述:驱动程序
对于HP Smart Array控制器版本3.4.0-1-RH1作者:
惠普公司**
这是一位红帽工程师的陈述。

关于linux - 内核挂tty子系统,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26628274/

10-15 00:10