1 #if !defined(_PROCESSMEMORY_H_) 2 #define _PROCESSMEMORY_H_ 4 #include "MemoryManager.h" 18 #define PSYPROC_ERROR 0 19 #define PSYPROC_CREATED 1 20 #define PSYPROC_INIT 2 21 #define PSYPROC_IDLE 3 22 #define PSYPROC_READY 4 23 #define PSYPROC_ACTIVE 5 24 #define PSYPROC_SHUTTING_DOWN 6 25 #define PSYPROC_TERMINATED 7 32 THREAD_RET THREAD_FUNCTION_CALL QueueTest(THREAD_ARG arg);
33 THREAD_RET THREAD_FUNCTION_CALL ProcessMemoryPerfTest(THREAD_ARG arg);
39 char recentInMsg[10 * DRAFTMSGSIZE];
42 char recentOutMsg[10 * DRAFTMSGSIZE];
44 uint64 currentCPUTicks;
47 std::string xmlIn, xmlOut;
49 const char* oldData = NULL;
51 char* msgData = recentInMsg;
52 for (n = 0; n < 10; n++) {
56 xmlIn += msg->
toXML();
58 msgData += DRAFTMSGSIZE;
60 msgData = recentOutMsg;
61 for (n = 0; n < 10; n++) {
65 xmlOut += msg->
toXML();
67 msgData += DRAFTMSGSIZE;
72 return utils::StringFormat(
"<processstats msgincount=\"%llu\" msginbytes=\"%llu\" msgoutcount=\"%llu\" msgoutbytes=\"%llu\" time=\"%llu\" memusage=\"%llu\">\n<inmsg>\n%s</inmsg>\n<outmsg>\n%s</outmsg>\n</processstats>\n",
73 msgInCount, msgInBytes, msgOutCount, msgOutBytes, time, procMemUsage, xmlIn.c_str(), xmlOut.c_str());
86 char name[MAXKEYNAMELEN+1];
87 char commandline[MAXCOMMANDLINELEN+1];
96 return utils::StringFormat(
"<space id=\"%u\" name=\"%s\" node=\"%u\" status=\"%u\" osid=\"%u\" commandline=\"%s\" created=\"%llu\" lastseen=\"%llu\">\n%s%s</space>",
97 id, name, nodeID, status, osID, html::EncodeHTML(commandline).c_str(), createdTime, lastseen, stats.toXML().c_str(), perfStats.toXML().c_str());
108 uint64 qIndex[MAXPROC*4];
111 #define INITIALQSIZE sizeof(MessageQueueHeader) + 2048 119 char name[MAXKEYNAMELEN+1];
122 #define CHECKPROCESSMEMORYSERIAL if (serial != master->getProcessShmemSerial()) {if (!open()) {mutex->leave();return 0;}} 127 static bool UnitTest();
128 static bool PerfTest();
133 bool getMemoryUsage(uint64& alloc, uint64& usage);
134 std::vector<ProcessInfoStruct>* getAllProcesses();
135 bool checkProcessHeartbeats(uint32 timeoutMS, std::list<ProcessInfoStruct>& procIssues);
138 bool create(uint32 initialProcCount);
141 bool createNewProcess(
const char* name, uint16 &
id);
142 bool deleteProcess(uint16
id);
145 bool getProcessName(uint16
id,
char* name, uint32 maxSize);
146 bool getProcessID(
const char* name, uint16 &
id);
147 uint64 getProcessCreateTime(uint16
id);
149 uint8 getProcessStatus(uint16
id, uint64& lastseen);
150 uint8 getProcessStatus(uint16
id, uint64& lastseen, uint64& createTime);
151 bool getProcessCommandLine(uint16
id,
char* cmdline, uint32 maxSize);
152 uint16 getProcessIDFromOSID(uint32 osid);
153 uint32 getProcessOSID(uint16
id);
155 bool setProcessStatus(uint16
id, uint8 status, uint64 currentCPUTicks = 0);
156 bool setProcessCommandLine(uint16
id,
const char* cmdline);
157 bool setProcessOSID(uint16
id, uint32 osid);
158 bool setProcessType(uint16
id, uint8 type);
171 bool addToAllSignalQsExcept(
DataMessage* msg, uint16 except);
173 DataMessage* waitForCmdQ(uint16 procID, uint32 timeout);
174 DataMessage* waitForMsgQ(uint16 procID, uint32 timeout);
175 DataMessage* waitForSigQ(uint16 procID, uint32 timeout);
176 DataMessage* waitForReqQ(uint16 procID, uint32 timeout);
178 uint32 getCmdQCount(uint16 procID);
179 uint32 getMsgQCount(uint16 procID);
180 uint32 getSigQCount(uint16 procID);
181 uint32 getReqQCount(uint16 procID);
183 bool getQueueSizes(uint16 procID, uint64 &bytes, uint32 &count);
184 bool addLocalPerformanceStats(std::list<PerfStats> &perfStats);
187 bool resize(uint64 newMemorySize);
188 bool setupNextAvailableQ(uint16& qID);
189 bool deleteQ(uint16
id);
190 bool resizeQ(uint16
id, uint64 newSize);
195 bool addToQ(uint16 procID, uint8 qType,
DataMessage* msg);
196 DataMessage* waitForQ(uint16 procID, uint8 qType, uint32 timeout);
210 #endif //_PROCESSMEMORY_H_ Definition: ProcessMemory.h:35
Definition: MemoryManager.h:169
Definition: ProcessMemory.h:77
Definition: ProcessMemory.h:125
std::string toXML(std::map< uint16, std::string > *subtypes=NULL, std::map< uint16, std::string > *subcontexts=NULL, std::map< uint32, std::string > *compNames=NULL)
Definition: DataMessage.cpp:775
Definition: ProcessMemory.h:101
Definition: MemoryManager.h:76
const char * swapMessageData(const char *data)
Definition: DataMessage.cpp:1399
Definition: DataMessage.h:95