Le mardi 10 novembre 2009 08:54:50, Eric Bollengier a écrit :
> Hello,
>
> I've already think about this optimization, the only problem is that the
> posix_fadvise argument isn't a bitwise flag. So you can't mix them like
> that.
>
> Perhaps you can call this function multiple times, but the documentation is
> unclear about this subject.
>
> If you have more information on that subject, it is welcome.
An other point is that posix_fadvise is already used foreach file with the
POSIX_FADV_WILLNEED attrib, and when closing the file with POSIX_FADV_DONTNEED.
Bye
> Bye
>
> Le lundi 09 novembre 2009 21:22:09, Jesper Krogh a écrit :
> > Hi
> >
> > Digging through the file-daemon source-code I think that it can be a bit
> > more nice to the host and even allow the client OS to benefit a bit from
> > the following patch. The patch is in "no way" finished, since it'll most
> > likely break builds on all but Linux/FreeBSD but I'm not a very skilled
> > C-programmer, so I would hope someone with a bit more insight on this
> > would pick it up and finish it.
> >
> > POSIX_FADV_SEQUENTIAL => Allows the OS do do a larger read-ahhead.
> > POSIX_FADV_NOREUSE => Allows the OS to drop pages from the page-cache
> > after read, since they won't be used again.
> >
> > diff --git a/bacula/src/filed/backup.c b/bacula/src/filed/backup.c
> > index 38d889b..65afd99 100644
> > --- a/bacula/src/filed/backup.c
> > +++ b/bacula/src/filed/backup.c
> > @@ -772,6 +772,7 @@ static int send_data(JCR *jcr, int stream, FF_PKT
> > *ff_pkt, DIGEST *digest,
> > uint32_t cipher_input_len;
> > uint32_t cipher_block_size;
> > uint32_t encrypted_len;
> > + BFILE *bfd = &ff_pkt->bfd;
> > #ifdef FD_NO_SEND_TEST
> > return 1;
> > #endif
> > @@ -882,6 +883,7 @@ static int send_data(JCR *jcr, int stream, FF_PKT
> > *ff_pkt, DIGEST *digest,
> > rsize = (rsize/512) * 512;
> > #endif
> >
> > + posix_fadvise(bfd->fid,0,0,POSIX_FADV_SEQUENTIAL &
> > POSIX_FADV_NOREUSE); /*
> > * Read the file data
> > */
> > diff --git a/bacula/src/filed/filed.h b/bacula/src/filed/filed.h
> > index 54905cb..c5d0423 100644
> > --- a/bacula/src/filed/filed.h
> > +++ b/bacula/src/filed/filed.h
> > @@ -78,4 +78,8 @@ typedef enum {
> > #define uLongf uint32_t
> > #endif
> >
> > +#define _XOPEN_SOURCE 600
> > +#include <fcntl.h>
> > +
> > +
> > extern CLIENT *me; /* "Global" Client resource */
> >
> > Thanks.
>
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Bacula-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-devel