changeset 255:6bb8725e60ae

show dma wait
author tkaito@localhost.localdomain
date Wed, 03 Jun 2009 15:46:07 +0900
parents ec52ff39e140
children 465a871f4c07
files TaskManager/Cell/spe/CellDmaManager.cc TaskManager/Cell/spe/SchedExit.cc TaskManager/Cell/spe/SchedMail.cc TaskManager/Fifo/FifoDmaManager.o TaskManager/Fifo/FifoTaskManagerImpl.o TaskManager/Fifo/MainScheduler.o TaskManager/kernel/main.o TaskManager/kernel/ppe/BufferManager.o TaskManager/kernel/ppe/DmaBuffer.o TaskManager/kernel/ppe/HTask.o TaskManager/kernel/ppe/HTaskInfo.o TaskManager/kernel/ppe/MailManager.o TaskManager/kernel/ppe/SymTable.o TaskManager/kernel/ppe/Task.o TaskManager/kernel/ppe/TaskList.o TaskManager/kernel/ppe/TaskListInfo.o TaskManager/kernel/ppe/TaskManager.o TaskManager/kernel/ppe/TaskManagerImpl.o TaskManager/kernel/ppe/TaskQueue.o TaskManager/kernel/ppe/TaskQueueInfo.o TaskManager/kernel/schedule/SchedExit.o TaskManager/kernel/schedule/SchedMail.o TaskManager/kernel/schedule/SchedNop.o TaskManager/kernel/schedule/SchedNop2Ready.o TaskManager/kernel/schedule/SchedTask.o TaskManager/kernel/schedule/SchedTaskList.o TaskManager/kernel/schedule/Scheduler.o TaskManager/kernel/schedule/TaskGroup.o TaskManager/kernel/sys_task/Finish.o TaskManager/kernel/sys_task/Start.o TaskManager/kernel/sys_task/systask_register.o include/TaskManager/CellDmaManager.h include/TaskManager/DmaManager.h include/TaskManager/SchedExit.h include/TaskManager/Scheduler.h
diffstat 35 files changed, 16 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/TaskManager/Cell/spe/CellDmaManager.cc	Wed Jun 03 14:50:21 2009 +0900
+++ b/TaskManager/Cell/spe/CellDmaManager.cc	Wed Jun 03 15:46:07 2009 +0900
@@ -54,6 +54,16 @@
 }
 
 void
+CellDmaManager::show_dma_wait(int cpu)
+{
+
+  printf("spu%d: global_wait_time = %lld\n",cpu, global_wait_time);
+  printf("spu%d: global_busy_time = %lld\n",cpu, global_busy_time);
+  printf("spu%d: busy_ratio = %g%%\n",cpu, 
+	 ((double)global_busy_time)/((double)(global_busy_time+global_wait_time))*100.0);
+}
+
+void
 CellDmaManager::dma_wait(uint32 mask)
 {
 #ifdef SPU_PROFILE
--- a/TaskManager/Cell/spe/SchedExit.cc	Wed Jun 03 14:50:21 2009 +0900
+++ b/TaskManager/Cell/spe/SchedExit.cc	Wed Jun 03 15:46:07 2009 +0900
@@ -7,6 +7,7 @@
 {
     delete p;
 
+    m->show_dma_wait();
     __debug("SchedExit::next()\n");
 
     return NULL;
--- a/TaskManager/Cell/spe/SchedMail.cc	Wed Jun 03 14:50:21 2009 +0900
+++ b/TaskManager/Cell/spe/SchedMail.cc	Wed Jun 03 15:46:07 2009 +0900
@@ -18,7 +18,7 @@
     __debug("[SchedMail:%s]\n", __FUNCTION__);
 
     if ((int)params_addr == MY_SPE_COMMAND_EXIT) {
-	return new SchedExit();
+        return new SchedExit();
     } else {
 	return new SchedTaskList(params_addr, m);
     }
Binary file TaskManager/Fifo/FifoDmaManager.o has changed
Binary file TaskManager/Fifo/FifoTaskManagerImpl.o has changed
Binary file TaskManager/Fifo/MainScheduler.o has changed
Binary file TaskManager/kernel/main.o has changed
Binary file TaskManager/kernel/ppe/BufferManager.o has changed
Binary file TaskManager/kernel/ppe/DmaBuffer.o has changed
Binary file TaskManager/kernel/ppe/HTask.o has changed
Binary file TaskManager/kernel/ppe/HTaskInfo.o has changed
Binary file TaskManager/kernel/ppe/MailManager.o has changed
Binary file TaskManager/kernel/ppe/SymTable.o has changed
Binary file TaskManager/kernel/ppe/Task.o has changed
Binary file TaskManager/kernel/ppe/TaskList.o has changed
Binary file TaskManager/kernel/ppe/TaskListInfo.o has changed
Binary file TaskManager/kernel/ppe/TaskManager.o has changed
Binary file TaskManager/kernel/ppe/TaskManagerImpl.o has changed
Binary file TaskManager/kernel/ppe/TaskQueue.o has changed
Binary file TaskManager/kernel/ppe/TaskQueueInfo.o has changed
Binary file TaskManager/kernel/schedule/SchedExit.o has changed
Binary file TaskManager/kernel/schedule/SchedMail.o has changed
Binary file TaskManager/kernel/schedule/SchedNop.o has changed
Binary file TaskManager/kernel/schedule/SchedNop2Ready.o has changed
Binary file TaskManager/kernel/schedule/SchedTask.o has changed
Binary file TaskManager/kernel/schedule/SchedTaskList.o has changed
Binary file TaskManager/kernel/schedule/Scheduler.o has changed
Binary file TaskManager/kernel/schedule/TaskGroup.o has changed
Binary file TaskManager/kernel/sys_task/Finish.o has changed
Binary file TaskManager/kernel/sys_task/Start.o has changed
Binary file TaskManager/kernel/sys_task/systask_register.o has changed
--- a/include/TaskManager/CellDmaManager.h	Wed Jun 03 14:50:21 2009 +0900
+++ b/include/TaskManager/CellDmaManager.h	Wed Jun 03 15:46:07 2009 +0900
@@ -32,6 +32,7 @@
     void dma_wait(uint32 mask) ;
     void start_dmawait_profile();
     void end_dmawait_profile();
+    void show_dma_wait(int cpu);
 
     void mail_write(uint32 data);
     uint32 mail_read(void);
--- a/include/TaskManager/DmaManager.h	Wed Jun 03 14:50:21 2009 +0900
+++ b/include/TaskManager/DmaManager.h	Wed Jun 03 15:46:07 2009 +0900
@@ -31,6 +31,7 @@
     virtual void dma_load(void *buf, uint32 addr, uint32 size, uint32 mask) {}
     virtual void dma_store(void *buf,uint32 addr, uint32 size, uint32 mask) {}
     virtual void dma_wait(uint32 mask) {}
+    virtual void show_dma_wait(int cpu) {}
 
     // API for SPU inbound/outbound mailbox
     virtual void mail_write(uint32 data) {}
--- a/include/TaskManager/SchedExit.h	Wed Jun 03 14:50:21 2009 +0900
+++ b/include/TaskManager/SchedExit.h	Wed Jun 03 15:46:07 2009 +0900
@@ -16,7 +16,7 @@
 class SchedExit : public SchedTaskBase {
 public:
     BASE_NEW_DELETE(SchedExit);
-
+    
     SchedTaskBase* next(Scheduler *, SchedTaskBase *);
 };
 
--- a/include/TaskManager/Scheduler.h	Wed Jun 03 14:50:21 2009 +0900
+++ b/include/TaskManager/Scheduler.h	Wed Jun 03 15:46:07 2009 +0900
@@ -159,6 +159,7 @@
     void dma_load(void *buf, uint32 addr, uint32 size, uint32 mask);
     void dma_store(void *buf,uint32 addr, uint32 size, uint32 mask);
     void dma_wait(uint32 mask);
+    void show_dma_wait() { connector->show_dma_wait(id); };
     void mail_write(uint32 data);
     uint32 mail_read(void);
     void dma_loadList(ListDataPtr list, void *, uint32 mask);