Disabled async reads.
Allowing the kernel to send multiple reads for the same file handle concurrently interferes with sequential read detection like that in GoogleCloudPlatform/gcsfuse#103.geesefs-0-30-9
parent
b5c1fd6ddc
commit
348ed9e731
|
@ -165,10 +165,6 @@ func (c *Connection) Init() (err error) {
|
|||
// Tell the kernel not to use pitifully small 4 KiB writes.
|
||||
initOp.Flags |= fusekernel.InitBigWrites
|
||||
|
||||
// Tell the kernel it is free to send further requests while a read request
|
||||
// is in flight.
|
||||
initOp.Flags |= fusekernel.InitAsyncRead
|
||||
|
||||
c.Reply(ctx, nil)
|
||||
return
|
||||
}
|
||||
|
|
|
@ -19,7 +19,6 @@ import (
|
|||
"os"
|
||||
"os/exec"
|
||||
"path"
|
||||
"runtime"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
|
@ -73,18 +72,6 @@ func (t *InterruptFSTest) StatFoo() {
|
|||
}
|
||||
|
||||
func (t *InterruptFSTest) InterruptedDuringRead() {
|
||||
// On Linux, since we have async reads enabled, the kernel sends the read and
|
||||
// the flush ops in parallel. When the process receives SIGINT, the interrupt
|
||||
// is delivered only for the flush, probably because that's what the process
|
||||
// appears to be blocking on. So this test doesn't work.
|
||||
//
|
||||
// Note that this means that cancellation is not delivered for reads on
|
||||
// Linux. This is unfortunate, but probably worth it due to the significant
|
||||
// increase in performance.
|
||||
if runtime.GOOS == "linux" {
|
||||
return
|
||||
}
|
||||
|
||||
var err error
|
||||
t.fs.EnableReadBlocking()
|
||||
|
||||
|
|
Loading…
Reference in New Issue