borgbackup/borg
Oleg Drokin ce176b52bf Workround a bug in Linux fadvise FADV_DONTNEED, fixes #907
Despite what the man page says, Linux does not discard the initial
partial page only. The ending page would be truncated no matter if
it is partial or not.
Page-align the fadvise size to take care of this.
Also while we are at it, roll back initial fadvise offset to the
previous page boundary to actually throw away that page as we
no longer need it having read the second part now and the first
time in the previous call.

This patch has a noticeable impact in my Linux testing when the file
is on the rotating media. The total test runtime decreased by a bit
over 10%, but since over half of that time was actually cpu time,
the actual iowait time decreased around 20%.
2016-04-15 20:16:47 -04:00
..
testsuite refcounting: use uint32_t, protect against overflows, fix merging for BE 2016-04-14 23:38:56 +02:00
__init__.py propperly handle borg._version using setuptools_scm 2015-08-22 15:54:40 +02:00
__main__.py cosmetic source cleanup (flake8) 2016-01-30 21:32:45 +01:00
_chunker.c Workround a bug in Linux fadvise FADV_DONTNEED, fixes #907 2016-04-15 20:16:47 -04:00
_hashindex.c refcounting: use uint32_t, protect against overflows, fix merging for BE 2016-04-14 23:38:56 +02:00
archive.py refcounting: use uint32_t, protect against overflows, fix merging for BE 2016-04-14 23:38:56 +02:00
archiver.py borg delete: fix --cache-only for broken caches 2016-04-11 12:50:42 +02:00
cache.py refcounting: use uint32_t, protect against overflows, fix merging for BE 2016-04-14 23:38:56 +02:00
chunker.pyx cython code: add some int types to get rid of unspecific python add / subtract operations 2015-09-10 23:12:12 +02:00
compress.pyx remove misc. compat code not needed for py 3.4+ 2016-01-24 15:16:05 +01:00
crypto.pyx use os.urandom instead of own cython openssl RAND_bytes wrapper, fixes #493 2016-01-24 15:40:04 +01:00
fuse.py fix incorrect _ns variables 2016-03-31 17:31:53 -04:00
hash_sizes.py hashtable size follows a growth policy, fixes #527 2016-01-14 14:39:59 +01:00
hashindex.pyx refcounting: use uint32_t, protect against overflows, fix merging for BE 2016-04-14 23:38:56 +02:00
helpers.py reproducible doc for ProgressIndicator* 2016-04-13 14:54:34 +02:00
key.py If BORG_PASSPHRASE is present but wrong, don't prompt for password, fail instead. 2016-04-03 21:37:15 +02:00
locking.py do not sleep for >60s while waiting for lock, fixes #773 2016-03-19 21:19:30 +01:00
logger.py sane remote logging, remote stderr, fixes #461 2015-12-12 22:15:08 +01:00
lrucache.py Merge branch 'master' into lrucache 2015-08-14 10:59:21 +01:00
platform.py label platform code, exclude freebsd and unknown platform from coverage measurement 2015-11-01 23:06:52 +01:00
platform_darwin.pyx acls (darwin): use helper functions safe_encode/safe_decode 2015-10-19 02:32:29 +02:00
platform_freebsd.pyx acls (freebsd): use helper functions safe_encode/safe_decode 2015-10-19 01:43:46 +02:00
platform_linux.pyx acls (linux): helper functions safe_encode/safe_decode 2015-10-19 01:40:15 +02:00
remote.py Merge pull request #838 from enkore/issue/792 2016-04-04 21:37:04 +02:00
repository.py Merge pull request #830 from enkore/feature/1.0ctxmng 2016-04-03 17:36:38 +02:00
shellpattern.py Add shell-style pattern syntax 2016-01-21 16:07:24 +01:00
upgrader.py Make Repository a context manager, use decorators for wrapping withs 2016-04-03 17:14:43 +02:00
xattr.py cosmetic source cleanup (flake8) 2016-01-30 21:32:45 +01:00