Commit 2948c349 authored by Aaron Jacobs's avatar Aaron Jacobs

Added a flag for per-PID tracing.

parent cecf2277
......@@ -15,6 +15,7 @@
package fuseops
import (
"flag"
"reflect"
"strings"
"sync"
......@@ -24,6 +25,13 @@ import (
"golang.org/x/net/context"
)
var fPerPIDTracing = flag.Bool(
"fuse.per_pid_tracing",
false,
"Enable a hacky mode that uses reqtrace to group all ops from each "+
"individual PID. Not a good idea to use in production; races, bugs, and "+
"resource leaks likely lurk.")
// A helper for embedding common behavior.
type commonOp struct {
opType string
......@@ -52,12 +60,27 @@ func describeOpType(t reflect.Type) (desc string) {
return
}
func (o *commonOp) maybeTraceByPID(in context.Context) (out context.Context) {
// Is there anything to do?
if !*fPerPIDTracing {
out = in
return
}
// TODO(jacobsa): Do something interesting.
out = in
return
}
func (o *commonOp) init(
ctx context.Context,
opType reflect.Type,
r bazilfuse.Request,
log func(int, string, ...interface{}),
opsInFlight *sync.WaitGroup) {
// Set up a context that reflects per-PID tracing if appropriate.
ctx = o.maybeTraceByPID(ctx)
// Initialize basic fields.
o.opType = describeOpType(opType)
o.r = r
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment