* [Adeos-main] [Vortx86DX] What's wrong with kernels upper than 2.6.30.10 ?
@ 2010-04-15 22:00 Gilles DOFFE
2010-04-15 22:18 ` Jan Kiszka
2010-04-16 7:27 ` Philippe Gerum
0 siblings, 2 replies; 5+ messages in thread
From: Gilles DOFFE @ 2010-04-15 22:00 UTC (permalink / raw)
To: adeos-main
[-- Attachment #1: Type: text/plain, Size: 1265 bytes --]
Hello,
I try to install a real-time Linux kernel on a Roboard based on a Vortex86DX
(a x486 with TSC).
All works fine with :
Linux Kernel 2.6.30.10
Xenomai 2.5.1
Adeos patch adeos-ipipe-2.6.30.8-x86-2.4-09.patch
But, for all kernels upper or equal to 2.6.31, I always get a double fault
when testing WP bit. I have this double fault just after that :
*Checking if this processor honours the WP bit even in supervisor mode...*
I traced with some simple printk that the problem occurs in this function,
at the end or after the call of fix_to_virt :
*static noinline int do_test_wp_bit(void)
{
char tmp_reg;
int flag;
__asm__ __volatile__(
" movb %0, %1 \n"
"1: movb %1, %0 \n"
" xorl %2, %2 \n"
"2: \n"
_ASM_EXTABLE(1b,2b)
:"=m" (*(char *)fix_to_virt(FIX_WP_TEST)),
"=q" (tmp_reg),
"=r" (flag)
:"2" (1)
:"memory");
return flag;
}*
I'm (quasi) sure that the problem is not that function, due to it works when
the kernel is not patched.
But where should I search ?
Can you give me some indications ?
Thanks,
Gilles
[-- Attachment #2: Type: text/html, Size: 1559 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Adeos-main] [Vortx86DX] What's wrong with kernels upper than 2.6.30.10 ?
2010-04-15 22:00 [Adeos-main] [Vortx86DX] What's wrong with kernels upper than 2.6.30.10 ? Gilles DOFFE
@ 2010-04-15 22:18 ` Jan Kiszka
2010-04-15 22:24 ` Jan Kiszka
2010-04-16 7:27 ` Philippe Gerum
1 sibling, 1 reply; 5+ messages in thread
From: Jan Kiszka @ 2010-04-15 22:18 UTC (permalink / raw)
To: Gilles DOFFE; +Cc: adeos-main
[-- Attachment #1: Type: text/plain, Size: 1579 bytes --]
Gilles DOFFE wrote:
> Hello,
>
> I try to install a real-time Linux kernel on a Roboard based on a Vortex86DX
> (a x486 with TSC).
>
> All works fine with :
> Linux Kernel 2.6.30.10
> Xenomai 2.5.1
> Adeos patch adeos-ipipe-2.6.30.8-x86-2.4-09.patch
>
> But, for all kernels upper or equal to 2.6.31, I always get a double fault
> when testing WP bit. I have this double fault just after that :
>
> *Checking if this processor honours the WP bit even in supervisor mode...*
>
> I traced with some simple printk that the problem occurs in this function,
> at the end or after the call of fix_to_virt :
>
> *static noinline int do_test_wp_bit(void)
> {
> char tmp_reg;
> int flag;
>
> __asm__ __volatile__(
> " movb %0, %1 \n"
> "1: movb %1, %0 \n"
> " xorl %2, %2 \n"
> "2: \n"
> _ASM_EXTABLE(1b,2b)
> :"=m" (*(char *)fix_to_virt(FIX_WP_TEST)),
> "=q" (tmp_reg),
> "=r" (flag)
> :"2" (1)
> :"memory");
>
> return flag;
> }*
>
> I'm (quasi) sure that the problem is not that function, due to it works when
> the kernel is not patched.
> But where should I search ?
>
> Can you give me some indications ?
Does applying this patch [1] happen to change the picture?
If not, please provide your .config.
Jan
[1] http://thread.gmane.org/gmane.linux.kernel.adeos.general/1570
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Adeos-main] [Vortx86DX] What's wrong with kernels upper than 2.6.30.10 ?
2010-04-15 22:18 ` Jan Kiszka
@ 2010-04-15 22:24 ` Jan Kiszka
0 siblings, 0 replies; 5+ messages in thread
From: Jan Kiszka @ 2010-04-15 22:24 UTC (permalink / raw)
To: Gilles DOFFE; +Cc: adeos-main
[-- Attachment #1: Type: text/plain, Size: 1748 bytes --]
Jan Kiszka wrote:
> Gilles DOFFE wrote:
>> Hello,
>>
>> I try to install a real-time Linux kernel on a Roboard based on a Vortex86DX
>> (a x486 with TSC).
>>
>> All works fine with :
>> Linux Kernel 2.6.30.10
>> Xenomai 2.5.1
>> Adeos patch adeos-ipipe-2.6.30.8-x86-2.4-09.patch
>>
>> But, for all kernels upper or equal to 2.6.31, I always get a double fault
>> when testing WP bit. I have this double fault just after that :
>>
>> *Checking if this processor honours the WP bit even in supervisor mode...*
>>
>> I traced with some simple printk that the problem occurs in this function,
>> at the end or after the call of fix_to_virt :
>>
>> *static noinline int do_test_wp_bit(void)
>> {
>> char tmp_reg;
>> int flag;
>>
>> __asm__ __volatile__(
>> " movb %0, %1 \n"
>> "1: movb %1, %0 \n"
>> " xorl %2, %2 \n"
>> "2: \n"
>> _ASM_EXTABLE(1b,2b)
>> :"=m" (*(char *)fix_to_virt(FIX_WP_TEST)),
>> "=q" (tmp_reg),
>> "=r" (flag)
>> :"2" (1)
>> :"memory");
>>
>> return flag;
>> }*
>>
>> I'm (quasi) sure that the problem is not that function, due to it works when
>> the kernel is not patched.
>> But where should I search ?
>>
>> Can you give me some indications ?
>
> Does applying this patch [1] happen to change the picture?
To answer myself: As the Vortex is 32-bit, this patch cannot make a
difference.
>
> If not, please provide your .config.
So this is now important. Probably reproducible in a VM, thus also
easily debuggable.
Jan
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 257 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Adeos-main] [Vortx86DX] What's wrong with kernels upper than 2.6.30.10 ?
2010-04-15 22:00 [Adeos-main] [Vortx86DX] What's wrong with kernels upper than 2.6.30.10 ? Gilles DOFFE
2010-04-15 22:18 ` Jan Kiszka
@ 2010-04-16 7:27 ` Philippe Gerum
2010-04-16 13:23 ` Gilles DOFFE
1 sibling, 1 reply; 5+ messages in thread
From: Philippe Gerum @ 2010-04-16 7:27 UTC (permalink / raw)
To: Gilles DOFFE; +Cc: adeos-main
On Fri, 2010-04-16 at 00:00 +0200, Gilles DOFFE wrote:
> Hello,
>
> I try to install a real-time Linux kernel on a Roboard based on a
> Vortex86DX (a x486 with TSC).
>
> All works fine with :
> Linux Kernel 2.6.30.10
> Xenomai 2.5.1
> Adeos patch adeos-ipipe-2.6.30.8-x86-2.4-09.patch
>
> But, for all kernels upper or equal to 2.6.31, I always get a double
> fault when testing WP bit. I have this double fault just after that :
>
> Checking if this processor honours the WP bit even in supervisor
> mode...
>
> I traced with some simple printk that the problem occurs in this
> function, at the end or after the call of fix_to_virt :
>
> static noinline int do_test_wp_bit(void)
> {
> char tmp_reg;
> int flag;
>
> __asm__ __volatile__(
> " movb %0, %1 \n"
> "1: movb %1, %0 \n"
> " xorl %2, %2 \n"
> "2: \n"
> _ASM_EXTABLE(1b,2b)
> :"=m" (*(char *)fix_to_virt(FIX_WP_TEST)),
> "=q" (tmp_reg),
> "=r" (flag)
> :"2" (1)
> :"memory");
>
> return flag;
> }
>
> I'm (quasi) sure that the problem is not that function, due to it
> works when the kernel is not patched.
> But where should I search ?
Try backporting these two 2.6.32 patches to your kernel; this should be
straightforward:
http://git.denx.de/?p=ipipe-2.6.git;a=commit;h=576f57f82dfd6c3ac285b0af76e5e0ce617679ba
http://git.denx.de/?p=ipipe-2.6.git;a=commit;h=a250e984a76fd327a0d8cfada5290b27e99f1e4d
>
> Can you give me some indications ?
>
> Thanks,
> Gilles
> _______________________________________________
> Adeos-main mailing list
> Adeos-main@domain.hid
> https://mail.gna.org/listinfo/adeos-main
--
Philippe.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Adeos-main] [Vortx86DX] What's wrong with kernels upper than 2.6.30.10 ?
2010-04-16 7:27 ` Philippe Gerum
@ 2010-04-16 13:23 ` Gilles DOFFE
0 siblings, 0 replies; 5+ messages in thread
From: Gilles DOFFE @ 2010-04-16 13:23 UTC (permalink / raw)
To: Philippe Gerum; +Cc: adeos-main
[-- Attachment #1: Type: text/plain, Size: 2152 bytes --]
Hello Jan and Philippe,
It works fine now with the patches you gave Philippe.
And all is clear with the commit explanations. :)
Thanks a lot,
Gilles
2010/4/16 Philippe Gerum <rpm@xenomai.org>
> On Fri, 2010-04-16 at 00:00 +0200, Gilles DOFFE wrote:
> > Hello,
> >
> > I try to install a real-time Linux kernel on a Roboard based on a
> > Vortex86DX (a x486 with TSC).
> >
> > All works fine with :
> > Linux Kernel 2.6.30.10
> > Xenomai 2.5.1
> > Adeos patch adeos-ipipe-2.6.30.8-x86-2.4-09.patch
> >
> > But, for all kernels upper or equal to 2.6.31, I always get a double
> > fault when testing WP bit. I have this double fault just after that :
> >
> > Checking if this processor honours the WP bit even in supervisor
> > mode...
> >
> > I traced with some simple printk that the problem occurs in this
> > function, at the end or after the call of fix_to_virt :
> >
> > static noinline int do_test_wp_bit(void)
> > {
> > char tmp_reg;
> > int flag;
> >
> > __asm__ __volatile__(
> > " movb %0, %1 \n"
> > "1: movb %1, %0 \n"
> > " xorl %2, %2 \n"
> > "2: \n"
> > _ASM_EXTABLE(1b,2b)
> > :"=m" (*(char *)fix_to_virt(FIX_WP_TEST)),
> > "=q" (tmp_reg),
> > "=r" (flag)
> > :"2" (1)
> > :"memory");
> >
> > return flag;
> > }
> >
> > I'm (quasi) sure that the problem is not that function, due to it
> > works when the kernel is not patched.
> > But where should I search ?
>
> Try backporting these two 2.6.32 patches to your kernel; this should be
> straightforward:
>
> http://git.denx.de/?p=ipipe-2.6.git;a=commit;h=576f57f82dfd6c3ac285b0af76e5e0ce617679ba
>
> http://git.denx.de/?p=ipipe-2.6.git;a=commit;h=a250e984a76fd327a0d8cfada5290b27e99f1e4d
>
>
> >
> > Can you give me some indications ?
> >
> > Thanks,
> > Gilles
> > _______________________________________________
> > Adeos-main mailing list
> > Adeos-main@domain.hid
> > https://mail.gna.org/listinfo/adeos-main
>
>
> --
> Philippe.
>
>
>
[-- Attachment #2: Type: text/html, Size: 3335 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-04-16 13:23 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-15 22:00 [Adeos-main] [Vortx86DX] What's wrong with kernels upper than 2.6.30.10 ? Gilles DOFFE
2010-04-15 22:18 ` Jan Kiszka
2010-04-15 22:24 ` Jan Kiszka
2010-04-16 7:27 ` Philippe Gerum
2010-04-16 13:23 ` Gilles DOFFE
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.