[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Re: 2.6.10-mm3: swsusp: out of memory on resume
From: |
hugang |
Subject: |
Re: [Qemu-devel] Re: 2.6.10-mm3: swsusp: out of memory on resume |
Date: |
Sun, 16 Jan 2005 12:38:27 +0800 |
User-agent: |
Mutt/1.3.28i |
On Sun, Jan 16, 2005 at 12:40:56AM +0800, address@hidden wrote:
> On Sat, Jan 15, 2005 at 12:48:54PM +0100, Fabrice Bellard wrote:
...
>
> When I using Qemu as X86_64 emulataion for testing software suspend, I
> get the first oops the instruction is this,
> IN:
> 0xffffffff80116a8a: movzwl 0x8(%rbx),%eax
> 0xffffffff80116a8e: mov %eax,%ss <- general protection
>
> That's in
> arch/x86_64/kernel/suspend.c +105
> asm volatile ("movw %0, %%ss" :: "r" (ctxt->ss)); <-- general protection.
>
> I don't why, but I check %eax and %ss are same value, so I just comment
> this line, the oops go away, But still geting hang, Now I have no idea,
> :)
>
>
Ok, I enable the raise_exception_err, and catach this.
.....
/* only works if protected mode and not VM86. seg_reg must be != R_CS */
void load_seg(int seg_reg, int selector)
{
uint32_t e1, e2;
int cpl, dpl, rpl;
SegmentCache *dt;
int index;
target_ulong ptr;
selector &= 0xffff;
if ((selector & 0xfffc) == 0) {
/* null selector case */
if (seg_reg == R_SS)
raise_exception_err(EXCP0D_GPF, 0);
cpu_x86_load_seg_cache(env, seg_reg, selector, 0, 0, 0);
} else {
....
In the comment line, said must be != R_CS, But in code is check R_SS, I
just change R_SS to R_CS, then the software-suspend suspend part passed
in qemu, I geting hang at copyback memory in resume, Still debuging...
:)
Maybe that, also useful for other, Eg. Win2k disk full...
--
Hu Gang .-.
/v\
// \\
Linux User /( )\ [204016]
GPG Key ID ^^-^^ http://soulinfo.com/~hugang/hugang.asc
Message not available