使用 -SIGSTOP 暂停进程足够长的时间会导致内核 Oops 堆栈内存溢出

使用 -SIGSTOP 暂停进程足够长的时间会导致内核 Oops 堆栈内存溢出

mpg321我正在Raspberry Pi 2 上运行该过程。mpg321播放.mp3文件并暂停音乐,我有一个输入的热键sudo kill -SIGSTOP [pid of mpg321]。这非常有效,除了当我让音乐暂停超过大约一个小时时,然后在我尝试取消音乐暂停后,我会收到内核 Oops 并最终出现内核恐慌。

内核哎呀是:

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
     kernel:[91001.596603] Internal error: Oops: 5 [#2] PREEMPT SMP ARM

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91001.902975] Process mpg321 (pid: 11096, stack limit = 0xb220a210)

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91001.918095] Stack: (0xb220bdb8 to 0xb220c000)

紧接着是这个内核恐慌:

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91001.931470] bda0:                                                       00000000 00000000

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91001.957205] bdc0: 7f130b94 802ff67c 802ff660 75e50000 b1e68170 b9190d10 000006e8 00000000

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91001.982913] bde0: 00000000 00000048 00000080 00000000 00000000 000003af b2140000 75e50000

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.009496] be00: b9190d10 00000054 ba6bbaa4 00000046 b220bea4 b220be20 8011e260 800f3394

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.036241] be20: 00000000 00000000 00000000 00000000 00000055 00000000 00000000 75e50000

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.062953] be40: 00000000 b2612000 00000140 00000040 00000050 00000054 001d58f0 00000054

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.089652] be60: 00000046 75e50000 b220bebc b220be78 00000055 b2612140 00000000 b220bfb0

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.116838] be80: 00000017 75e50018 b9153a40 b9242400 b9153a78 00000054 b220befc b220bea8

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.144590] bea0: 8055eca0 8011dadc 001d58f0 b68ae490 b220bef4 b220bec0 7f132c7c 7f131ec8

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.173009] bec0: b220befc 00000000 00000000 00000480 00000000 00000017 8055e9c8 75e50018

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.202002] bee0: 8080209c b220bfb0 7e9dc9fa 00000000 b220bfac b220bf00 800091e4 8055e9d4

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.231728] bf00: 801566cc 7f132f44 00000000 807e1900 b220bf3c 807e1900 807d8330 3978c000

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.261788] bf20: 60000193 00000000 00000000 00192c44 b220bf5c b220bf40 800764bc 800d0794

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.292131] bf40: 00000000 807dac74 00000000 00000000 b220bf74 b92c9c00 b92c9c00 c0844123

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.322942] bf60: 001d58f0 00000006 001d5788 001d57d8 001d5788 001d57d8 000208ac 00000036

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.354633] bf80: 00000000 b220bf90 76e2d6cc 76e2d6cc 60000010 ffffffff 10c5387d 10c5387d

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.386365] bfa0: 00000000 b220bfb0 8055e524 800091ac 7e9dca78 00000020 75e50018 7e9dca78

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.418132] bfc0: 0018f264 7e9dca34 00000000 7e9dca37 00000002 7e9dc9fa 00000000 7e9dc97e

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.449906] bfe0: 00000008 7e9dc944 76e35024 76e2d6cc 60000010 ffffffff 00000000 00000000

Message from syslogd@raspberrypi at Jan 30 22:43:45 ...
 kernel:[91002.720458] Code: e3160003 1a000063 f57ff05b f593f000 (e1932f9f)

这里发生了什么?我不确定暂停进程会如何导致这种情况。我只需要知道内核 Oops 和panic 的确切含义,但如果有人也知道如何修复它,我将不胜感激。

答案1

根据网上的快速查找,所有SMP ARM的出现都是由于虚拟内存中的页面错误导致的。我不是专家,但也许您的应用程序在暂停时会泄漏内存。我会使用检查进程内存消耗ps。请参阅手册页以ps获取虚拟和实际内存进程使用的适当标志。如果可以的话我会评论这条消息。

相关内容