lkml.org 
[lkml]   [2004]   [Nov]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: software suspend patch [3/6]
    On Mon, Nov 29, 2004 at 12:23:20AM +0800, hugang@soulinfo.com wrote:
    > Hi Pavel Machek, Nigel Cunningham:
    >
    > device-tree.diff
    > base from suspend2 with a little changed.
    >
    > core.diff
    > 1: redefine struct pbe for using _no_ continuous as pagedir.
    > 2: make shrink memory as little as possible.
    > 3: using a bitmap speed up collide check in page relocating.
    > 4: pagecache saving ready.
    >
    > i386.diff
    > ppc.diff
    > i386 and powerpc suspend update.
    >
    > pagecachs_addon.diff
    > if enable page caches saving, must using it, it making saving
    > pagecaches safe. idea from suspend2.
    >
    > ppcfix.diff
    > fix compile error.
    > $ gcc -v
    > ....
    > gcc version 2.95.4 20011002 (Debian prerelease)
    >
    > I'm using 2.6.9-ck3 With above patch, swsusp1 works prefect in my
    > PowerPC and x86 PC with Highmem and prepempt option enabled.
    >
    > I hope the core.diff@1,@2,@3 i386.diff ppc.diff will merge into
    > mainline kernel ASAP, :). from I view point device-tree.diff is
    > very usefuly when using pagecache saving and pagecachs_addon.diff
    > that's really hack for making pagecache saving safe.
    >

    --- 2.6.9-lzf//arch/i386/kernel/signal.c 2004-11-28 23:17:23.000000000 +0800
    +++ 2.6.9/arch/i386/kernel/signal.c 2004-11-28 23:16:59.000000000 +0800
    @@ -587,6 +587,7 @@ int fastcall do_signal(struct pt_regs *r

    if (current->flags & PF_FREEZE) {
    refrigerator(0);
    + recalc_sigpending();
    if (!signal_pending(current))
    goto no_signal;
    }
    --- 2.6.9-lzf//arch/i386/power/swsusp.S 2004-11-26 12:32:45.000000000 +0800
    +++ 2.6.9/arch/i386/power/swsusp.S 2004-11-28 23:16:59.000000000 +0800
    @@ -31,24 +31,33 @@ ENTRY(swsusp_arch_resume)
    movl $swsusp_pg_dir-__PAGE_OFFSET,%ecx
    movl %ecx,%cr3

    - movl pagedir_nosave, %ebx
    - xorl %eax, %eax
    - xorl %edx, %edx
    - .p2align 4,,7
    -
    -copy_loop:
    - movl 4(%ebx,%edx),%edi
    - movl (%ebx,%edx),%esi
    -
    - movl $1024, %ecx
    - rep
    - movsl
    -
    - incl %eax
    - addl $16, %edx
    - cmpl nr_copy_pages,%eax
    - jb copy_loop
    - .p2align 4,,7
    + movl pagedir_nosave, %eax
    + test %eax, %eax
    + je copy_loop_end
    + movl $1024, %edx
    +
    +copy_loop_start:
    + movl 0xc(%eax), %ebp
    + xorl %ebx, %ebx
    + leal 0x0(%esi),%esi
    +
    +copy_one_pgdir:
    + movl 0x4(%eax),%edi
    + test %edi, %edi
    + je copy_loop_end
    +
    + movl (%eax), %esi
    + movl %edx, %ecx
    + repz movsl %ds:(%esi),%es:(%edi)
    +
    + incl %ebx
    + addl $0x10, %eax
    + cmpl $0xff, %ebx
    + jbe copy_one_pgdir
    + test %ebp, %ebp
    + movl %ebp, %eax
    + jne copy_loop_start
    +copy_loop_end:

    movl saved_context_esp, %esp
    movl saved_context_ebp, %ebp
    --
    --
    Hu Gang / Steve
    Linux Registered User 204016
    GPG Public Key: http://soulinfo.com/~hugang/hugang.asc
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-03-22 14:08    [W:0.024 / U:179.468 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site