# HG changeset patch # User Shinji KONO # Date 1280471053 -32400 # Node ID e015a4e5e4b06780242670eee6b696c917eec61a # Parent 655e11f6e43728f46fb4b903629f52d0d93daa72 fix DMA/Mail wait profiler diff -r 655e11f6e437 -r e015a4e5e4b0 TaskManager/Cell/CellTaskManagerImpl.cc --- a/TaskManager/Cell/CellTaskManagerImpl.cc Thu Jul 29 22:56:58 2010 +0900 +++ b/TaskManager/Cell/CellTaskManagerImpl.cc Fri Jul 30 15:24:13 2010 +0900 @@ -247,7 +247,7 @@ void CellTaskManagerImpl::show_profile() { for (int id = 0; id < machineNum; id++) { - HTaskPtr t = create_task(ShowTime,__builtin_return_address(0)); + HTaskPtr t = schedTaskManager->create_task(ShowTime,0,0,0,0); t->set_cpu((CPU_TYPE)(id+2)); t->spawn(); } @@ -255,7 +255,7 @@ void CellTaskManagerImpl::start_profile() { for (int id = 0; id < machineNum; id++) { - HTaskPtr t = create_task(StartProfile,__builtin_return_address(0)); + HTaskPtr t = schedTaskManager->create_task(StartProfile,0,0,0,0); t->set_cpu((CPU_TYPE)(id+2)); t->spawn(); } diff -r 655e11f6e437 -r e015a4e5e4b0 TaskManager/Cell/spe/ShowTime.cc --- a/TaskManager/Cell/spe/ShowTime.cc Thu Jul 29 22:56:58 2010 +0900 +++ b/TaskManager/Cell/spe/ShowTime.cc Fri Jul 30 15:24:13 2010 +0900 @@ -10,8 +10,8 @@ /* * ここで show_dma_wait() を呼びたい */ + // printf("Show Time !\n"); smanager->show_dma_wait(); - //printf("Show Time !\n"); return 0; } diff -r 655e11f6e437 -r e015a4e5e4b0 TaskManager/Cell/spe/main.cc --- a/TaskManager/Cell/spe/main.cc Thu Jul 29 22:56:58 2010 +0900 +++ b/TaskManager/Cell/spe/main.cc Fri Jul 30 15:24:13 2010 +0900 @@ -29,8 +29,6 @@ TaskManagerImpl *manager = new SpeTaskManagerImpl(); - SchedRegister(ShowTime); - SchedRegister(StartProfile); c_scheduler = new CellScheduler(); c_scheduler->init(manager); @@ -38,6 +36,9 @@ manager->set_scheduler(c_scheduler); + SchedRegister(ShowTime); + SchedRegister(StartProfile); + c_scheduler->run(new SchedNop()); c_scheduler->finish(); diff -r 655e11f6e437 -r e015a4e5e4b0 TaskManager/kernel/schedule/DmaManager.h --- a/TaskManager/kernel/schedule/DmaManager.h Thu Jul 29 22:56:58 2010 +0900 +++ b/TaskManager/kernel/schedule/DmaManager.h Fri Jul 30 15:24:13 2010 +0900 @@ -13,6 +13,8 @@ DMA_READ_TASKLIST = 31, }; +class Scheduler; + class DmaManager { public: virtual ~DmaManager() {}; @@ -23,7 +25,7 @@ virtual void dma_load(void *buf, memaddr addr, uint32 size, uint32 mask) {} virtual void dma_store(void *buf,memaddr addr, uint32 size, uint32 mask) {} virtual void dma_wait(uint32 mask) {} - virtual void show_dma_wait(int cpu) {} + virtual void show_dma_wait(Scheduler *s, int cpu) {} virtual void start_profile() {} // API for SPU inbound/outbound mailbox diff -r 655e11f6e437 -r e015a4e5e4b0 TaskManager/kernel/schedule/Scheduler.cc --- a/TaskManager/kernel/schedule/Scheduler.cc Thu Jul 29 22:56:58 2010 +0900 +++ b/TaskManager/kernel/schedule/Scheduler.cc Fri Jul 30 15:24:13 2010 +0900 @@ -4,6 +4,7 @@ #include "Scheduler.h" #include "SchedTask.h" #include "SchedNop.h" +#include "SysFunc.h" #include "error.h" #include #include "TaskManagerImpl.h" @@ -23,7 +24,7 @@ static int null_run(SchedTask* smanager, void* r, void *w) { - smanager->printf("Calling Undefined Task\n"); + smanager->printf("Calling Undefined Task %d\n", smanager->task->command==TaskArray1? smanager->atask->command: smanager->task->command); return 0; } diff -r 655e11f6e437 -r e015a4e5e4b0 TaskManager/kernel/schedule/Scheduler.h --- a/TaskManager/kernel/schedule/Scheduler.h Thu Jul 29 22:56:58 2010 +0900 +++ b/TaskManager/kernel/schedule/Scheduler.h Fri Jul 30 15:24:13 2010 +0900 @@ -119,7 +119,7 @@ void dma_load(void *buf, memaddr addr, uint32 size, uint32 mask); void dma_store(void *buf,memaddr addr, uint32 size, uint32 mask); void dma_wait(uint32 mask); - void show_dma_wait() { connector->show_dma_wait(id); }; + void show_dma_wait() { connector->show_dma_wait(this, id); }; void start_profile() { connector->start_profile(); }; void mail_write(memaddr data); memaddr mail_read(); diff -r 655e11f6e437 -r e015a4e5e4b0 example/Bulk/Func.h --- a/example/Bulk/Func.h Thu Jul 29 22:56:58 2010 +0900 +++ b/example/Bulk/Func.h Fri Jul 30 15:24:13 2010 +0900 @@ -1,4 +1,4 @@ -enum { +enum Tasks { #include "SysTasks.h" Twice, TwiceMain,