【问题标题】:unevictable page不可撤销的页面
【发布时间】:2011-05-19 14:22:58
【问题描述】:

我遇到如下内核崩溃。在这里,我可以观察到 unevictablle 页面中存在大内存。 我想知道确切的内存何时添加到不可撤销的页面列表中。

另外,从下面的消息中,我可以理解系统中只有 1724kB 可用。 对吗?

kswapd0: page allocation failure. order:0, mode:0xd0
[<c002aed4>] (unwind_backtrace+0x0/0xdc) from [<c006d5b0>] (__alloc_pages_nodemask+0x490/0x4ec)
[<c006d5b0>] (__alloc_pages_nodemask+0x490/0x4ec) from [<c008416c>] (cache_alloc_refill+0x260/0x4f4)
[<c008416c>] (cache_alloc_refill+0x260/0x4f4) from [<c0084498>] (__kmalloc+0x98/0xd8)
[<c0084498>] (__kmalloc+0x98/0xd8) from [<c01f73d8>] (__alloc_skb+0x44/0x124)
[<c01f73d8>] (__alloc_skb+0x44/0x124) from [<c01f7cac>] (skb_copy+0x2c/0xa0)
Exception stack(0xc4ecbdf0 to 0xc4ecbe38)
bde0:                                     00000000 00000064 c0347718 00000000 
be00: 00000001 00000000 c0347718 c0347718 c4ecbf54 00000000 00000000 000000fd 
be20: c4ecbf00 c4ecbe38 c00724b4 c00724c4 80000013 ffffffff                   
[<c0024b18>] (__irq_svc+0x38/0xc0) from [<c00724c4>] (shrink_zone+0x88/0x70c)
[<c00724c4>] (shrink_zone+0x88/0x70c) from [<c0072ff4>] (kswapd+0x34c/0x4d8)
[<c0072ff4>] (kswapd+0x34c/0x4d8) from [<c004dcec>] (kthread+0x7c/0x84)
[<c004dcec>] (kthread+0x7c/0x84) from [<c0025ed0>] (kernel_thread_exit+0x0/0x8)
Mem-info:
Normal per-cpu:
CPU    0: hi:   42, btch:   7 usd:  36
Active_anon:124 active_file:0 inactive_anon:129
 inactive_file:0 unevictable:8111 dirty:0 writeback:0 unstable:0
 free:431 slab:19526 mapped:408 pagetables:53 bounce:0
Normal free:1724kB min:1396kB low:1744kB high:2092kB active_anon:496kB inactive_anon:516kB active_file:0kB inactive_file:0kB unevictable:32444kB present:121920kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0
Normal: 103*4kB 34*8kB 3*16kB 3*32kB 2*64kB 0*128kB 1*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB 0*8192kB 0*16384kB = 1724kB
8114 total pagecache pages
30720 pages of RAM
547 free pages
1204 reserved pages
19526 slab pages
1662 pages shared
0 pages swap cached

【问题讨论】:

  • 您的问题已经足够回答了,但要真正有帮助,我们可以使用更多上下文。

标签: memory linux-kernel kernel linux-device-driver


【解决方案1】:

无法撤消的页面只是由于各种原因而无法调出的页面。这可能意味着该页面属于 ramdisk,受到 mlock() 调用的保护,共享和锁定,或者内核被告知“不要触摸”的任何其他情况。这是由内核的LRU 框架管理的。

您能否提供更多有关崩溃的背景信息?

【讨论】:

  • 我担心您无法帮助我解决崩溃问题,因为它在内核和用户空间中都有自定义应用程序。
  • @kumar 似乎没有立即将 ramfs 页面计为“不可撤销”。请注意,如果您使用tmpfs 而不是ramfs,我认为它们是可驱逐的 - tmpfs 和 ramfs 之间的主要区别在于 tmpfs 文件数据可以分页到交换设备。 superuser.com/questions/1135809/…
猜你喜欢
  • 2015-09-02
  • 2015-12-02
  • 2021-11-28
  • 1970-01-01
  • 2019-04-12
  • 1970-01-01
  • 2011-03-26
  • 1970-01-01
  • 2021-03-03
相关资源
最近更新 更多