Jakob Unterwurzacher
c943ed32aa
syscallcompat: add getxattr fastpaths
...
The allocations from Lgetxattr were #1 in the tar extract
allocation profile (caused by security.capability lookups).
No more!
$ benchstat old.txt new.txt
name old time/op new time/op delta
Lgetxattr-4 15.2µs ± 0% 1.8µs ± 0% ~ (p=1.000 n=1+1)
$ ./benchmark.bash
Testing gocryptfs at /tmp/benchmark.bash.H8p: gocryptfs v2.0-beta1-4-g95ea738-dirty; go-fuse v2.0.4-0.20200908172753-0b6cbc515082 => github.com/rfjakob/go-fuse/v2 v2.0.4-0.20201015204057-88b12c99f8af; 2020-10-18 go1.15.3 linux/amd64
/tmp/benchmark.bash.H8p.mnt is a mountpoint
WRITE: 262144000 bytes (262 MB, 250 MiB) copied, 0,520109 s, 504 MB/s
READ: 262144000 bytes (262 MB, 250 MiB) copied, 0,255672 s, 1,0 GB/s
UNTAR: 30,238
MD5: 12,721
LS: 10,038
RM: 16,536
2020-10-18 00:25:42 +02:00
Jakob Unterwurzacher
83a324a46b
syscallcompat: add Lgetxattr benchmark
2020-10-16 20:04:22 +02:00
Jakob Unterwurzacher
20140e24ed
tests: reduce noise on MacOS
...
This should get rid of
Openat: O_NOFOLLOW missing: flags = 0x0
Fchmodat: adding missing AT_SYMLINK_NOFOLLOW flag
sys_common_test.go:203: chmod on symlink should have failed, but did not. New mode=0333
UnmountErr: "[...]/057376762.mnt" was not found in MountInfo, cannot check for FD leak
and add some context to
--- FAIL: TestUtimesNano (0.00s)
matrix_test.go:628: no such file or directory
See https://github.com/rfjakob/gocryptfs/pull/343#issuecomment-453888006
for full test output
2019-01-14 22:11:15 +01:00
Jakob Unterwurzacher
6542ddd2f9
syscallcompat: fix FchmodatNofollow tests
...
FchmodatNofollow dropped the flags parameter.
2019-01-14 21:57:24 +01:00
Jakob Unterwurzacher
a7d59032d3
syscallcompat: rework Fchmodat to FchmodatNofollow
...
We never want Fchmodat to follow symlinks, so follow what
Qemu does, and call our function FchmodatNofollow.
2019-01-14 21:54:16 +01:00
Sebastian Lackner
a9d8eb49ef
syscallcompat: Drop Fstatat emulation on macOS.
2019-01-14 21:27:28 +01:00
Sebastian Lackner
4134ff7570
syscallcompat: Drop Mkdirat emulation on macOS.
2019-01-14 21:27:28 +01:00
Sebastian Lackner
7b0d56fe98
syscallcompat: Drop Symlinkat emulation on macOS.
2019-01-14 21:27:28 +01:00
Sebastian Lackner
229a9da74b
syscallcompat: Drop Unlinkat emulation on macOS.
2019-01-14 21:27:28 +01:00
Sebastian Lackner
42bf6d1c68
syscallcompat: Drop Renameat emulation on macOS.
2019-01-14 21:27:28 +01:00
Sebastian Lackner
da557702d7
syscallcompat: Drop Openat emulation on macOS.
2019-01-14 21:27:28 +01:00
Jakob Unterwurzacher
8253c55386
tests: add Fchmodat test
...
Test that we handle symlinks correctly.
2019-01-07 23:07:53 +01:00
Jakob Unterwurzacher
57a5a8791f
tests: syscallcompat: allow failure for symlinks > 1000
...
MacOS and old XFS versions do not support very long symlinks,
but let's not make the tests fail because of that.
https://github.com/rfjakob/gocryptfs/issues/267
2018-10-11 19:45:47 +02:00
Jakob Unterwurzacher
c5243fc79e
MacOS: don't test symlinks longer than 1000 bytes
...
The limit is much lower than on Linux.
https://github.com/rfjakob/gocryptfs/issues/213
2018-02-28 20:40:08 +01:00
Jakob Unterwurzacher
f97494e89b
syscallcompat: add Readlinkat
...
We need readlinkat to implement Readlink
symlink-race-free.
2017-12-06 21:07:24 +01:00