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.
|
// Tell the kernel not to use pitifully small 4 KiB writes.
|
||||||
initOp.Flags |= fusekernel.InitBigWrites
|
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)
|
c.Reply(ctx, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
"path"
|
"path"
|
||||||
"runtime"
|
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
@ -73,18 +72,6 @@ func (t *InterruptFSTest) StatFoo() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *InterruptFSTest) InterruptedDuringRead() {
|
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
|
var err error
|
||||||
t.fs.EnableReadBlocking()
|
t.fs.EnableReadBlocking()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue