Hi!

> > Sure, but I think it's there for a reason.
> > 
> > > Anyway, this is likely to clash with hugang's work; I'd prefer this not 
> > > to be applied.
> > 
> > I am aware of that, but you are not going to merge the hugang's patches 
> > soon, are you?
> > If necessary, I can change the patch to work with his code (hugang, what do 
> > you think?).
> > 
> I like this patch, And I change my code with this, Please have a look,
> It pass in qemu X86_64. :)
> 
> Full patch still can get from
>  http://soulinfo.com/~hugang/swsusp/2005-1-21/
> 
> here is only x86_64 part.

Okay, why not, if you are changing it anyway...


> --- 2.6.11-rc1-mm1/arch/x86_64/kernel/suspend_asm.S   2004-12-30 
> 14:56:35.000000000 +0800
> +++ 2.6.11-rc1-mm1-swsusp-x86_64/arch/x86_64/kernel/suspend_asm.S     
> 2005-01-21 10:13:15.000000000 +0800
> @@ -35,6 +35,7 @@ ENTRY(swsusp_arch_suspend)
>       call swsusp_save
>       ret
>  
> +     .section    .data.nosave
>  ENTRY(swsusp_arch_resume)
>       /* set up cr3 */        
>       leaq    init_level4_pgt(%rip),%rax

But why does it go into data section?

> @@ -49,43 +50,32 @@ ENTRY(swsusp_arch_resume)
>       movq    %rcx, %cr3;
>       movq    %rax, %cr4;  # turn PGE back on
>  
> -     movl    nr_copy_pages(%rip), %eax
> -     xorl    %ecx, %ecx
> -     movq    $0, %r10
> -     testl   %eax, %eax
> -     jz      done
> -.L105:
> -     xorl    %esi, %esi
> -     movq    $0, %r11
> -     jmp     .L104
> -     .p2align 4,,7
> -copy_one_page:
> -     movq    %r10, %rcx
> -.L104:
> -     movq    pagedir_nosave(%rip), %rdx
> -     movq    %rcx, %rax
> -     salq    $5, %rax
> -     movq    8(%rdx,%rax), %rcx
> -     movq    (%rdx,%rax), %rax
> -     movzbl  (%rsi,%rax), %eax
> -     movb    %al, (%rsi,%rcx)
> -
> -     movq    %cr3, %rax;  # flush TLB
> -     movq    %rax, %cr3;
> -
> -     movq    %r11, %rax
> -     incq    %rax
> -     cmpq    $4095, %rax
> -     movq    %rax, %rsi
> -     movq    %rax, %r11
> -     jbe     copy_one_page
> -     movq    %r10, %rax
> -     incq    %rax
> -     movq    %rax, %rcx
> -     movq    %rax, %r10
> -     mov     nr_copy_pages(%rip), %eax
> -     cmpq    %rax, %rcx
> -     jb      .L105
> +     movq    pagedir_nosave(%rip), %rax
> +     testq   %rax, %rax
> +     je              done
> +
> +copyback_page:
> +     movq    24(%rax), %r9
> +     xorl    %r8d, %r8d
> +

Are you sure %r8 and %r9 are caller-saved? I'd use low registers if I
were you, they look nincer and generate shorter opcodes ;-).

                                                                Pavel
-- 
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to