On Mon, 2008-09-29 at 15:44 +0200, Kern Sibbald wrote: > On Monday 29 September 2008 14:13:16 Brice Figureau wrote: > > Hi, > > > > I was looking to the 2.4.2 SD spooling code lately (this was part of > > understanding why despooling performances were not that good on my > > hardware), when I noticed the following usage of posix_fadvise while > > sequentially reading the spool file (despool_data): > > > > #if defined(HAVE_POSIX_FADVISE) && defined(POSIX_FADV_WILLNEED) > > posix_fadvise(rdcr->spool_fd, 0, 0, POSIX_FADV_WILLNEED); > > #endif > > > > I don't understand why we're telling the kernel to page cache the spool > > file we're reading since we won't reuse those data. > > Moreover, there is no "DONTNEED" call after despool_data to let the > > kernel know it can trash what we read. > > > > I thought that something along the line of this in despool_data: > > #if defined(HAVE_POSIX_FADVISE) && defined(POSIX_FADV_SEQUENTIAL) > > posix_fadvise(rdcr->spool_fd, 0, 0, POSIX_FADV_SEQUENTIAL); > > #endif > > #if defined(HAVE_POSIX_FADVISE) && defined(POSIX_FADV_NOREUSE) > > posix_fadvise(rdcr->spool_fd, 0, 0, POSIX_FADV_NOREUSE); > > #endif > > > > And a few POSIX_FADV_DONTNEED after each block read with the correct > > offset and length to tell the pagecache we don't need this part anymore. > > > > Does it make sense? > > Or did I miss something? > > Why don't you run some tests measuring the performance of your proposed > changes versus what is there now. That would give a much more definitive > answer than I can ...
That was indeed my plan :-) But since I'm really a newcomer about bacula's code, I'd first wanted to ask if that was done on purpose. Now, the question is: how can I create some kind of "blackhole" SD, that just spools and then despools to /dev/null, to just bench the spooling/despooling thing related to the pagecache. Thanks for your answers, -- Brice Figureau <[EMAIL PROTECTED]> ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Bacula-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/bacula-devel
