race in oklinux/contrib/arch/l4/kernel/sys_genode.c
Sven Fülster
mx at ...19...
Wed Feb 17 10:03:20 CET 2010
Hi all,
you have a race condition in oklinux/contrib/arch/l4/kernel/sys_genode.c
resp. oklx_genode.patch lines 1894..1905
#ifdef CONFIG_FB_GENODE
+ if(genode_input_initialized())
+ {
+ /* Put the input events into our framebuffer driver */
+ num = genode_input_flush();
+ for(i=0;i<num;i++) {
+ genode_input_event(i, genode_fb_mouse_event,
genode_fb_key_event);
+ }
+ }
+#endif //CONFIG_FB_GENODE
+
+ genode_lock(timer_main_kernel_lock);
which shows up under heavy load (freezing Xfbdev, raising some BUG()s or
a pagefault in update_stats_wait_end).
Moving the input polling into the critical section solved the problem here:
+ genode_lock(timer_main_kernel_lock);
+
#ifdef CONFIG_FB_GENODE
+ if(genode_input_initialized())
+ {
+ /* Put the input events into our framebuffer driver */
+ num = genode_input_flush();
+ for(i=0;i<num;i++) {
+ genode_input_event(i, genode_fb_mouse_event,
genode_fb_key_event);
+ }
+ }
+#endif //CONFIG_FB_GENODE
Cheers
Sven
--
Sven Fülster
More information about the users
mailing list