# HG changeset patch # User Masataka Kohagura # Date 1391685445 -32400 # Node ID 4815efa8527b5ddab3a8693a9fa2e877aba97936 # Parent 763e3768525d0da661820441b783a75243d9accc add 06th.txt & experiment result diff -r 763e3768525d -r 4815efa8527b 2014/February/memo/06th.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/2014/February/memo/06th.txt Thu Feb 06 20:17:25 2014 +0900 @@ -0,0 +1,55 @@ +2014/02/06 (Thu) + [Today's goal] + divide read と Task 実行の並列化 + + [memo] + divide read と Task の並列実行時、様々なエラーがおこる + + * thread #1: tid = 0x35eb7c, 0x000000010000fb14 regex`FifoDmaManager::has_mail_from_host(this=0x0000000100112a00) + 20 at FifoDmaManager.cc:223, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT) + frame #0: 0x000000010000fb14 regex`FifoDmaManager::has_mail_from_host(this=0x0000000100112a00) + 20 at FifoDmaManager.cc:223 + 220 int + 221 FifoDmaManager::has_mail_from_host() + 222 { + -> 223 return mail_queue1->count(); + 224 } + 225 + 226 void + +* thread #6: tid = 0x35f41d, 0x00000001000089fc regex`SchedTask::exec(this=0x000000010052ab00) + 428 at SchedTask.cc:119, stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT) + frame #0: 0x00000001000089fc regex`SchedTask::exec(this=0x000000010052ab00) + 428 at SchedTask.cc:119 + 116 } else { + 117 run(this, read,write); + 118 } +-> 119 (*connector->end_dmawait_profile)(&connector->global_busy_time,&connector->start_time,&connector->stop_time); + 120 list->task_end_time = gettime(); + + + +regex(50295,0x1046f6000) malloc: *** error for object 0x10021c5d8: incorrect checksum for freed object - object was probably modified after being freed. +*** set a breakpoint in malloc_error_break to debug +match count : 40 +match count : 40 +[start exec No: 9] +[start exec No: 25] +match count : 40 +[start exec No: 10] +match count : 40 +[start exec No: 26] + + +frame #9: 0x0000000100007ed8 regex`SchedMail::next(this=0x0000000100218d70, scheduler=0x000000010050c170, p=0x0000000000000000) + 200 at SchedMail.cc:19 + 16 return new SchedExit(); + 17 } else { + 18 int dma_tag_switch = 0; +-> 19 return new SchedTaskList(params_addr, scheduler, dma_tag_switch); + 20 } + 21 } + + さて、どこから直したらいいのだろうか・・・ + + allocate(sizeof(w->read_file_size)) <- 型 size しかとれてねーよ(震え声 + (赤っ恥かきました) + allocate(w->read_file_size) <- これで allocate できたね(ニッコリ + + + make clean; make -j gpu parallel ではなくて gpu で TaskManager をコンパイルするときのコマンド diff -r 763e3768525d -r 4815efa8527b 2014/February/memo/MMAPvsDivideRead.txt