Hi Everyone,
I understand that the caches cannot be checkpointed within a
reasonable amount of space, but what is the proper procedure for
flushing the caches prior to taking a checkpoint? My m5 config is a
single-core Alpha TimingSimpleCPU with a split L1 cache. If I drop a
checkpoint, restart m5, and restore the checkpoint, the kernel panics:
Bad page state at prep_new_page (in process 'm5', page fffffc0000978c80)
flags:0x0000000000000064 mapping:fffffc00006f2841 mapcount:1 count:1
Backtrace:
fffffc0007be7bf0 0000000000000000 fffffc000036eb64 fffffc000071aec0
fffffc000036f3c0 fffffc000071e600 fffffc000071ae80
0000000000000000
0000000000000000 0000000000000020 0000000000000000
fffffc0007abf4c0
fffffc000036f3c0 fffffc000071e640 fffffc000071ae80
0000000000000020
0000000000000000 00000000000000d2 fffffc00003742f0
0000000000000000
0000000000000020 fffffc0000c0dcc0 fffffc0000c0dec8
fffffc0000c0f000
Trace:
[<fffffc000036eb64>] buffered_rmqueue+0x164/0x3d0
[<fffffc000036f3c0>] __alloc_pages+0x540/0x5e0
[<fffffc000036f3c0>] __alloc_pages+0x540/0x5e0
[<fffffc00003742f0>] cache_alloc_refill+0x400/0x760
[<fffffc0000373c70>] kmem_cache_alloc+0x80/0x90
[<fffffc000034c144>] __sigqueue_alloc+0x64/0xe0
[<fffffc000034d070>] send_signal+0x120/0x1f0
[<fffffc000034d208>] specific_send_sig_info+0xc8/0x130
[<fffffc000034d334>] force_sig_info+0xc4/0x110
[<fffffc000032f638>] do_page_fault+0x3b8/0x570
[<fffffc000031151c>] entMM+0x9c/0xc0
[<fffffc00003118c4>] entSys+0xa4/0xc0
Trying to fix it up, but a reboot is needed
------------------------------------------------------------------------------------------------------------------------
Under the same setup but no caches, the checkpoint restores correctly.
So, I'm assuming it's a few dirty cache blocks holding the OS's page
table that are causing the problem.
Is there an easier way to flush the caches prior to checkpointing than
iterating through each block and writing it back if it's dirty?
Looking through the code, I don't think draining forces a cache-wide
writeback.
Thanks,
-David
_______________________________________________
m5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users