strace: Remove the ability to write to Qstrace
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 26 Jan 2017 16:36:33 +0000 (11:36 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 9 Feb 2017 17:31:08 +0000 (12:31 -0500)
This was for injecting comments and whatnot into the stream.  It's a little
bit of a mess, since it is only useful for other processes to do the
injecting.  If the process being traced uses it, then we'd have a bunch of
syscalls. (open, write, close, or at least the write)

If you wanted that, we might as well just do SYS_null as the signal, or
write to /dev/null.

The main thing is that the 'strace' file will soon be single-open too,
which would make writing it all but unusable.  If we need that
functionality, we can add another variable.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/drivers/dev/proc.c

index ea35586..2a91030 100644 (file)
@@ -124,7 +124,7 @@ struct dirtab procdir[] = {
        {"user", {Quser}, 0, 0444},
        {"segment", {Qsegment}, 0, 0444},
        {"status", {Qstatus}, STATSIZE, 0444},
-       {"strace", {Qstrace}, 0, 0666},
+       {"strace", {Qstrace}, 0, 0444},
        {"vmstatus", {Qvmstatus}, 0, 0444},
        {"text", {Qtext}, 0, 0000},
        {"wait", {Qwait}, 0, 0400},
@@ -1154,16 +1154,6 @@ static long procwrite(struct chan *c, void *va, long n, int64_t off)
                case Qctl:
                        procctlreq(p, va, n);
                        break;
-
-               /* this lets your write a marker into the data stream,
-                * which is a very powerful tool. */
-               case Qstrace:
-                       assert(c->aux);
-                       /* it is possible that the q hungup and is closed.  that would be
-                        * the case if all of the procs closed and decref'd.  if the q is
-                        * closed, qwrite() will throw an error. */
-                       n = qwrite(((struct strace*)c->aux)->q, va, n);
-                       break;
                default:
                        error(EFAIL, "unknown qid %#llux in procwrite\n", c->qid.path);
        }