I've got strace dump from all Android processes. [pid 726] 04:13:26.829870 writev(3, [{"\5", 1}, {"gralloc\0", 8}, {"page flipping not supported (yres_virtual=480, requested=960)\0", 62}], 3) = 71 [pid 726] 04:13:26.833420 ioctl(23, 0x4600, 0x45182bb0) = 0 [pid 726] 04:13:26.835216 writev(3, [{"\4", 1}, {"gralloc\0", 8}, {"using (fd=23)\nid = s3c2410fb\nxres = 800 px \nyres = 480 px\nxres_virtual = 800 px\nyres_virtual = 480 px \nbpp = 16\nr = 11:5\ng = 5:6\nb = "..., 206}], 3 <unfinished ...> [pid 702] 04:13:26.840404 <... recvfrom resumed> "add@/class/vc/ vcs7\0ACTION=add\0DEVPATH=/class/vc/vcs7\0SUBSYSTEM=vc \0MAJOR=7\0MINOR=7\0SEQNUM=658\0", 65536, 0, NULL, NULL) = 93 [pid 702] 04:13:26.843282 select(11, [6 10], NULL, NULL, {3600, 0}) = 1 (in [6], left {3599, 999917}) [pid 726] 04:13:26.845958 <... writev resumed> ) = 215 [pid 726] 04:13:26.847611 writev(3, [{"\4", 1}, {"gralloc\0", 8}, {"width = 800 mm (25.400000 dpi)\nheight = 480 mm (25.400000 dpi)\nrefresh rate = 53.04 Hz\n\0", 101}], 3 <unfinished ...> [pid 702] 04:13:26.850797 read(-1, 0xbed8fb78, 100) = -1 EBADF (Bad file number) [pid 702] 04:13:26.852491 writev(3, [{"\6", 1}, {"vold\0", 5}, {"Unable to read framework command (Bad file number)\0", 51}], 3 <unfinished ...> [pid 726] 04:13:26.855723 <... writev resumed> ) = 110 [pid 726] 04:13:26.856635 ioctl(23, 0x4602, 0x45182c50) = 0 [pid 726] 04:13:26.858208 dup(23) = 24 [pid 726] 04:13:26.859798 getpid( <unfinished ...> [pid 702] 04:13:26.860360 <... writev resumed> ) = 57 [pid 702] 04:13:26.861327 writev(3, [{"\6", 1}, {"vold\0", 5}, {"Error processing framework command (Bad file number)\0", 53}], 3) = 59 [pid 702] 04:13:26.864975 recvfrom(6, "add@/class/vc/ vcsa7\0ACTION=add\0DEVPATH=/class/vc/vcsa7\0SUBSYSTEM=vc \0MAJOR=7\0MINOR=135\0SEQNUM=659\0", 65536, 0, NULL, NULL) = 97 [pid 702] 04:13:26.868465 select(11, [6 10], NULL, NULL, {3600, 0} <unfinished ...> [pid 479] 04:13:26.869804 <... poll resumed> [{fd=4, events=POLLIN, revents=POLLIN}, {fd=6, events=POLLIN}, {fd=8, events=POLLIN}], 3, -1) = 1 [pid 726] 04:13:26.871238 <... getpid resumed> ) = 717 [pid 726] 04:13:26.872154 mmap2(NULL, 770048, PROT_READ|PROT_WRITE, MAP_SHARED, 23, 0) = 0x45383000 [pid 726] 04:13:26.883462 recv(-2138029488, <unfinished ...> [pid 479] 04:13:26.884667 recvfrom(4, "add@/class/vc/vcs1\0ACTION=add \0DEVPATH=/class/vc/vcs1\0SUBSYSTEM=vc \0MAJOR=7\0MINOR=1\0SEQNUM=654\0", 1024, 0, NULL, NULL) = 93 [pid 479] 04:13:26.888065 mknod("/dev/vcs1", S_IFCHR|0600, makedev (7, 1)) = 0 [pid 479] 04:13:26.889872 chown32(0xbef9a430, 0, 0) = 0 [pid 479] 04:13:26.891564 recvfrom(4, "add@/class/vc/ vcsa1\0ACTION=add\0DEVPATH=/class/vc/vcsa1\0SUBSYSTEM=vc \0MAJOR=7\0MINOR=129\0SEQNUM=655\0", 1024, 0, NULL, NULL) = 97 [pid 479] 04:13:26.895249 mknod("/dev/vcsa1", S_IFCHR|0600, makedev (7, 129)) = 0 [pid 479] 04:13:26.897324 chown32(0xbef9a430, 0, 0) = 0 [pid 479] 04:13:26.898963 recvfrom(4, "remove@/class/vc/ vcs1\0ACTION=remove\0DEVPATH=/class/vc/vcs1\0SUBSYSTEM=vc \0MAJOR=7\0MINOR=1\0SEQNUM=656\0", 1024, 0, NULL, NULL) = 99 [pid 479] 04:13:26.902645 unlink("/dev/vcs1") = 0 [pid 479] 04:13:26.904687 recvfrom(4, "remove@/class/vc/ vcsa1\0ACTION=remove\0DEVPATH=/class/vc/vcsa1\0SUBSYSTEM=vc \0MAJOR=7\0MINOR=129\0SEQNUM=657\0", 1024, 0, NULL, NULL) = 103 [pid 479] 04:13:26.908068 unlink("/dev/vcsa1") = 0 [pid 479] 04:13:26.909891 recvfrom(4, "add@/class/vc/vcs7\0ACTION=add \0D
As you can see, mmap2 (fb mapping) is called. Process is locked after mapFrameBufferLocked (in recv syscall). So the problem may not be in gralloc subsystem - in process, that must send smth. instead. http://www.newsycat.com/android/eclair/tmp/strace.dump.bz2 And NUM_BUFFERS defined 2, I did not change it. -- unsubscribe: android-porting+unsubscr...@googlegroups.com website: http://groups.google.com/group/android-porting