From 9020491833d664070f93cfb0ddbb12923f331424 Mon Sep 17 00:00:00 2001 From: Lisa Hsu Date: Wed, 5 Nov 2003 23:38:51 -0500 Subject: add things to track read and soo_read for specweb. kern/tru64/tru64_events.cc: don't need this - it was commented out anyway. kern/tru64/tru64_system.cc: generated code from instrum_codegen.pl also, populateMap with the correct orderings. kern/tru64/tru64_system.hh: generated code from instrum_codegen.pl --HG-- extra : convert_revision : 237366a4bae31a07dfc245d090a704afd2bd4833 --- kern/tru64/tru64_events.cc | 2 -- kern/tru64/tru64_system.cc | 43 ++++++++++++++++++++++++++++++++++++++++++- kern/tru64/tru64_system.hh | 8 ++++++++ 3 files changed, 50 insertions(+), 3 deletions(-) (limited to 'kern/tru64') diff --git a/kern/tru64/tru64_events.cc b/kern/tru64/tru64_events.cc index bb6588e62..f542256e4 100644 --- a/kern/tru64/tru64_events.cc +++ b/kern/tru64/tru64_events.cc @@ -130,8 +130,6 @@ FnEvent::process(ExecContext *xc) if (ctx && !ctx->callStack.empty()) { fnCall *last = ctx->callStack.top(); if (!xc->system->findCaller(myname(), last->name)) { - // assert(!xc->system->findCaller(myname(), "") && - // "should not have head of path in middle of stack!"); return; } ctx->calls--; diff --git a/kern/tru64/tru64_system.cc b/kern/tru64/tru64_system.cc index 6f4a0b169..f6f147d07 100644 --- a/kern/tru64/tru64_system.cc +++ b/kern/tru64/tru64_system.cc @@ -134,6 +134,12 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param, sbappendBin = new Statistics::MainBin(name() + " sbappend"); fnBins.insert(make_pair("sbappend", sbappendBin)); + readBin = new Statistics::MainBin(name() + " read"); + fnBins.insert(make_pair("read", readBin)); + + sooReadBin = new Statistics::MainBin(name() + " soo_read"); + fnBins.insert(make_pair("soo_read", sooReadBin)); + orecvBin = new Statistics::MainBin(name() + " orecv"); fnBins.insert(make_pair("orecv", orecvBin)); @@ -146,6 +152,12 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param, osendBin = new Statistics::MainBin(name() + " osend"); fnBins.insert(make_pair("osend", osendBin)); + writeBin = new Statistics::MainBin(name() + " write"); + fnBins.insert(make_pair("write", writeBin)); + + sooWriteBin = new Statistics::MainBin(name() + " soo_write"); + fnBins.insert(make_pair("soo_write", sooWriteBin)); + senditBin = new Statistics::MainBin(name() + " sendit"); fnBins.insert(make_pair("sendit", senditBin)); @@ -204,10 +216,14 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param, ipReassEvent = new FnEvent(&pcEventQueue, "ip_reass", this); tcpInputEvent = new FnEvent(&pcEventQueue, "tcp_input", this); sbappendEvent = new FnEvent(&pcEventQueue, "sbappend", this); + readEvent = new FnEvent(&pcEventQueue, "read", this); + sooReadEvent = new FnEvent(&pcEventQueue, "soo_read", this); orecvEvent = new FnEvent(&pcEventQueue, "orecv", this); recvitEvent = new FnEvent(&pcEventQueue, "recvit", this); soreceiveEvent = new FnEvent(&pcEventQueue, "soreceive", this); osendEvent = new FnEvent(&pcEventQueue, "osend", this); + writeEvent = new FnEvent(&pcEventQueue, "write", this); + sooWriteEvent = new FnEvent(&pcEventQueue, "soo_write", this); senditEvent = new FnEvent(&pcEventQueue, "sendit", this); sosendEvent = new FnEvent(&pcEventQueue, "sosend", this); tcpOutputEvent = new FnEvent(&pcEventQueue, "tcp_output", this); @@ -339,6 +355,16 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param, else panic("could not find kernel symbol \'sbappend\'"); + if (kernelSymtab->findAddress("read", addr)) + readEvent->schedule(addr); + else + panic("could not find kernel symbol \'read\'"); + + if (kernelSymtab->findAddress("soo_read", addr)) + sooReadEvent->schedule(addr); + else + panic("could not find kernel symbol \'soo_read\'"); + if (kernelSymtab->findAddress("orecv", addr)) orecvEvent->schedule(addr); else @@ -359,6 +385,16 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param, else panic("could not find kernel symbol \'osend\'"); + if (kernelSymtab->findAddress("write", addr)) + writeEvent->schedule(addr); + else + panic("could not find kernel symbol \'write\'"); + + if (kernelSymtab->findAddress("soo_write", addr)) + sooWriteEvent->schedule(addr); + else + panic("could not find kernel symbol \'soo_write\'"); + if (kernelSymtab->findAddress("sendit", addr)) senditEvent->schedule(addr); else @@ -424,9 +460,10 @@ Tru64System::Tru64System(const string _name, const uint64_t _init_param, populateMap("read", ""); populateMap("orecv", ""); - populateMap("recvit", "read"); + populateMap("soo_read", "read"); populateMap("recvit", "orecv"); populateMap("soreceive", "recvit"); + populateMap("soreceive", "soo_read"); populateMap("write", ""); populateMap("sendit", "write"); @@ -477,10 +514,14 @@ Tru64System::~Tru64System() delete ipReassEvent; delete tcpInputEvent; delete sbappendEvent; + delete readEvent; + delete sooReadEvent; delete orecvEvent; delete recvitEvent; delete soreceiveEvent; delete osendEvent; + delete writeEvent; + delete sooWriteEvent; delete senditEvent; delete sosendEvent; delete tcpOutputEvent; diff --git a/kern/tru64/tru64_system.hh b/kern/tru64/tru64_system.hh index 638fabf1d..42107494f 100644 --- a/kern/tru64/tru64_system.hh +++ b/kern/tru64/tru64_system.hh @@ -77,10 +77,14 @@ class Tru64System : public System Statistics::MainBin *ipReassBin; Statistics::MainBin *tcpInputBin; Statistics::MainBin *sbappendBin; + Statistics::MainBin *readBin; + Statistics::MainBin *sooReadBin; Statistics::MainBin *orecvBin; Statistics::MainBin *recvitBin; Statistics::MainBin *soreceiveBin; Statistics::MainBin *osendBin; + Statistics::MainBin *writeBin; + Statistics::MainBin *sooWriteBin; Statistics::MainBin *senditBin; Statistics::MainBin *sosendBin; Statistics::MainBin *tcpOutputBin; @@ -116,10 +120,14 @@ class Tru64System : public System FnEvent *ipReassEvent; FnEvent *tcpInputEvent; FnEvent *sbappendEvent; + FnEvent *readEvent; + FnEvent *sooReadEvent; FnEvent *orecvEvent; FnEvent *recvitEvent; FnEvent *soreceiveEvent; FnEvent *osendEvent; + FnEvent *writeEvent; + FnEvent *sooWriteEvent; FnEvent *senditEvent; FnEvent *sosendEvent; FnEvent *tcpOutputEvent; -- cgit v1.2.3