**** BEGIN LOGGING AT Thu Sep 20 02:59:58 2012 Sep 20 10:40:20 jay7:ping Sep 20 17:28:49 dromede: hi Sep 20 17:29:50 hi Sep 20 17:30:04 i mentioned before that kexecboot menu is very slow Sep 20 17:30:11 at least it is on my machine Sep 20 17:30:27 it takes literally a second to step through each menu item Sep 20 17:30:38 so i looked at the code a bit Sep 20 17:30:43 yes, I know what caused that Sep 20 17:30:55 we have bug somewhere around processing events Sep 20 17:31:05 well, it seems that in do_main_loop for every keypress, it would redraw the entire screen 6 times Sep 20 17:31:08 about 6 redraws per event Sep 20 17:31:11 yes Sep 20 17:32:08 now, i have patch that fixes this in do_main_loop Sep 20 17:32:42 but i'm not sure if this is the right way to handle this Sep 20 17:33:16 i had something like this in mind: Sep 20 17:33:18 http://paste.debian.net/191285/ Sep 20 17:33:59 with this patch, the performance is acceptable Sep 20 17:34:42 and if i enable the bg buffer thing, the menu is almost too fast :) Sep 20 17:35:00 the redrawing problem is due to an unhandled A_NONE event Sep 20 17:35:11 or due to the fact that they get created in the first place Sep 20 17:39:59 ah.. Sep 20 17:40:22 dromede: thank you Sep 20 17:41:06 I need another hackathon again to integrate all changes :) Sep 20 17:41:25 why does it happen? every keypress is followed by 5 A_NONE events Sep 20 17:46:10 can't investigate further now Sep 20 17:46:42 ok Sep 20 17:47:17 also, i have some good news about the kernel Sep 20 17:47:19 https://github.com/kexecboot/kexecboot/blob/master/evdevs.c#L280 Sep 20 17:47:27 enable this Sep 20 17:47:30 and check log Sep 20 17:47:56 i finally found the cause of the suspend/resume hang when AC_IN plugged in Sep 20 17:48:13 wow Sep 20 17:48:19 yeah Sep 20 17:48:20 is it easy to fix now? :) Sep 20 17:48:29 it's a one liner :) Sep 20 17:49:03 caused by commit b6eede112673678f8a7a1680d6ad12245443829d by eric Sep 20 17:49:18 he himself wrote in the commit message that he should revisit it Sep 20 17:50:01 basically, comment out line 132 in spitz_pm.c and voila Sep 20 17:50:24 this line sets gpio 18 to alternate mode 1 Sep 20 17:50:35 alternate mode 1 of gpio 18 is RDY Sep 20 17:50:45 i have no idea what that means or what it's used for Sep 20 17:50:57 i'll report this to eric Sep 20 17:52:09 combine that with my offline charging patch and we finally have a kernel that has working online/offline pm code and suspend resume Sep 20 17:53:33 cool! :) Sep 20 17:54:29 the last one that had all of that working was RP's 2.6.26 Sep 20 17:54:36 that was _years_ ago Sep 20 17:55:12 yeah Sep 20 17:55:26 you are our new RP :)) Sep 20 17:56:02 now about kexecboot, i also have some suggestions regarding the code in fb.c Sep 20 17:56:16 simply put, it really wasn't written with performance in mind Sep 20 17:56:33 and that's fine, you don't really need to it to be fast as possible Sep 20 17:56:37 show me the code! :) Sep 20 17:56:52 well, i'll rather ask first Sep 20 17:56:53 so Sep 20 17:57:29 I've tried to speedup fb.c during rewrite about 1-1.5 years ago Sep 20 17:57:36 it was even slower before Sep 20 17:57:53 just drawing pixel-by-pixel Sep 20 17:58:09 I have some updated in some local branch Sep 20 17:58:22 at least special func to draw rounded frame Sep 20 17:58:50 because now we are drawing frames by filled rect's :) Sep 20 17:59:09 well, yeah Sep 20 17:59:19 but not really, i think :) Sep 20 17:59:37 but drawing code still have place for improvements Sep 20 17:59:53 1-2-4bpp mode is just broken now Sep 20 18:00:01 look at this: Sep 20 18:00:37 http://paste.debian.net/191291/ Sep 20 18:00:46 this is an oprofile run of kexecboot Sep 20 18:00:55 usage scenario: just scroll down the menu Sep 20 18:01:02 the problem is very obvious :) Sep 20 18:01:28 https://github.com/kexecboot/kexecboot/blob/master/gui.c#L37 Sep 20 18:01:55 count number of overlapped fb_draw_rounded_rect() :) Sep 20 18:03:09 and later in https://github.com/kexecboot/kexecboot/blob/master/gui.c#L247 Sep 20 18:03:22 yes but fb_draw_rounded_rect and fb_draw_rect use line drawing functions Sep 20 18:03:45 every line of every rect is call of fb_draw_hline_16bpp Sep 20 18:03:56 and line drawing routines do a lot of work _each_ time they are called Sep 20 18:04:04 sure Sep 20 18:04:05 and some of that code should be done only once Sep 20 18:04:13 for instance, bgr-rgb checks Sep 20 18:04:14 sure again :) Sep 20 18:04:24 and final pixel format composition Sep 20 18:04:35 we need central ideas and todo page :) Sep 20 18:04:47 so i could refactor those things Sep 20 18:04:51 for 16bit initially Sep 20 18:04:56 and if it works ok Sep 20 18:05:10 that would be great Sep 20 18:05:13 i can expand it to other format Sep 20 18:05:15 although Sep 20 18:05:32 i really don't want to mess with 1,2,4 and 8 bit formats Sep 20 18:05:45 same problem here :)) Sep 20 18:06:00 anyway, that is rarely used now Sep 20 18:06:06 exactly Sep 20 18:06:15 may be it's easier to drop that completely Sep 20 18:06:24 or use old pixel-by-pixel drawing Sep 20 18:06:30 so instead of supporting it, you could just default to the text ui for anything less than 16bpp Sep 20 18:06:50 good idea Sep 20 18:08:24 thank you again for your contribution :) Sep 20 18:08:39 np Sep 20 18:08:42 i plan to do more Sep 20 18:09:37 i think kexecboot has a lot of potential in the embedded world Sep 20 18:09:46 maybe even wider Sep 20 18:09:56 I have one man who reviewing current collections code Sep 20 18:10:11 collections code? Sep 20 18:10:12 so waiting some contributions from him too Sep 20 18:10:32 menu items/xpm lines/boot devices lists Sep 20 18:10:44 ah Sep 20 18:11:03 we are using special code to handle every such list Sep 20 18:11:17 I hope we will have something common after Sep 20 18:12:22 and another crazy idea is porting qi-bootmenu UI to us :) Sep 20 18:12:27 EFL-based Sep 20 18:12:39 now that's a _great_idea Sep 20 18:12:47 EVAS library was built with embedded devices in mind Sep 20 18:13:02 but i guess that means you have to drop klibc Sep 20 18:13:25 kexecboot can be compiled against any other *libc easily Sep 20 18:13:42 that's not a problem Sep 20 18:13:52 of course, i'm compiling my test build with eglibc Sep 20 18:14:13 we just using klibc in zaurus build because of space restrictions Sep 20 18:14:35 hmm, i wonder how much i can reduce kexecboot binary size if i compile it as pure thumb code Sep 20 18:14:41 and with -Os Sep 20 18:14:59 share your results with us :) Sep 20 18:33:52 default OE CFLAGS, dynamic, stripped: Sep 20 18:33:53 * 88K Sep 20 18:33:53 with Os, dynamic, stripped: Sep 20 18:33:53 * 72K Sep 20 18:33:53 with Os and -mthumb, dynamic, stripped: Sep 20 18:33:53 * 68K Sep 20 18:33:55 default OE CFLAGS, static, stripped: Sep 20 18:33:57 * 588K Sep 20 18:34:01 with Os, static, stripped: Sep 20 18:34:03 * 588K Sep 20 18:34:06 with Os static, -mthumb, static, stripped: Sep 20 18:34:07 * 564K Sep 20 18:34:11 so i guess glibc is a bit too much to link statically :/ Sep 20 18:34:52 hehe Sep 20 18:35:33 let's ask Andrea to test with -mthumb -Os Sep 20 18:35:45 and with klibc Sep 20 18:36:21 i guess it would shave off ~20 kb **** ENDING LOGGING AT Fri Sep 21 02:59:58 2012