Hello Le mercredi 15 août 2007, Rafael J. Wysocki a écrit : > Hi, > > On Saturday, 11 August 2007 00:32, Couriousous wrote: > > Hello > > > > Here is an easy way to speed up the image writing. It simply tell the > > kernel to immediatly start writing the data to disk asynchronously and > > not to do the traditional buffering. > > > > Mesurement: > > System: pentium D820, Harddisk ~58Mo/s, image size 500Mo > > Time of suspend to disk, average of 3 run. > > > > Compression enabled: > > Without patch: 35 sec. > > With patch: 27 sec. > > Speedup: 22% > > > > Compression disabled: > > Without patch: 17 sec. > > With patch: 14 sec. > > Speedup: 18% > > OK, thanks. > > Still, I think we should only sync if we have called write(), no? >
Yes, you're right, even if a lseek failing at this stage is pretty uncommon. Regards, Philippe > --- > suspend.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > Index: suspend/suspend.c > =================================================================== > --- suspend.orig/suspend.c > +++ suspend/suspend.c > @@ -236,8 +236,12 @@ static int write_area(int fd, void *buf, > ssize_t cnt = 0; > > if (offset) { > - if (lseek64(fd, offset, SEEK_SET) == offset) > + if (lseek64(fd, offset, SEEK_SET) == offset) { > cnt = write(fd, buf, size); > + /* Ask kernel to immediatly start writing the data */ > + sync_file_range(fd, offset, size, > + SYNC_FILE_RANGE_WRITE); > + } > if (cnt == size) > res = 0; > else ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Suspend-devel mailing list Suspend-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/suspend-devel