2002-10-16 11:47:23

by Hu Gang

[permalink] [raw]
Subject: patch: make software suspend speedup in vmware virtual machine.

Hello all:

With this patch 2.5.43 can resume only need ~5sec.
without this patch 2.5.43 also can resume, but need ~240sec.

This patch also can work in normal machine. But need more test.
--------------------------------------------------
--- arch/i386/kernel/suspend.c~old Wed Oct 16 19:39:42 2002
+++ arch/i386/kernel/suspend.c Wed Oct 16 19:38:21 2002
@@ -290,8 +290,8 @@
for (loop2=0; loop2 < PAGE_SIZE; loop2++) {
*(((char *)((pagedir_nosave+loop)->orig_address))+loop2) =
*(((char *)((pagedir_nosave+loop)->address))+loop2);
- __flush_tlb();
}
+ __flush_tlb();
}

restore_processor_context();


--
- Hu Gang


Attachments:
(No filename) (189.00 B)

2002-10-19 21:56:14

by Pavel Machek

[permalink] [raw]
Subject: Re: patch: make software suspend speedup in vmware virtual machine.

Hi!

> Hello all:
>
> With this patch 2.5.43 can resume only need ~5sec.
> without this patch 2.5.43 also can resume, but need ~240sec.
>
> This patch also can work in normal machine. But need more test.

You probably can move __flush_tlb() out of both loops, it is there
only to aid debugging. _But_ I'd like to keep it as is. __flush_tlb()
is there to prevent heisenbugs.
Pavel

> --------------------------------------------------
> --- arch/i386/kernel/suspend.c~old Wed Oct 16 19:39:42 2002
> +++ arch/i386/kernel/suspend.c Wed Oct 16 19:38:21 2002
> @@ -290,8 +290,8 @@
> for (loop2=0; loop2 < PAGE_SIZE; loop2++) {
> *(((char *)((pagedir_nosave+loop)->orig_address))+loop2) =
> *(((char *)((pagedir_nosave+loop)->address))+loop2);
> - __flush_tlb();
> }
> + __flush_tlb();
> }
>
> restore_processor_context();
>
>
> --
> - Hu Gang



--
I'm [email protected]. "In my country we have almost anarchy and I don't care."
Panos Katsaloulis describing me w.r.t. patents at [email protected]