changeset 1869:5e06a8089625 draft

merge
author Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
date Thu, 26 Dec 2013 15:33:06 +0900
parents 14225fec047c (diff) 7706faa6b0c9 (current diff)
children 44fa0f1320a9
files example/fileread/main.cc
diffstat 3 files changed, 20 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/example/fileread/main.cc	Wed Dec 25 02:24:07 2013 +0900
+++ b/example/fileread/main.cc	Thu Dec 26 15:33:06 2013 +0900
@@ -17,7 +17,7 @@
 static int spe_num = 1;
 int divide_read_flag = 0;
 static CPU_TYPE spe_cpu = SPE_ANY;
-static int DIVISION_SIZE = 4096 * 4;
+static int DIVISION_SIZE = 4096*4;
 
 extern TaskManager *manager;
 const char *usr_help_str = "Usage: ./fileread [-cpu cpu_num] [-file filename]\n\
@@ -35,6 +35,7 @@
 run16(SchedTask *manager, void *in, void *out) {
 
     FileReadPtr fr = (FileReadPtr)in;
+    char* read_text = (char*)out;
     HTaskPtr wait;
 
     for (int i = 0; (fr->left_size > 0) && (i < fr->task_blocks); i++) {
@@ -51,6 +52,11 @@
             read->set_param(2,(long)fr->division_size);
         }
         read->set_param(3,(long)fr->fd);  //fdの番号の受け渡し
+<<<<<<< local
+
+        read->set_outData(0,read_text + fr->task_number*fr->division_size, fr->division_size);
+=======
+>>>>>>> other
 
         fr->t_print->wait_for(read);
         read->spawn();
@@ -60,7 +66,11 @@
     }
 
     if (fr->left_size > 0) {
+<<<<<<< local
+        HTaskPtr next = manager->create_task(RUN_BLOCKS, (memaddr)&fr->self, sizeof(memaddr),read_text,fr->filesize);
+=======
         HTaskPtr next = manager->create_task(RUN_BLOCKS, (memaddr)&fr->self, sizeof(memaddr),0,0);
+>>>>>>> other
         fr->t_print->wait_for(next);
         next->wait_for(wait);
         next->spawn();
@@ -170,7 +180,9 @@
     fr->t_print = t_print;
 
     if (divide_read_flag != 0) {
-        run = manager->create_task(RUN_BLOCKS, (memaddr)&fr->self, sizeof(memaddr),fr->read_text,fr->filesize);
+        char *read_text = (char*)manager->allocate(fr->filesize);
+        run = manager->create_task(RUN_BLOCKS, (memaddr)&fr->self, sizeof(memaddr),read_text,fr->filesize);
+        fr->read_text = read_text;
     }else {
         //my_mmap(filename, fd, fr);
         run = manager->create_task(MMAP , (memaddr)&fr->self, sizeof(memaddr),0,0);
--- a/example/fileread/ppe/Print.cc	Wed Dec 25 02:24:07 2013 +0900
+++ b/example/fileread/ppe/Print.cc	Thu Dec 26 15:33:06 2013 +0900
@@ -10,9 +10,8 @@
 static int
 print_task(SchedTask *s, void *rbuf, void *wbuf)
 {
-    FileReadPtr fr = (FileReadPtr)rbuf;
-
-    s->printf("%s\n in Print\n", fr->read_text);
+    //FileReadPtr fr = (FileReadPtr)rbuf;
+    //s->printf("%s\n in Print\n", fr->read_text);
 
     return 0;
 }
--- a/example/fileread/ppe/Read.cc	Wed Dec 25 02:24:07 2013 +0900
+++ b/example/fileread/ppe/Read.cc	Thu Dec 26 15:33:06 2013 +0900
@@ -21,13 +21,12 @@
     long read_size = (long)s->get_param(2);
     long fd = (long)s->get_param(3);
 
-    char text[(long)read_size];
-    text[(long)read_size] = '\0';
+    char *read_text = (char*)s->get_output(wbuf,0);
 
-    pread(fd, text, (long)read_size , division_size*task_number);
+    pread(fd, read_text, (long)read_size , division_size*task_number);
 
     //s->printf("[start task No. %d]\n",task_number);
-    //s->printf("%s\n",text);
-    s->printf("in divide_read\n");
+    //s->printf("%s\n",read_text);
+    //s->printf("in divide_read\n");
     return 0;
 }