+ -
当前位置:首页 → 问答吧 → 还是 Hibernate 的问题,大家帮忙看看吧,是 Bug 还是我的设置问题? [基本解决]

还是 Hibernate 的问题,大家帮忙看看吧,是 Bug 还是我的设置问题? [基本解决]

时间:2007-01-08

来源:互联网

Hibernate 有时候不成功,在

Software Suspend
Seeking to free 48Mb of memory
[----------------------------------------------------------------------------]

后停止,然后20S后返回系统,系统变得超慢,好一会儿才好。

前段时间让大家帮看过,这些时间根据我的使用经历,发现有如下规律:
1. 这种情况总是发生在 emerge --sync 或 emerge -uvDN world 后,这时候的 swap 分区一般会有 1-5 mb 占用,(496Mb memory + 990Mb swap),只要 swap 有占用,hibernate 一定不成功。
2. 有兄弟说多hibernate几次或在console下hibernate,但我在情况1后这样做,仍然会失败。
3. 这时,我如果用如下命令,就可以 hibernate
代码:
swapoff -a
swapon -a
hibernate
4. hibernate失败后在dmesg中有如下信息:
代码:
Suspend2 2.2.9: Initiating a software suspend cycle.
Stopping tasks... done.
Free:89514(89514). Sets:25415(25415),11865(11865). Header:6. Nosave:2-0=2. Storage:0/37786(228280). Needed:-78145|-190494|0.
Restarting tasks...done.
Stopping tasks... done.
Free:89514(89514). Sets:25418(25418),11865(11865). Header:6. Nosave:2-0=2. Storage:0/37789(228280). Needed:-78144|-190491|0.
Restarting tasks...done.
Stopping tasks...
 Stopping tasks timed out after 20 seconds (1 tasks remaining):
 kswapd0
 Free:87150(87150). Sets:13528(13528),11863(11863). Header:6. Nosave:14055-14053=2. Storage:37783/25897(228278). Needed:-82806|-202381|0.
 Restarting tasks...<6>Strange, kswapd0 not stopped
 done.
 Suspend2 debugging info:
 - SUSPEND core : 2.2.9
 - Kernel Version : 2.6.18-suspend2-r1
 - Compiler vers. : 4.1
 - Attempt number : 2
 - Parameters : 17 16400 0 1 0 0
 - Overall expected compression percentage: 0.
 - Compressor is 'lzf'.
 - SwapAllocator active.
 Swap available for image: 228278 pages.
 - FileAllocator inactive.
 - No I/O speed stats available.
 - Extra pages : 0 used/500.
看来应该是 swap 有占用时不能正常关闭 kswapd0,导致 hibernate 失败,我现在是可以重现这个现象,不知道大家的如何?我想这是不是个 Bug?或是我的系统设置有问题?大家帮看看吧。

作者: ProgramFan   发布时间: 2007-01-08

没有遇到过kswapd0不能停止的情况
换最新的suspend2-sources试试

作者: zhllg   发布时间: 2007-01-08

好,也只能这样了,原来用 suspend2-sources-2.6.18 ~x86 时还没有问题呢。

作者: ProgramFan   发布时间: 2007-01-08

我现在就用这个内核版本阿,不过我的swap比较小,将将比512m的内存大一点……所以现在hibernate都退出X才运行……

作者: daqie   发布时间: 2007-01-09

换成 suspend2-sources-2.6.19-r1 后目前没有出现过 kswapd0 不能停止的情况,但在 hibernate 时内核 crash 还是有一次。看来 suspend2 还是有些 Bug 的,不然早就进 kernel 了。
我的 swap 刚比 2*memory 小一点,忍了 !

作者: ProgramFan   发布时间: 2007-01-09