Marc CHALAND | 20 Feb 19:01

Linux 2.6.24 L4FB and VGA_CONSOLE

Hi,

I made a svn up into l4linux-2.6, made an oldconfig and encountered
some problems with lxevent and... cron (???). Problem with lxevent,
was into rmgr_init_ping_call: _dice_msg_buffer was NULL.

So I decided to purge all build directories (fiasco, build dir,
install dir and l4linux). I edited a new configuration for l4linux but
I encountered a problem : I cannot disable VGA_CONSOLE if I don't use
EMBEDDED. So I decided to set it. But, now, I've got some stability
problems : I get the following message :

---------------------------------------------------------------------------------------------------------------------------------
KERNEL: set_tls: non-existing thread 003401e1

KERNEL: set_ldt: non-existing task 0.
Trap: 13: 0000 [#1]
Modules linked in:

Pid: 1070, comm: consolechars Not tainted (2.6.24-l4 #14)
EIP: ff7c:[<00405055>] EFLAGS: 00010246 CPU: 0
EIP is at l4x_switch_to+0xd0/0xd3
EAX: 1003cc60 EBX: 00000018 ECX: 00000000 EDX: 00000000
ESI: 003401e1 EDI: 1003ca80 EBP: 1081013c ESP: 108139a0
 DS: 0000 ES: 4280 FS: 0023 GS: 0043 SS: 0023
Process consolechars (pid: 1070, ti=10812000 task=1003ca80 task.ti=108d0000)
Stack: 108139a8 00000000 1003ca80 10810000 00000400 0054da88 005f0fbc 10810000
       00000400 1003ca80 10812000 108139e8 ffff950d 00000400 0000000b 0054dd5b
       108139e8 ffff950d 005f67b0 005f67b0 ffff950d 0041923c 10810000 005f5f00
Call Trace:
(Continue reading)

Adam Lackorzynski | 21 Feb 00:23
Picon
Favicon

Re: Linux 2.6.24 L4FB and VGA_CONSOLE

Salut Marc,

On Wed Feb 20, 2008 at 19:01:25 +0100, Marc CHALAND wrote:
> I made a svn up into l4linux-2.6, made an oldconfig and encountered
> some problems with lxevent and... cron (???). Problem with lxevent,
> was into rmgr_init_ping_call: _dice_msg_buffer was NULL.
> 
> So I decided to purge all build directories (fiasco, build dir,
> install dir and l4linux). I edited a new configuration for l4linux but
> I encountered a problem : I cannot disable VGA_CONSOLE if I don't use
> EMBEDDED.

Yes, that's Linux trying to prevent you from doing stupid things :)

> So I decided to set it. But, now, I've got some stability
> problems : I get the following message :

I think it has nothing to do with CONFIG_EMBEDDED.

> ---------------------------------------------------------------------------------------------------------------------------------
> KERNEL: set_tls: non-existing thread 003401e1
> 
> KERNEL: set_ldt: non-existing task 0.
> Trap: 13: 0000 [#1]
> Modules linked in:
> 
> Pid: 1070, comm: consolechars Not tainted (2.6.24-l4 #14)
> EIP: ff7c:[<00405055>] EFLAGS: 00010246 CPU: 0
> EIP is at l4x_switch_to+0xd0/0xd3
> EAX: 1003cc60 EBX: 00000018 ECX: 00000000 EDX: 00000000
(Continue reading)

Marc CHALAND | 22 Feb 12:05

Re: Linux 2.6.24 L4FB and VGA_CONSOLE

Sorry Adam, I think I have trouble with my ISP. I didn't get your mail.

>From Adam Lackorzynski

> I think it has nothing to do with CONFIG_EMBEDDED.

Thank you for this info. So you confirm, to build l4linux with L4con,
EMBEDDED should be set on version 2.6.24 ?

>With 'sometimes', do you mean it's hard to trigger or
> rather that it doesn't matter which program you use?

It's easy to trigger (during init). But never at the same moment.

> Just for
> completeness, did you upgrade your Linux distribution you're running
> inside L4Linux? Or any other change?

I don't remember exactly why, but I had to upgrade generic_dm or
dm_phys so that I had to upgrade all TUDOS pkg directory and l4linux.
I have another strange behavior with dice : one of my IDL doesn't work
with last version of DICE. I had to go back to 238 revision of dice to
work. Code generated is very strange :

-----------> IDL :
        int         socket([in] int                 domain,
                           [in] int                 type,
                           [in] int                 protocol,
                           [out] l4_threadid_t      *socket_worker,
                           [out] int                *serrno);
(Continue reading)

Ronald Aigner | 22 Feb 12:57
Picon
Favicon

Re: Linux 2.6.24 L4FB and VGA_CONSOLE

Hi Marc,

Marc CHALAND wrote on 02/22/2008 12:05 PM this:
> Sorry Adam, I think I have trouble with my ISP. I didn't get your mail.
> 
>>From Adam Lackorzynski
> 
>> I think it has nothing to do with CONFIG_EMBEDDED.
> 
> Thank you for this info. So you confirm, to build l4linux with L4con,
> EMBEDDED should be set on version 2.6.24 ?
> 
>> With 'sometimes', do you mean it's hard to trigger or
>> rather that it doesn't matter which program you use?
> 
> It's easy to trigger (during init). But never at the same moment.
> 
>> Just for
>> completeness, did you upgrade your Linux distribution you're running
>> inside L4Linux? Or any other change?
> 
> I don't remember exactly why, but I had to upgrade generic_dm or
> dm_phys so that I had to upgrade all TUDOS pkg directory and l4linux.
> I have another strange behavior with dice : one of my IDL doesn't work
> with last version of DICE. I had to go back to 238 revision of dice to
> work. Code generated is very strange :
> 
> -----------> IDL :
>         int         socket([in] int                 domain,
>                            [in] int                 type,
(Continue reading)

Marc CHALAND | 22 Feb 14:21

Re: Linux 2.6.24 L4FB and VGA_CONSOLE

>From Ronald Aigner:

> The address of the UTCB is taken in the stub from the environment
> variable. This environment variable (_dice_corba_env->utcb) is set per
> default with l4sys_utcb_get which in turn does 'asm( "%gs:0" )'. The
> problem with Linux applications (running on L4Linux) is that they are
> linked to a glibc that uses %gs for its own purposes. Therefore, the
> UTCB pointer is probably bogus and thus UTCB IPC fails.

Wunderbar :). That explains why I encounter problems with L4Linux.

But this task is abolutely not an L4Linux one. It just uses L4env. The
values for domain, type and protocol are 2 1 6 on client side and
0x221401 0x0 0x7069776c on server side. Return value is absolutely
anything.

> The quick fix is to go back to a version of Dice that does not use UTCB
> IPC.

Could you tell me which version is the last without UTCB feature ? SVN
is not very explicit about it :).

Regards
Marc
Ronald Aigner | 22 Feb 14:33
Picon
Favicon

Re: Linux 2.6.24 L4FB and VGA_CONSOLE

Marc CHALAND wrote on 02/22/2008 02:21 PM this:
>>From Ronald Aigner:
> 
>> The address of the UTCB is taken in the stub from the environment
>> variable. This environment variable (_dice_corba_env->utcb) is set per
>> default with l4sys_utcb_get which in turn does 'asm( "%gs:0" )'. The
>> problem with Linux applications (running on L4Linux) is that they are
>> linked to a glibc that uses %gs for its own purposes. Therefore, the
>> UTCB pointer is probably bogus and thus UTCB IPC fails.
> 
> Wunderbar :). That explains why I encounter problems with L4Linux.
> 
> But this task is abolutely not an L4Linux one. It just uses L4env. The
> values for domain, type and protocol are 2 1 6 on client side and
> 0x221401 0x0 0x7069776c on server side. Return value is absolutely
> anything.
Now that really sounds strange. You say that the task is running as 
L4Env task? No L4Linux involved? Not even on the sender/receiver side of 
the IPC?

>> The quick fix is to go back to a version of Dice that does not use UTCB
>> IPC.
> 
> Could you tell me which version is the last without UTCB feature ? SVN
> is not very explicit about it :).
I'd go with revision 233 from public repository.

Regards, Ron.
--

-- 
Mit freundlichen Gruessen / with regards
(Continue reading)

Marc CHALAND | 22 Feb 14:51

Re: Linux 2.6.24 L4FB and VGA_CONSOLE

>From Ronald Aigner:

> Now that really sounds strange. You say that the task is running as
> L4Env task? No L4Linux involved? Not even on the sender/receiver side of
> the IPC?

In that case, L4Linux is not even started. Client and server side are
pure L4env tasks. More strange : other IPC even from the same tasks
work. It seems that there is a bug only for that entry.

> I'd go with revision 233 from public repository.

r238 seems to work well for current point. But I didn't do any test on
hybrid L4Linux tasks yet.

Regards
Marc
Adam Lackorzynski | 24 Feb 20:06
Picon
Favicon

Re: Linux 2.6.24 L4FB and VGA_CONSOLE


On Fri Feb 22, 2008 at 12:05:44 +0100, Marc CHALAND wrote:
> Sorry Adam, I think I have trouble with my ISP. I didn't get your mail.

Not good.

> >From Adam Lackorzynski
> 
> > I think it has nothing to do with CONFIG_EMBEDDED.
> 
> Thank you for this info. So you confirm, to build l4linux with L4con,
> EMBEDDED should be set on version 2.6.24 ?

To disable VGA EMBEDDED must be enabled, so yes.

> >With 'sometimes', do you mean it's hard to trigger or
> > rather that it doesn't matter which program you use?
> 
> It's easy to trigger (during init). But never at the same moment.

Ok, still strange, because it works perfectly for me.

Adam
--

-- 
Adam                 adam <at> os.inf.tu-dresden.de
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/
Ronald Aigner | 26 Feb 10:55
Picon
Favicon

Re: Linux 2.6.24 L4FB and VGA_CONSOLE

Marc CHALAND wrote on 02/22/2008 02:51 PM this:
>>From Ronald Aigner:
> 
>> Now that really sounds strange. You say that the task is running as
>> L4Env task? No L4Linux involved? Not even on the sender/receiver side of
>> the IPC?
> 
> In that case, L4Linux is not even started. Client and server side are
> pure L4env tasks. More strange : other IPC even from the same tasks
> work. It seems that there is a bug only for that entry.
Sorry for the long delay. I build a test for the IDL you sent, but could 
not find any error. If the task using the IPC is really a pure L4Env 
task, then this IDL should work. Do you still see the error if you leave 
L4Linux out of the boot menu?

Greetings, Ron.

--

-- 
Mit freundlichen Gruessen / with regards
ra3 @ inf.tu-dresden.de
http://os.inf.tu-dresden.de/~ra3/
Alexander Arlt | 26 Feb 18:52
Favicon

how can a l4 task load l4linux?

hi all,

i try to write a l4 task which can dynamically load / boot
a l4linux. at the moment i using fiasco ux
which parses a loader configuration file to boot l4linux.
the question is, how can i do this at runtime, without such a 
configuration file.

it seems so, that this can be done by using some internal l4 loader stuff.
i looked at the l4 loader reference manual, but its a bit hard to reason 
how this
can be realized. maybe a small example would be really nice :)

can anyone help me?

thanks,
alex

Gmane