Re: FPU state management in L4Fiasco.OC program

Adam Lackorzynski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
On Sun Apr 08, 2012 at 17:22:21 -0500, Mai, Haohui wrote:
> I'm writing a new OS kernel atop of L4Fiasco.OC. I'm having some
> difficulties to let my OS support user-level processes that uses
> floating-point instruction.
> 
> So far, My OS closely follows L4Linux, it creates a new task for each
> user-level process, and marks as all threads of the task as alien thread to
> capture all page faults and exceptions.
> 
> My OS works fines with page fault and syscalls. However, I'm confused with
> what I should do with floating-point exception (exception #7), which is
> issued to my kernel at the first time it tries to perform floating-point
> arithmetic.
> 
> I tried to return to the user-level process with an empty message (
> l4_msgtag_t tag = l4_msgtag(0, 0, 0, 0) ), or an empty message with
> L4_MSGTAG_TRANSFER_FPU (l4_msgtag_t tag = l4_msgtag(0, 0, 0,
> L4_MSGTAG_TRANSFER_FPU) ), but I had no luck.
> 
> The user-level process immediately calls "int $0x3" and stops.
> 
> I read through L4Linux's code and it seems it's doing similar thing, except
> that it did initialize the FPU state before asking L4 to transfer the FPU
> state to user-level process.

I do not see anything (obvious) wrong. Can you pinpoint where the int3
is?




Adam
-- 
Adam                 [email protected]
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.