ALT Linux kernel packages development
 help / color / mirror / Atom feed
* [d-kernel] rtlinux package
@ 2004-01-01  9:09 Evgeny Sinelnikov
  2004-01-01  9:49 ` Sergey Vlasov
  0 siblings, 1 reply; 5+ messages in thread
From: Evgeny Sinelnikov @ 2004-01-01  9:09 UTC (permalink / raw)
  To: Алексей
	Турбин
  Cc: Sergey Vlasov, devel-kernel

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Здравствуйте.
Есть готовое решение в плане реализации пакета RTLinux.
Задержка связана с крайней нестабильностью ядра rtlinux c определённым набором
патчей (тех, что изменяют содержимое include/asm-i386/), а также с некоторыми
"опциями" ядра (APM, ACPI, Kernel hacking features). Но даже это не было
главным препятствием. На текущий момент выяснилась причина, весьма странная,
многих нестабильностей на моей машине. Оказалось, что проблема была в выборе
процессора для при сборке ядра. i586 ядра на моём P4 (1.4GHz) падают при
загрузке модулей rtlinux (а именно, rtl.o), хотя ядра, с той же конфигурацией,
но для P4 идут:
- ------------------------------------------------------------------------
- ------------------------------------------------------------------------
Kernel BUG at page_alloc.c:95!
invalid operand: 0000
ksymoops 2.4.9 on i686 2.4.22-rts3-up-alt13.  Options used
     -v /usr/src/RPM/BUILD/kernel-image-rts3-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.22-rts3-up-alt13/ (default)
     -m /boot/System.map-2.4.22-rts3-up-alt13 (default)

Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
CPU:    0
EIP:    0010:[<c012df04>]    Not Tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010248
eax: 00000000   ebx: c1284ff0   ecx: c1284ff0   edx: 00000000
esi: 00000000   edi: 00021000   ebp: ceb755b4   esp: cd951ee4
ds: 0018   es: 0018   ss: 0018
Process insmod (pid: 1475, stackpage=cd951ee4)
Stack: c1284ff0 0d6ff067 00021000 ceb755b4 cd951efc d0d02b96 cd951efc c01088a7
       00032000 c1284ff0 0000d6ff 0d6ff067 00021000 c012e855 c012ec7b c1284ff0
       c01237a9 c1284ff0 00032000 c0123bc6 0d6ff067 cdd69ec0 cffeb8a0 4014c000
Call Trace:    [<d0d02b96>] [<c01088a7>] [<c012e855>] [<c012ec7b>] [<c01237a9>]
  [<c0123bc6>] [<c01261e5>] [<c011622e>] [<c011a355>] [<c011a52f>] [<c0108877>]
Code: 0f 0b 5f 00 35 5a 20 c0 89 d8 e8 f1 f1 ff ff 83 7b 28 00 74


>>EIP; c012df04 <__free_pages_ok+24/2fc>   <=====

>>ebx; c1284ff0 <_end+faf240/1093b2b0>
>>ecx; c1284ff0 <_end+faf240/1093b2b0>
>>ebp; ceb755b4 <_end+e89f804/1093b2b0>
>>esp; cd951ee4 <_end+d67c134/1093b2b0>

Trace; d0d02b96 <.data.end+2b63/????>
Trace; c01088a7 <restore_all+b/24>
Trace; c012e855 <__free_pages+1d/20>
Trace; c012ec7b <free_page_and_swap_cache+33/38>
Trace; c01237a9 <__free_pte+59/60>
Trace; c0123bc6 <zap_page_range+1b6/26c>
Trace; c01261e5 <exit_mmap+b5/118>
Trace; c011622e <mmput+4a/60>
Trace; c011a355 <do_exit+a1/254>
Trace; c011a52f <sys_exit+f/10>
Trace; c0108877 <system_call+47/50>

Code;  c012df04 <__free_pages_ok+24/2fc>
00000000 <_EIP>:
Code;  c012df04 <__free_pages_ok+24/2fc>   <=====
   0:   0f 0b                     ud2a      <=====
Code;  c012df06 <__free_pages_ok+26/2fc>
   2:   5f                        pop    %edi
Code;  c012df07 <__free_pages_ok+27/2fc>
   3:   00 35 5a 20 c0 89         add    %dh,0x89c0205a
Code;  c012df0d <__free_pages_ok+2d/2fc>
   9:   d8 e8                     fsubr  %st(0),%st
Code;  c012df0f <__free_pages_ok+2f/2fc>
   b:   f1                        icebp  
Code;  c012df10 <__free_pages_ok+30/2fc>
   c:   f1                        icebp  
Code;  c012df11 <__free_pages_ok+31/2fc>
   d:   ff                        (bad)  
Code;  c012df12 <__free_pages_ok+32/2fc>
   e:   ff 83 7b 28 00 74         incl   0x7400287b(%ebx)

 <0>Kernel panic: Aiee, killing interrupt handler!

1 warning issued.  Results may not be reliable.
- ------------------------------------------------------------------------
ksymoops 2.4.9 on i686 2.4.22-rts3-up-alt13.  Options used
     -v /usr/src/RPM/BUILD/kernel-image-rts3-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.22-rts3-up-alt13/ (default)
     -m /boot/System.map-2.4.22-rts3-up-alt13 (default)

Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
Oops: 0007
CPU:    0
EIP:    0023:[<08070b6e>]    Not Tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010246
eax: 00000d3d   ebx: 00000d57   ecx: 00000000   edx: 00000000
esi: bffff2a0   edi: 00000000   ebp: bffff3b8   esp: bffff290
ds: 002b   es: 002b   ss: 002b
Process regression.sh (pid: 3389, stackpage=c9813000)
 <0>Kernel panic: Aiee, killing interrupt handler!
Warning (Oops_read): Code line not seen, dumping what data is available

>>EIP; 08070b6e Before first symbol   <=====

2 warnings issued.  Results may not be reliable.
- ------------------------------------------------------------------------
- ------------------------------------------------------------------------
Меня интересует вопрос по поводу размещения модулей и библиотек
rtlinux (для каждого из ядер они свои).
Текущее разделение на пакеты следущее:
1) стандартное ядро с дополнительным патчем: kernel-feat-rtl-2003.10.28-alt1.src.rpm
2) модули kernel-rtlinux-2.4.22-rtl-up-3.2-alt1 (может быть стоит kernel-modules-rtlinux-2.4.22-rtl-up-3.2-alt1 ):
Name        : kernel-rtlinux-2.4.22-rtl-up  Relocations: (not relocateable)
Version     : 3.2                               Vendor: ALT Linux Team
Release     : alt1                          Build Date: Вск 14 Дек 2003 03:22:29
Install date: (not installed)               Build Host: localhost.localdomain
Group       : Система/Ядро и оборудование   Source RPM: kernel-rtlinux-2.4.22-rtl-up-3.2-alt1.src.rpm
Size        : 2310621                          License: GPL
Packager    : Evgeny Sinelnikov <sin@altlinux.ru>
URL         : http://www.rlinux-gpl.org/
Summary     : Modules for the RTLinux kernel
Description :
This package contains the RTLinux modules that is used to
extension your system with hard real time scheduler. Also it contains
few specific real time modules and libraries like rtl_fifo.
/lib/modules/2.4.22-rtl-up-alt12/misc 272 1071361292  040755 root root 0 0 0 X
/lib/modules/2.4.22-rtl-up-alt12/misc/mbuff.o 48 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/mbuff.o
/lib/modules/2.4.22-rtl-up-alt12/misc/psc.o 46 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/psc.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtl.o 46 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtl_fifo.o 51 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_fifo.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtl_posixio.o 54 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_posixio.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtl_sched.o 52 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_sched.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtl_time.o 51 1071361292  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_time.o
/lib/modules/2.4.22-rtl-up-alt12/misc/rtsock.o 49 1071361292  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtsock.o
/usr/rtlinux-2.4.22-rtl-up-alt12/bin 104 1071361324  040755 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/bin/rtl-config 6329 1071361324 bb47120e4b44f0a08f52f464aa85f3ea 0100755 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/bin/rtlinux 24 1071361324  0120777 root root 0 0 0 /etc/rc.d/init.d/rtlinux
/usr/rtlinux-2.4.22-rtl-up-alt12/modules 272 1071361292  040755 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/mbuff.o 275582 1071361291 2dd35d3a7d4aced05c2108390f2d0a48 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/psc.o 256796 1071361291 f5fb3bbf5d830069848912dabd939e87 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl.o 256338 1071361291 b0fbdbb35c47c6571beaef9ab737539a 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_fifo.o 252000 1071361291 1977e83a58716c1cf6c9365f490d08c0 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_posixio.o 244268 1071361291 15f84f66fbf75f136906520c3c605b03 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_sched.o 414841 1071361291 65acbd6bdd7f0e906a497fdd772a8993 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_time.o 240579 1071361291 a7617fa50e2a33f08e0ae3088fbfbeb0 0100644 root root 0 0 0 X
/usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtsock.o 363888 1071361292 53bc12c12ea03e435e9e4c5f74d6c7ca 0100644 root root 0 0 0 X

Здесь модули лежат /usr/rtlinux-2.4.22-rtl-up-alt12/modules/, как это сделано
в при стандартной установке. Кроме того этот пакет требует
kernel-rtlinux-common-3.2-alt1, который содержит общие файлы для данной версии
rtlinux,а также скрипты, поправляющие ссылку /usr/rtlinux для текущего ядра,
подобно kheaders-common.
3) kernel-rtlinux-regression-rtl-up-2.4.22-3.2-alt1
пакет минимального тестирования (лежит в /usr/rtlinux-2.4.22-rtl-up-alt12/regression)
4) kernel-rtlinux-devel-rtl-up-2.4.22-3.2-alt1
пакет для разработки (лежит в /usr/rtlinux-2.4.22-rtl-up-alt12/{include,lib})

Хотелось бы знать замечания тех, кто, может быть, ожидает этот пакет или
использует rtlinux.
Приму во внимание любые предложения.
- -- 
Sin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/8+PmHC/AO6kh2soRAnfeAJ0RskBHNavSDcjAeEprQw6T9ySEuQCgn+BK
YHwmAgWUyTHCeqWosh5au8A=
=lN9F
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [d-kernel] rtlinux package
  2004-01-01  9:09 [d-kernel] rtlinux package Evgeny Sinelnikov
@ 2004-01-01  9:49 ` Sergey Vlasov
  2004-01-01  9:56   ` Alexander Bokovoy
  0 siblings, 1 reply; 5+ messages in thread
From: Sergey Vlasov @ 2004-01-01  9:49 UTC (permalink / raw)
  To: devel-kernel

[-- Attachment #1: Type: text/plain, Size: 6413 bytes --]

On Thu, Jan 01, 2004 at 12:09:49PM +0300, Evgeny Sinelnikov wrote:
> Есть готовое решение в плане реализации пакета RTLinux.
> Задержка связана с крайней нестабильностью ядра rtlinux c определённым набором
> патчей (тех, что изменяют содержимое include/asm-i386/), а также с некоторыми
> "опциями" ядра (APM, ACPI, Kernel hacking features). Но даже это не было
> главным препятствием. На текущий момент выяснилась причина, весьма странная,
> многих нестабильностей на моей машине. Оказалось, что проблема была в выборе
> процессора для при сборке ядра. i586 ядра на моём P4 (1.4GHz) падают при
> загрузке модулей rtlinux (а именно, rtl.o), хотя ядра, с той же конфигурацией,
> но для P4 идут:
[ужасы skip]

Похоже, где-то что-то портится в памяти.  Возможно, причина в том, что
где-то происходит переполнение буфера, но при сборке для P4 из-за
большего значения CONFIG_X86_L1_CACHE_SHIFT (7, вместо 5 для 586) эти
данные попадают в неиспользуемые области для выравнивания, поэтому
ошибка остаётся незамеченной.

Можно попробовать собрать ядро с CONFIG_DEBUG_SLAB (Debug memory
allocations) и посмотреть, что будет - возможно, ошибка при этом будет
отловлена ближе к месту её возникновения.

> Меня интересует вопрос по поводу размещения модулей и библиотек
> rtlinux (для каждого из ядер они свои).
> Текущее разделение на пакеты следущее:
> 1) стандартное ядро с дополнительным патчем: kernel-feat-rtl-2003.10.28-alt1.src.rpm
> 2) модули kernel-rtlinux-2.4.22-rtl-up-3.2-alt1 (может быть стоит kernel-modules-rtlinux-2.4.22-rtl-up-3.2-alt1 ):

Вообще-то при нашей системе сборки это будет
kernel-modules-rtlinux-rtl-up-3.2-alt1.1 (это если собирать
автоматизированно из CVS - в release добавляется номер сборки ядра).
Версия ядра там не нужна - при смене ядра придётся увеличить первую
часть release.

> Name        : kernel-rtlinux-2.4.22-rtl-up  Relocations: (not relocateable)
> Version     : 3.2                               Vendor: ALT Linux Team
> Release     : alt1                          Build Date: Вск 14 Дек 2003 03:22:29
> Install date: (not installed)               Build Host: localhost.localdomain
> Group       : Система/Ядро и оборудование   Source RPM: kernel-rtlinux-2.4.22-rtl-up-3.2-alt1.src.rpm
> Size        : 2310621                          License: GPL
> Packager    : Evgeny Sinelnikov <sin@altlinux.ru>
> URL         : http://www.rlinux-gpl.org/
> Summary     : Modules for the RTLinux kernel
> Description :
> This package contains the RTLinux modules that is used to
> extension your system with hard real time scheduler. Also it contains
> few specific real time modules and libraries like rtl_fifo.
> /lib/modules/2.4.22-rtl-up-alt12/misc 272 1071361292  040755 root root 0 0 0 X
> /lib/modules/2.4.22-rtl-up-alt12/misc/mbuff.o 48 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/mbuff.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/psc.o 46 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/psc.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtl.o 46 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_fifo.o 51 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_fifo.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_posixio.o 54 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_posixio.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_sched.o 52 1071361291  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_sched.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtl_time.o 51 1071361292  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_time.o
> /lib/modules/2.4.22-rtl-up-alt12/misc/rtsock.o 49 1071361292  0120777 root root 0 0 0 /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtsock.o
> /usr/rtlinux-2.4.22-rtl-up-alt12/bin 104 1071361324  040755 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/bin/rtl-config 6329 1071361324 bb47120e4b44f0a08f52f464aa85f3ea 0100755 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/bin/rtlinux 24 1071361324  0120777 root root 0 0 0 /etc/rc.d/init.d/rtlinux
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules 272 1071361292  040755 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/mbuff.o 275582 1071361291 2dd35d3a7d4aced05c2108390f2d0a48 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/psc.o 256796 1071361291 f5fb3bbf5d830069848912dabd939e87 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl.o 256338 1071361291 b0fbdbb35c47c6571beaef9ab737539a 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_fifo.o 252000 1071361291 1977e83a58716c1cf6c9365f490d08c0 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_posixio.o 244268 1071361291 15f84f66fbf75f136906520c3c605b03 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_sched.o 414841 1071361291 65acbd6bdd7f0e906a497fdd772a8993 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtl_time.o 240579 1071361291 a7617fa50e2a33f08e0ae3088fbfbeb0 0100644 root root 0 0 0 X
> /usr/rtlinux-2.4.22-rtl-up-alt12/modules/rtsock.o 363888 1071361292 53bc12c12ea03e435e9e4c5f74d6c7ca 0100644 root root 0 0 0 X
> 
> Здесь модули лежат /usr/rtlinux-2.4.22-rtl-up-alt12/modules/, как это сделано
> в при стандартной установке. Кроме того этот пакет требует
> kernel-rtlinux-common-3.2-alt1, который содержит общие файлы для данной версии
> rtlinux,а также скрипты, поправляющие ссылку /usr/rtlinux для текущего ядра,
> подобно kheaders-common.

Опять это не лезет в FHS :(

И обязательно ли класть модули в /usr?  Если уж скрипты так хотят их
там видеть, почему бы не сделать наоборот - реальные файлы в
/lib/modules, а в /usr/... - ссылки на них?

> 3) kernel-rtlinux-regression-rtl-up-2.4.22-3.2-alt1
> пакет минимального тестирования (лежит в /usr/rtlinux-2.4.22-rtl-up-alt12/regression)
> 4) kernel-rtlinux-devel-rtl-up-2.4.22-3.2-alt1
> пакет для разработки (лежит в /usr/rtlinux-2.4.22-rtl-up-alt12/{include,lib})

Если эти файлы действительно привязаны к конкретной сборке ядра,
вероятно, пакет должен называться как-то вроде
kernel-headers-rtlinux-rtl-up (см. пример в kernel-modules-v4l-*,
kernel-headers-v4l-*).

> Хотелось бы знать замечания тех, кто, может быть, ожидает этот пакет или
> использует rtlinux.
> Приму во внимание любые предложения.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [d-kernel] rtlinux package
  2004-01-01  9:49 ` Sergey Vlasov
@ 2004-01-01  9:56   ` Alexander Bokovoy
  2004-01-02 19:26     ` Evgeny Sinelnikov
  0 siblings, 1 reply; 5+ messages in thread
From: Alexander Bokovoy @ 2004-01-01  9:56 UTC (permalink / raw)
  To: ALT Linux kernel packages development

On Thu, Jan 01, 2004 at 12:49:17PM +0300, Sergey Vlasov wrote:
> On Thu, Jan 01, 2004 at 12:09:49PM +0300, Evgeny Sinelnikov wrote:
> > Есть готовое решение в плане реализации пакета RTLinux.
> > Задержка связана с крайней нестабильностью ядра rtlinux c определённым набором
> > патчей (тех, что изменяют содержимое include/asm-i386/), а также с некоторыми
> > "опциями" ядра (APM, ACPI, Kernel hacking features). Но даже это не было
> > главным препятствием. На текущий момент выяснилась причина, весьма странная,
> > многих нестабильностей на моей машине. Оказалось, что проблема была в выборе
> > процессора для при сборке ядра. i586 ядра на моём P4 (1.4GHz) падают при
> > загрузке модулей rtlinux (а именно, rtl.o), хотя ядра, с той же конфигурацией,
> > но для P4 идут:
> [ужасы skip]
> 
> Похоже, где-то что-то портится в памяти.  Возможно, причина в том, что
> где-то происходит переполнение буфера, но при сборке для P4 из-за
> большего значения CONFIG_X86_L1_CACHE_SHIFT (7, вместо 5 для 586) эти
> данные попадают в неиспользуемые области для выравнивания, поэтому
> ошибка остаётся незамеченной.
Кстати, на схожую тему -- имеющаяся конфигурация для 2.6.0 в наших
предварительных сборках не работает на Pentium M, совсем не работает --
сразу после передачи управления загрузчиком ядру происходит перезагрузка
машины. 

Расследование показало, что по крайней мере виноваты
CONFIG_X86_L1_CACHE_SHIFT и CONFIG_X86_GENERIC. После этого, по крайней
мере, дело доходит до initscripts. Правда, далее кто-то поедает всю память
и система загрузиться до конца не может.

-- 
/ Alexander Bokovoy
Samba Team                      http://www.samba.org/
ALT Linux Team                  http://www.altlinux.org/
Midgard Project Ry              http://www.midgard-project.org/


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [d-kernel] rtlinux package
  2004-01-01  9:56   ` Alexander Bokovoy
@ 2004-01-02 19:26     ` Evgeny Sinelnikov
  2004-01-02 20:42       ` Sergey Vlasov
  0 siblings, 1 reply; 5+ messages in thread
From: Evgeny Sinelnikov @ 2004-01-02 19:26 UTC (permalink / raw)
  To: ALT Linux kernel packages development

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

> > Похоже, где-то что-то портится в памяти.  Возможно, причина в том, что
> > где-то происходит переполнение буфера, но при сборке для P4 из-за
> > большего значения CONFIG_X86_L1_CACHE_SHIFT (7, вместо 5 для 586) эти
> > данные попадают в неиспользуемые области для выравнивания, поэтому
> > ошибка остаётся незамеченной.
>
> Кстати, на схожую тему -- имеющаяся конфигурация для 2.6.0 в наших
> предварительных сборках не работает на Pentium M, совсем не работает --
> сразу после передачи управления загрузчиком ядру происходит перезагрузка
> машины.
>
> Расследование показало, что по крайней мере виноваты
> CONFIG_X86_L1_CACHE_SHIFT и CONFIG_X86_GENERIC. После этого, по крайней
> мере, дело доходит до initscripts. Правда, далее кто-то поедает всю память
> и система загрузиться до конца не может.

Тест памяти (memtest-3.0) ошибок не выявил. Хотя это и было на 192М вместо
256М (поражаюсь вашей прозорливостью - с утра машина не загрузилась в
положенные 256Мб указанные параметром ядра, BIOS, как и memtest, не
досчитались 64Мб; кстати это уже второй случай, до последнего времени я
грешил на перебои с питанием, теперь даже не знаю, что и думать, хотя
напряжение  в сети, в последние дни, тоже оставляло желать лучшего).
Попытка включить CONFIG_DEBUG_SLAB дала следующий результат:

- ----------------------------------------------------------------------------
ksymoops 2.4.9 on i686 2.4.22-rts4-up-alt13.  Options used
     -v /usr/src/RPM/BUILD/kernel-image-rts4-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.22-rts4-up-alt13/ (default)
     -m /boot/System.map-2.4.22-rts4-up-alt13 (default)

Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
CPU:    0
EIP:    0010:[<c01150b9>]    Not Tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010246
eax: 00000018   ebx: 00000000   ecx: c9ac2000   edx: cbfec764
esi: fffffe00   edi: c9ac2000   ebp: c9ac3f84   esp: c9ac3f60
ds: 0018   es: 0018   ss: 0018
Process regression.sh (pid: 1429, stackpage=c9ac3000)
Stack: c0204dde 00000000 fffffe00 c9ac2000 c011631d 00000200 00000000 c9ac2000
       00000200 c9ac3fbc c011ad6f c9ac2000 00000000 00000000 c9ac3fac 00000000
       c9ac2000 00000000 00000000 00000000 c9ac2000 c9ac20bc c9ac20bc bffff348
Call Trace:    [<c0111631d>] [<c01ad6f>] [<c0108ae7>]
Code: 0f 0b 34 02 d6 4d 20 c0 83 c4 04 8b 4d f4 c1 e1 05 81 c1 20


>>EIP; c01150b9 <schedule+4d/330>   <=====

>>ecx; c9ac2000 <_end+97ea230/c939290>
>>edx; cbfec764 <_end+bd14994/c939290>
>>edi; c9ac2000 <_end+97ea230/c939290>
>>ebp; c9ac3f84 <_end+97ec1b4/c939290>
>>esp; c9ac3f60 <_end+97ec190/c939290>

Trace; c0111631d <END_OF_CODE+b3441726a/????>
Trace; 0c01ad6f Before first symbol
Trace; c0108ae7 <system_call+47/50>

Code;  c01150b9 <schedule+4d/330>
00000000 <_EIP>:
Code;  c01150b9 <schedule+4d/330>   <=====
   0:   0f 0b                     ud2a      <=====
Code;  c01150bb <schedule+4f/330>
   2:   34 02                     xor    $0x2,%al
Code;  c01150bd <schedule+51/330>
   4:   d6                        (bad)  
Code;  c01150be <schedule+52/330>
   5:   4d                        dec    %ebp
Code;  c01150bf <schedule+53/330>
   6:   20 c0                     and    %al,%al
Code;  c01150c1 <schedule+55/330>
   8:   83 c4 04                  add    $0x4,%esp
Code;  c01150c4 <schedule+58/330>
   b:   8b 4d f4                  mov    0xfffffff4(%ebp),%ecx
Code;  c01150c7 <schedule+5b/330>
   e:   c1 e1 05                  shl    $0x5,%ecx
Code;  c01150ca <schedule+5e/330>
  11:   81 c1 20 00 00 00         add    $0x20,%ecx

 <0>Kernel panic: Aiee, killing interrupt handler!

1 warning issued.  Results may not be reliable.
- ----------------------------------------------------------------------------

Не знаю насколько это показательно, потому что самая частая
ошибка выглядит так (предыдущая была первой, но появилась
всего лишь однажды):

- ----------------------------------------------------------------------------
ksymoops 2.4.9 on i686 2.4.22-rts4-up-alt13.  Options used
     -v /usr/src/RPM/BUILD/kernel-image-rts4-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.22-rts4-up-alt13/ (default)
     -m /boot/System.map-2.4.22-rts4-up-alt13 (default)

Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
Oops: 0007
CPU:    0
EIP:    0023:[<08072650>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010246
eax: 00000000   ebx: 080cfd88   ecx: 080cb008   edx: 00000000
esi: 00000000   edi: 080caa08   ebp: bffff1f8   esp: bffff1d0
ds: 002b   es: 002b   ss: 002b
Process regression.sh (pid: 1958, stackpage=c5b17000)
 <0>Kernel panic: Aiee, killing interrupt handler!
Warning (Oops_read): Code line not seen, dumping what data is available


>>EIP; 08072650 Before first symbol   <=====


2 warnings issued.  Results may not be reliable.

PS: Какой смысл имеет значение CONFIG_X86_L1_CACHE_SHIFT? Для чего оно
используется? Если я правильно понял, в данном случае, оно определяет
выравнивание на 16 и 64 байта. Это верно? Где это может быть критично?

- -- 
Sin
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/9cYMHC/AO6kh2soRAjnEAJwKZspBBiFy0VpaaEuUJBea7l59JQCg2H4F
muGlAfONAzPXblcruNERIGM=
=o2fF
-----END PGP SIGNATURE-----

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [d-kernel] rtlinux package
  2004-01-02 19:26     ` Evgeny Sinelnikov
@ 2004-01-02 20:42       ` Sergey Vlasov
  0 siblings, 0 replies; 5+ messages in thread
From: Sergey Vlasov @ 2004-01-02 20:42 UTC (permalink / raw)
  To: ALT Linux kernel packages development

[-- Attachment #1: Type: text/plain, Size: 5896 bytes --]

On Fri, Jan 02, 2004 at 10:26:57PM +0300, Evgeny Sinelnikov wrote:
> Тест памяти (memtest-3.0) ошибок не выявил. Хотя это и было на 192М вместо
> 256М (поражаюсь вашей прозорливостью - с утра машина не загрузилась в
> положенные 256Мб указанные параметром ядра, BIOS, как и memtest, не
> досчитались 64Мб; кстати это уже второй случай, до последнего времени я
> грешил на перебои с питанием, теперь даже не знаю, что и думать, хотя
> напряжение  в сети, в последние дни, тоже оставляло желать лучшего).

А по какой причине был добавлен параметр mem=...?  Ситуации, когда
автоматическое определение объёма памяти не работает, сейчас
встречаются крайне редко.

Вообще симптомы весьма нехорошие...

> Попытка включить CONFIG_DEBUG_SLAB дала следующий результат:
> 
> - ----------------------------------------------------------------------------
> ksymoops 2.4.9 on i686 2.4.22-rts4-up-alt13.  Options used
>      -v /usr/src/RPM/BUILD/kernel-image-rts4-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
>      -k /proc/ksyms (default)
>      -l /proc/modules (default)
>      -o /lib/modules/2.4.22-rts4-up-alt13/ (default)
>      -m /boot/System.map-2.4.22-rts4-up-alt13 (default)
> 
> Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
> CPU:    0
> EIP:    0010:[<c01150b9>]    Not Tainted
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00010246
> eax: 00000018   ebx: 00000000   ecx: c9ac2000   edx: cbfec764
> esi: fffffe00   edi: c9ac2000   ebp: c9ac3f84   esp: c9ac3f60
> ds: 0018   es: 0018   ss: 0018
> Process regression.sh (pid: 1429, stackpage=c9ac3000)
> Stack: c0204dde 00000000 fffffe00 c9ac2000 c011631d 00000200 00000000 c9ac2000
>        00000200 c9ac3fbc c011ad6f c9ac2000 00000000 00000000 c9ac3fac 00000000
>        c9ac2000 00000000 00000000 00000000 c9ac2000 c9ac20bc c9ac20bc bffff348
> Call Trace:    [<c0111631d>] [<c01ad6f>] [<c0108ae7>]
> Code: 0f 0b 34 02 d6 4d 20 c0 83 c4 04 8b 4d f4 c1 e1 05 81 c1 20
> 
> 
> >>EIP; c01150b9 <schedule+4d/330>   <=====
> 
> >>ecx; c9ac2000 <_end+97ea230/c939290>
> >>edx; cbfec764 <_end+bd14994/c939290>
> >>edi; c9ac2000 <_end+97ea230/c939290>
> >>ebp; c9ac3f84 <_end+97ec1b4/c939290>
> >>esp; c9ac3f60 <_end+97ec190/c939290>
> 
> Trace; c0111631d <END_OF_CODE+b3441726a/????>
> Trace; 0c01ad6f Before first symbol
> Trace; c0108ae7 <system_call+47/50>
> 
> Code;  c01150b9 <schedule+4d/330>
> 00000000 <_EIP>:
> Code;  c01150b9 <schedule+4d/330>   <=====
>    0:   0f 0b                     ud2a      <=====

Ну это опять таки явный вызов BUG()...

> Code;  c01150bb <schedule+4f/330>
>    2:   34 02                     xor    $0x2,%al

...причём, если kernel/sched.c не патчился, и строка 564 осталась на
месте, это Scheduling in interrupt (что вполне согласуется с
появившимся потом killing interrupt handler).

> Code;  c01150bd <schedule+51/330>
>    4:   d6                        (bad)  
> Code;  c01150be <schedule+52/330>
>    5:   4d                        dec    %ebp
> Code;  c01150bf <schedule+53/330>
>    6:   20 c0                     and    %al,%al
> Code;  c01150c1 <schedule+55/330>
>    8:   83 c4 04                  add    $0x4,%esp
> Code;  c01150c4 <schedule+58/330>
>    b:   8b 4d f4                  mov    0xfffffff4(%ebp),%ecx
> Code;  c01150c7 <schedule+5b/330>
>    e:   c1 e1 05                  shl    $0x5,%ecx
> Code;  c01150ca <schedule+5e/330>
>   11:   81 c1 20 00 00 00         add    $0x20,%ecx
> 
>  <0>Kernel panic: Aiee, killing interrupt handler!
> 
> 1 warning issued.  Results may not be reliable.
> - ----------------------------------------------------------------------------
> 
> Не знаю насколько это показательно, потому что самая частая
> ошибка выглядит так (предыдущая была первой, но появилась
> всего лишь однажды):
> 
> - ----------------------------------------------------------------------------
> ksymoops 2.4.9 on i686 2.4.22-rts4-up-alt13.  Options used
>      -v /usr/src/RPM/BUILD/kernel-image-rts4-up-2.4.22-alt13/kernel-source-2.4.22/vmlinux (specified)
>      -k /proc/ksyms (default)
>      -l /proc/modules (default)
>      -o /lib/modules/2.4.22-rts4-up-alt13/ (default)
>      -m /boot/System.map-2.4.22-rts4-up-alt13 (default)
> 
> Warning (compare_ksyms_lsmod): module reiserfs is in lsmod but not in ksyms, probably no symbols exported
> Oops: 0007
> CPU:    0
> EIP:    0023:[<08072650>]    Not tainted
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00010246
> eax: 00000000   ebx: 080cfd88   ecx: 080cb008   edx: 00000000
> esi: 00000000   edi: 080caa08   ebp: bffff1f8   esp: bffff1d0
> ds: 002b   es: 002b   ss: 002b
> Process regression.sh (pid: 1958, stackpage=c5b17000)
>  <0>Kernel panic: Aiee, killing interrupt handler!
> Warning (Oops_read): Code line not seen, dumping what data is available
> 
> 
> >>EIP; 08072650 Before first symbol   <=====

Адрес явно из userspace, да и код 0007 - (user-mode, write, protection
fault).  А вот почему он превратился в Oops, а не в SIGSEGV...
получается, что userspace-код был вызван в процессе обработки
прерывания.  Т.е. тут что-то не в порядке с обработкой прерываний
(насколько я помню, там rtlinux такое выделывает...).

> PS: Какой смысл имеет значение CONFIG_X86_L1_CACHE_SHIFT? Для чего оно
> используется? Если я правильно понял, в данном случае, оно определяет
> выравнивание на 16 и 64 байта. Это верно? Где это может быть критично?

По всему ядру достаточно переменных, помеченных __cacheline_aligned,
да и в функциях распределения памяти используется SLAB_HWCACHE_ALIGN
(в частности, для struct request, struct dentry, struct buffer_head,
struct file, struct dquot, struct kiobuf, struct inode... дальше
искать надоело).  Т.е. распределение памяти при изменении
CONFIG_X86_L1_CACHE_SHIFT может существенно отличаться, из-за чего
некоторые ошибки могут проявляться только при определённых значениях.

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-01-02 20:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-01  9:09 [d-kernel] rtlinux package Evgeny Sinelnikov
2004-01-01  9:49 ` Sergey Vlasov
2004-01-01  9:56   ` Alexander Bokovoy
2004-01-02 19:26     ` Evgeny Sinelnikov
2004-01-02 20:42       ` Sergey Vlasov

ALT Linux kernel packages development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-kernel/0 devel-kernel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-kernel devel-kernel/ http://lore.altlinux.org/devel-kernel \
		devel-kernel@altlinux.org devel-kernel@altlinux.ru devel-kernel@altlinux.com
	public-inbox-index devel-kernel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git