Commit Graph

107 Commits (geesefs-0-30-9)

Author SHA1 Message Date
Vitaliy Filippov 575b70f3fd Allow to use "zero-copy" writes 2021-09-01 14:14:51 +03:00
Vitaliy Filippov fcabfc89e9 Introduce VectoredReadOp
Read requests can now take vectored responses from the filesystem
implementation and send them to FUSE device via the writev() system call.

This allows file systems to send data without copying it into the
library-provided buffer if the data is already in memory.

The change also speeds up normal ReadFileOps as a side effect because
it removes extra memory allocations.
2021-09-01 14:14:15 +03:00
Andrew Gaul 7782064498
Calculate pageSize and bufSize at run-time (#102)
ARM-based macOS uses 16 KB pages instead of 4 KB.  Fixes
GoogleCloudPlatform/gcsfuse#548.
2021-08-11 21:31:10 +02:00
Kurt Jensen d82237972e
Add support for max_pages and increase to 256 (#96)
* Bump protocol version to min 7.28, max 7.31
* Increase read/write buffer size to 1MiB
* Add new fields to initOp
* Set FUSE_MAX_PAGES flag for init
* Lower min minor version to 19 for osxfuse
* Fix linux WriteSize test
2021-08-02 23:29:12 +02:00
Michael Stapelberg 0630024b2b switch from assembly stubs to go:linkname comment
The go:linkname way works with Go 1.17 (with regabi), too.

Upstream did this in 2015 in
0b8d583320

See also https://sitano.github.io/2016/04/28/golang-private/ for more background
about both techniques.
2021-08-02 09:34:49 +02:00
Brendan McMillion 1ec76bd410
Add ARM support. (#85) 2020-06-26 07:45:43 +02:00
Michael Stapelberg 2f65426467 implement NoOpenSupport and NoOpendirSupport
See also:
7678ac5061
d7afaec0b5
d9a9ea94f7
2020-02-15 08:31:54 +01:00
Michael Stapelberg 7c2b569250 implement symlink caching 2020-02-15 08:04:53 +01:00
Michael Stapelberg ae5da07e4c
remove naked returns across the code base (#75)
fixes #73
2020-01-28 10:10:08 +01:00
Ka-Hing Cheung 4ee1cf7f62 add support for fallocate (#66)
* Fallocate support

* use fallocate wrapper that works on darwin
2019-10-26 10:15:00 +02:00
Michael Stapelberg 90d933551c fix formatting directives (to pass go test) 2019-09-16 18:28:45 +02:00
Ka-Hing Cheung d20c4665c1 GetXattr/ListXattr implementation 2017-05-11 14:45:40 -07:00
Aaron Jacobs cea04881bd buffer: generate decent code for OutMessage.Reset in Go 1.8 beta 2. 2016-12-19 14:41:59 +11:00
Aaron Jacobs bd496ea048 buffer: don't use memclr for the tiny header, whose size is known. 2016-12-19 13:58:09 +11:00
Aaron Jacobs 05b4591414 buffer: split runtime.s into pre- and post-Go 1.8 files.
Go 1.8 renamed this function; cf. golang/go@87e48c5.
2016-12-19 13:50:20 +11:00
Aaron Jacobs 0cd689f560 buffer: simplify storage of the header. 2016-12-19 13:14:54 +11:00
Aaron Jacobs d1ff915b0b OutMessage.OutHeader 2016-12-19 13:14:54 +11:00
Aaron Jacobs 849f53b080 OutMessage.ShrinkTo 2016-12-19 13:14:54 +11:00
Aaron Jacobs e03fa52bbf OutMessage.Grow 2016-12-19 13:14:54 +11:00
Aaron Jacobs d1ed507a5a OutMessage.GrowNoZero 2016-12-19 13:14:54 +11:00
Aaron Jacobs a7c1a1474a buffer_test: fix build errors. 2016-12-19 13:14:54 +11:00
Aaron Jacobs 0a22738acf OutMessage.Bytes 2016-12-19 13:14:21 +11:00
Aaron Jacobs 6f4af61734 buffer: consistently use 'm' for OutMessage receivers. 2016-12-19 13:14:21 +11:00
Aaron Jacobs 98a2b634bf OutMessage.Reset 2016-12-19 13:14:21 +11:00
Aaron Jacobs 9eb5e0793f buffer: define OutMessage's contents. 2016-12-19 13:14:21 +11:00
Aaron Jacobs 6e5247d16d buffer_test: make use of the new API. 2016-12-19 13:14:21 +11:00
Aaron Jacobs 0f6db15c59 buffer: give OutMessage's public API a makeover.
Use int where appropriate, fix up documentation, and clarify. Delete the
implementation where it will soon need to change.
2016-12-19 13:14:21 +11:00
Aaron Jacobs 10bc0e766c buffer_test: fix computation of the number of bytes cleared. 2016-12-19 13:14:05 +11:00
Aaron Jacobs 06b9c19b5e TestOutMessageHeader 2016-12-19 12:38:58 +11:00
Aaron Jacobs 78a1450a77 TestOutMessageShrinkTo 2016-12-19 12:32:22 +11:00
Aaron Jacobs 39f1f7c489 TestOutMessageAppendString 2016-12-19 12:31:08 +11:00
Aaron Jacobs c1af0dbdee TestOutMessageAppend 2016-12-19 12:30:42 +11:00
Aaron Jacobs e7b9860f41 buffer_test: expand the coverage of TestOutMessageGrow. 2016-12-19 12:26:59 +11:00
Aaron Jacobs 02e3f7895c buffer_test: expand the coverage of TestOutMessageReset. 2016-12-19 12:20:27 +11:00
Aaron Jacobs f250e46e83 buffer_test: add TODOs where more test coverage is necessary. 2016-12-19 12:16:51 +11:00
Aaron Jacobs ad65849346 Add a test for OutMessage.Grow. 2016-12-19 11:17:33 +11:00
Aaron Jacobs e329c0ef33 Add a test for OutMessage.Reset. 2016-12-19 11:17:33 +11:00
Aaron Jacobs 72fc9c96ca Add a benchmark for growing and shrinking.
This should better stress memclr.
2016-12-19 10:35:20 +11:00
Aaron Jacobs b87ffb528b Fix a bug in BenchmarkOutMessageReset.
I misunderstood what was being zeroed. Only the header is.
2016-12-19 10:26:19 +11:00
Aaron Jacobs d31e0a4eae Add a test for memclr. 2016-12-19 10:19:29 +11:00
Aaron Jacobs 92e3407014 Add benchmarks for OutMessage.Reset. 2016-12-19 09:46:08 +11:00
Aaron Jacobs 81de9fb6cc Made the message shrinking API less confusing. 2015-08-10 15:45:46 +10:00
Aaron Jacobs bbb262ee48 Read directly into out messages for files. 2015-07-29 11:02:29 +10:00
Aaron Jacobs 240465913f Fixed the build on Linux. 2015-07-28 16:31:59 +10:00
Aaron Jacobs a1fc133e32 Finished OutMessage. 2015-07-28 16:29:30 +10:00
Aaron Jacobs a25c297e41 OutMessage.AppendString 2015-07-28 16:29:09 +10:00
Aaron Jacobs bb88db68e0 OutMessage.Append 2015-07-28 16:28:21 +10:00
Aaron Jacobs 75e2706a4b Renamed two files. 2015-07-28 16:26:42 +10:00
Aaron Jacobs e2aa0ec1be OutMessage.GrowNoZero 2015-07-28 16:24:45 +10:00
Aaron Jacobs 9a55ffcd7d OutMessage.Grow 2015-07-28 16:23:59 +10:00