Mercurial > hg > Game > Cerium
changeset 1886:c3573a5ac6a1 draft
GPU also waits
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 03 Jan 2014 16:57:34 +0900 |
parents | dc5e06fb63ea |
children | 94a824cde2e4 |
files | TaskManager/Fifo/FifoDmaManager.h TaskManager/Fifo/ReferencedDmaManager.h TaskManager/Gpu/GpuScheduler.cc TaskManager/kernel/ppe/CpuThreads.cc TaskManager/kernel/schedule/DmaManager.h |
diffstat | 5 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/TaskManager/Fifo/FifoDmaManager.h Fri Jan 03 16:35:58 2014 +0900 +++ b/TaskManager/Fifo/FifoDmaManager.h Fri Jan 03 16:57:34 2014 +0900 @@ -58,6 +58,10 @@ virtual void *dma_store(void *buf, memaddr addr, uint32 size, uint32 mask); virtual void dma_wait(uint32 mask) ; virtual void *get_writebuf(Scheduler *s, memaddr addr, uint32 size) ; + virtual void set_mail_waiter(SemPtr w) { + mail_queue1->set_waiter(w); + } + // void (FifoDmaManager::*start_dmawait_profile)(); // void (FifoDmaManager::*end_dmawait_profile)(unsigned long long *counter); void start_profile();
--- a/TaskManager/Fifo/ReferencedDmaManager.h Fri Jan 03 16:35:58 2014 +0900 +++ b/TaskManager/Fifo/ReferencedDmaManager.h Fri Jan 03 16:57:34 2014 +0900 @@ -16,7 +16,6 @@ virtual void free_(void *buff); virtual void bound(ListData *list); - virtual void set_mail_waiter(SemPtr w) { mail_queue1->set_waiter(w); }
--- a/TaskManager/Gpu/GpuScheduler.cc Fri Jan 03 16:35:58 2014 +0900 +++ b/TaskManager/Gpu/GpuScheduler.cc Fri Jan 03 16:57:34 2014 +0900 @@ -16,7 +16,6 @@ GpuScheduler::GpuScheduler() { - init_impl(0); init_gpu(); }
--- a/TaskManager/kernel/ppe/CpuThreads.cc Fri Jan 03 16:35:58 2014 +0900 +++ b/TaskManager/kernel/ppe/CpuThreads.cc Fri Jan 03 16:57:34 2014 +0900 @@ -117,6 +117,10 @@ for (int i = 0; i < cpu_num+io_num; i++) { args[i].scheduler->connector->set_mail_waiter(w); } +#ifdef __CERIUM_GPU__ + gpu->set_mail_waiter(w); +#endif + } int
--- a/TaskManager/kernel/schedule/DmaManager.h Fri Jan 03 16:35:58 2014 +0900 +++ b/TaskManager/kernel/schedule/DmaManager.h Fri Jan 03 16:57:34 2014 +0900 @@ -42,7 +42,7 @@ virtual void mail_write_finish_list(memaddr data) {} virtual memaddr mail_read() { return 0; } virtual memaddr task_list_mail_read() { return 0; } - virtual void set_mail_waiter(SemPtr w) {} + virtual void set_mail_waiter(SemPtr w) = 0; // API for MFC list DMA transfer virtual void *dma_loadList(Scheduler *s, ListDataPtr list, uint32 mask) { return 0; }