Sorry for my last mail, with was invalid formatted with html. Here is a version
in a plain text:
Thanks for fast fixing of 'SD card doesn't start due to I/O pages caching' bug.
But SD card still doesn't normally work on PandaBoard.
It seems that there are 2 more problems with it.
Bug 1.
File cache subsystem generates an interrupt processing error at intensive
read/write access to SD card: in Vcpu interrupts are disabled in the place
where they should be allowed (ports-foc/contrib/l4linux/fs/buffer.c:1231).
The same error occurs in qemu in other sub-system
(ports-foc/contrib/l4linux/kernel/softirq.c:159)
Solution:
Function prototype in ports-foc/src/lib/l4lx/include/linux.h:
FASTCALL void l4x_irq_save(unsigned long flags);
should be:
FASTCALL void l4x_irq_save(unsigned long *flags);
So, value of interrupt state (enabling/disabling) was not properly stored
before above correction.
Bug 2.
L4Linux 'hangs' because of problem with its virtual block device at intensive
read/write access to SD card on PandaBoard.
In Genode block driver memory for storing of packages sent via IPC sometimes is
over (ports-foc/src/lib/l4lx/genode_block.cc:281).
In such case L4Linux virtual block driver is blocked on semaphore
(ports-foc/src/drivers/genode_block.c:98).
When memory for IPC packages storage in Genode block driver becomes ready for
use, driver sends signal to the thread 'blk-signal-thread'
(ports-foc/src/lib/l4lx/genode_block.cc:126).
Thread 'blk-signal-thread' catches the signal and generates interrupt by
calling function 'l4_irq_trigger' (ports-foc/src/lib/l4lx/genode_block.cc:154).
But, L4Linux doesn't catch the interrupt and hangs.
In normal case interrupt is to be catched and interrupt handler
'event_interrupt' (ports-foc/src/drivers/genode_block.c:172) should be called;
increment semaphore counter by 1 (ports-foc/src/drivers/genode_block.c:146) and
thus un-block L4Linux driver.
On 10/08/2012 04:52 PM, i.ismagilov wrote:
>
> Thanks for fast fixing of 'SD card doesn't start due to I/O pages
> caching' bug.
>
> But SD card still doesn't normally work on PandaBoard.
>
>
>
> It seems that there are 2 more problems with it.
>
> * *
>
> *Bug 1.*
>
> File cache subsystem generates an interrupt processing error _at
> intensive read/write access to SD card_: in Vcpu interrupts are
> disabled in the place where they should be allowed
> (/ports-foc/contrib/l4linux/fs/buffer.c:1231/).
>
> The same error occurs in qemu in other sub-system
> (/ports-foc/contrib/l4linux/kernel/softirq.c:159/)
>
>
>
> *Solution:*
> Function prototype in /ports-foc/src/lib/l4lx/include/linux.h/:
>
> /FASTCALL void l4x_irq_save(unsigned long *flags*);
> /should be:
>
> /FASTCALL void l4x_irq_save(unsigned long **flags*);/
>
> So, value of interrupt state (enabling/disabling) was not properly
> stored before above correction.
>
>
>
> *Bug 2.*
>
> L4Linux 'hangs' because of problem with its virtual block device _at
> intensive read/write access to SD card on PandaBoard_.
>
>
>
> In Genode block driver memory for storing of packages sent via IPC
> sometimes is over /(ports-foc/src/lib/l4lx/genode_block.cc:281)/.
>
> In such case L4Linux virtual block driver is blocked on semaphore
> /(ports-foc/src/drivers/genode_block.c:98)/.
>
> When memory for IPC packages storage in Genode block driver becomes
> ready for use, driver sends signal to the thread '*blk-signal-thread*'
> /(ports-foc/src/lib/l4lx/genode_block.cc:126)/.
>
> Thread 'blk-signal-thread' catches the signal and generates interrupt
> by calling function '*l4_irq_trigger*'
> /(ports-foc/src/lib/l4lx/genode_block.cc:154)/.
>
> But, L4Linux doesn't catch the interrupt and hangs.
>
> In normal case interrupt is to be catched and interrupt handler
> '*event_interrupt*' /(ports-foc/src/drivers/genode_block.c:172)/
> should be called; increment semaphore counter by 1
> (/ports-foc/src/drivers/genode_block.c:146/) and thus un-block L4Linux
> driver.
>
>
> ------------------------------------------------------------------------------
> Don't let slow site performance ruin your business. Deploy New Relic APM
> Deploy New Relic app performance management and know exactly
> what is happening inside your Ruby, Python, PHP, Java, and .NET app
> Try New Relic at no cost today and get our sweet Data Nerd shirt too!
> http://p.sf.net/sfu/newrelic-dev2dev
>
>
> _______________________________________________
> Genode-main mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/genode-main
------------------------------------------------------------------------------
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
_______________________________________________
Genode-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/genode-main