Commit Graph

1500 Commits (master)

Author SHA1 Message Date
Aaron Jacobs b5c1fd6ddc Fixed two issues with error responses to the kernel.
One of them caused the writeMessage error observed on OS X in
GoogleCloudPlatform/gcsfuse#101.
2015-08-04 12:30:01 +10:00
Aaron Jacobs 1e2d4abaf9 Don't send error responses to the kernel for forget and interrupt.
It's not expecting them.
2015-08-04 12:28:08 +10:00
Aaron Jacobs d205df3144 Don't return long error responses to ReadDir and ReadFile. 2015-08-04 12:21:34 +10:00
Aaron Jacobs 00b92df61c Don't forget to close the opened files. 2015-08-04 02:19:21 +00:00
Aaron Jacobs 589f6c3c98 Added a test for various file system error conditions.
This reproduces the writeMessage errors from
GoogleCloudPlatform/gcsfuse#101.
2015-08-04 09:04:31 +10:00
Aaron Jacobs ad3a463488 Implemented dir methods. 2015-08-04 09:03:22 +10:00
Aaron Jacobs 7943ab5bf4 ErrorFSTest.ReadDir 2015-08-04 09:01:53 +10:00
Aaron Jacobs e22f698dd3 ErrorFSTest.OpenDir 2015-08-04 09:01:02 +10:00
Aaron Jacobs e6a4db9920 errorFS.ReadFile 2015-08-04 09:00:38 +10:00
Aaron Jacobs e5d377b531 ErrorFSTest.ReadFile 2015-08-04 08:59:34 +10:00
Aaron Jacobs 1ea2e82165 errorFS.OpenFile 2015-08-04 08:48:03 +10:00
Aaron Jacobs 54db03b63d errorFS.LookUpInode 2015-08-04 08:45:51 +10:00
Aaron Jacobs c71b2cbf33 Fixed two bugs. 2015-08-04 08:42:51 +10:00
Aaron Jacobs c3601bff1c errorFS.GetInodeAttributes 2015-08-04 08:40:38 +10:00
Aaron Jacobs 978399a268 errorFS.SetError 2015-08-04 08:35:59 +10:00
Aaron Jacobs 8aecb35541 ErrorFSTest.OpenFile 2015-08-04 08:31:51 +10:00
Aaron Jacobs e1bfc5006b Added test names. 2015-08-04 08:29:38 +10:00
Aaron Jacobs 4df87deabd Added a test stub. 2015-08-04 08:27:55 +10:00
Aaron Jacobs 81a6d3d466 Declared errorfs.FS and a factory. 2015-08-04 08:24:16 +10:00
Aaron Jacobs 263bbab5dd Don't log errors that we expect to happen regularly.
For GoogleCloudPlatform/gcsfuse#99.
2015-08-03 13:15:29 +10:00
Aaron Jacobs 13eb2958d3 Added support for telling Linux not to abandon the page cache on open. 2015-07-29 16:25:39 +10:00
Aaron Jacobs eacbdb8d51 Disabled a test for a feature that doesn't work on OS X. 2015-07-29 16:24:47 +10:00
Aaron Jacobs a88ad8dbf2 Added support for KeepPageCache. 2015-07-29 05:53:46 +00:00
Aaron Jacobs c3c029c5c1 cachingFS.SetKeepCache 2015-07-29 05:52:25 +00:00
Aaron Jacobs 7fae3a996b Added OpenFileOp.KeepPageCache. 2015-07-29 05:51:20 +00:00
Aaron Jacobs 04dad40a08 PageCacheTest.TwoFileHandles_KeepCache 2015-07-29 05:47:18 +00:00
Aaron Jacobs 454f3959f7 PageCacheTest.TwoFileHandles_NoKeepCache 2015-07-29 05:46:13 +00:00
Aaron Jacobs 93388be731 PageCacheTest.SingleFileHandle_KeepCache 2015-07-29 05:43:47 +00:00
Aaron Jacobs 745498b1e9 cachingFS.ReadFile 2015-07-29 05:43:23 +00:00
Aaron Jacobs a95b1fb276 PageCacheTest.SingleFileHandle_NoKeepCache 2015-07-29 05:41:31 +00:00
Aaron Jacobs 28ee2de1e9 Added test names. 2015-07-29 05:37:55 +00:00
Aaron Jacobs b5be88054f Defined SetKeepCache and read behavior. 2015-07-29 15:32:49 +10:00
Aaron Jacobs 9e84136ee5 Don't run sprintf when unnecessary. 2015-07-29 15:13:22 +10:00
Aaron Jacobs 30cdb148b9 Allow the kernel to send other requests while waiting for a read.
On Linux this significantly increases gcsfuse sequential read throughput.
2015-07-29 14:59:35 +10:00
Aaron Jacobs cf5cfbccfd Fixed a (new) test bug on Linux. 2015-07-29 14:59:10 +10:00
Aaron Jacobs d45752960a Use a custom logging for interruptOp, to aid in debugging. 2015-07-29 14:53:09 +10:00
Aaron Jacobs 96b8ce71f0 Fixed a bug: the flags parameter is in and out. 2015-07-29 14:53:09 +10:00
Aaron Jacobs 3f954b3056 Enable async reads.
As best I can tell, this instructs the kernel not to synchronize on the
completion of a read request before sending further requests. This
definitely means further read requests, but I believe it means any sort
of request as well. It appears to make a big difference to gcsfuse read
support.
2015-07-29 14:53:09 +10:00
Aaron Jacobs 0114453672 Expanded interruptfs to also cover testing interrupts during flush. 2015-07-29 14:52:49 +10:00
Aaron Jacobs be5974e914 InterruptFSTest.InterruptedDuringFlush 2015-07-29 14:52:03 +10:00
Aaron Jacobs 85439be549 InterruptFSTest.InterruptedDuringRead 2015-07-29 14:51:33 +10:00
Aaron Jacobs 0796c46a9c Updated the interruptfs API. 2015-07-29 14:51:10 +10:00
Aaron Jacobs 94e31a27b6 Use the fuse ID in debug logs.
It's too confusing with a distinct set of IDs for logging.
2015-07-29 14:29:31 +10:00
Aaron Jacobs c80811a735 Don't spam the everloving shit out of the console for debug logging. 2015-07-29 12:02:58 +10:00
Aaron Jacobs e157c6bc8d Eliminated an allocation and a copy for each ReadFileOp.
This adds up to a significant performance gain for gcsfuse, in its sequential
read benchmark.

Also ReadDirOp.
2015-07-29 11:19:03 +10:00
Aaron Jacobs ab0580a452 Fixed a very dumb bug. 2015-07-29 11:14:17 +10:00
Aaron Jacobs ea97708e20 Read directly into out messages for directories. 2015-07-29 11:03:27 +10:00
Aaron Jacobs bbb262ee48 Read directly into out messages for files. 2015-07-29 11:02:29 +10:00
Aaron Jacobs 2e422a1305 Move where out messages are created. 2015-07-29 10:51:24 +10:00
Aaron Jacobs d903c709d3 Refactored allocation out OutMessage structs.
In preparation for allocating them up-front for ReadFile and ReadDir.
2015-07-29 10:47:41 +10:00