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; }