Opened 19 years ago

Closed 18 years ago

#553 closed bug (fixed)

add-ons: kernel/cpu/generic_x86 -> KDL on pentium 233mmx

Reported by: kaoutsis@… Owned by: axeld
Priority: normal Milestone: R1
Component: Add-Ons Version: R1/pre-alpha1
Keywords: Cc: diver, umccullough@…, j_freeman@…
Blocked By: Blocking:
Platform: x86

Description

2 lines from KDL: generic_86: intel_initFv + 0x0056 generic_86: intel_stdopsFle + 0x0027 I guess the problem is that there is no mtrr register on a pentium mmx and bellow. (just checking the file /be-src/develop/HaikuTree/trunk/src/add-ons/kernel/cpu/x86/intel.cpp) Anyway renaming this module haiku does not KDL and reaches happylly the desktop!!

Attachments (7)

Intel P200MMX rev17582 - KDL.txt (1.5 KB ) - added by initial22b@… 18 years ago.
KDL stack trace on P200MMX
with_generic_x86.txt (1.4 KB ) - added by kaoutsis@… 18 years ago.
KDL stack trace with hrev17590 on P233MMX
sysinfo.txt (647 bytes ) - added by kaoutsis@… 18 years ago.
sysinfo with hrev17590 on P233MMX without the module generic_x86
TheNewStackTraceP233mmx-r19851.txt (1.4 KB ) - added by kaoutsis 18 years ago.
arch_cpu.h.diff (405 bytes ) - added by kaoutsis 18 years ago.
generic_x86.cpp.diff (1.1 KB ) - added by kaoutsis 18 years ago.
shortInfo.txt (6.3 KB ) - added by kaoutsis 18 years ago.
Added a short info regarding the possible fix

Download all attachments as: .zip

Change History (24)

comment:1 by umccullough@…, 19 years ago

Cc: umccullough@… added

comment:2 by diver, 19 years ago

Cc: diver added

comment:3 by j_freeman@…, 19 years ago

Cc: j_freeman@… added

comment:4 by axeld, 18 years ago

This could have been fixed with hrev17574. Can you recheck? And if it doesn't work

  • can you provide more info?

If it still doesn't work, I could make use of the output of the "sysinfo" command, as well as the full KDL message including back trace.

comment:5 by kaoutsis@…, 18 years ago

with hrev17574 still no luck! I will test it again with hrev17581 (the fixing of /haiku/trunk/src/system/kernel/arch/x86/arch_cpu.c that caused Haiku to crash when there was no CPU module and may be loading ok the generic_x86 ). If still no luck, the full KDL message including back trace will be next to come.:)

by initial22b@…, 18 years ago

KDL stack trace on P200MMX

by kaoutsis@…, 18 years ago

Attachment: with_generic_x86.txt added

KDL stack trace with hrev17590 on P233MMX

by kaoutsis@…, 18 years ago

Attachment: sysinfo.txt added

sysinfo with hrev17590 on P233MMX without the module generic_x86

comment:6 by korli, 18 years ago

Platform: All

Hello Kaoutsis, could you dump a new stacktrace again ? The one you attached isn't current with the code. Thanks.

by kaoutsis, 18 years ago

in reply to:  6 ; comment:7 by kaoutsis, 18 years ago

Replying to korli: added the new stack trace

in reply to:  7 ; comment:8 by korli, 18 years ago

Replying to kaoutsis:

Replying to korli: added the new stack trace

Thanks for the stack trace. I'm still a bit surprised because it doesn't match the current code (see in src/add-ons/kernel/cpu/x86/intel.cpp). Could you make sure your build is OK ?

in reply to:  8 ; comment:9 by kaoutsis, 18 years ago

Summary: /boot/beos/system/add-ons/kernel/cpu/generic_x86 makes Haiku goes KDL in a pentium 233 mmx/boot/beos/system/add-ons/kernel/cpu/generic_x86 makes Haiku goes -ons/kernel/cpu/generic_x86 makes Haiku goeKDL in a pentium 233 mmx

Replying to korli:

Replying to kaoutsis:

Replying to korli: added the new stack trace

Thanks for the stack trace. I'm still a bit surprised because it doesn't match the current code (see in src/add-ons/kernel/cpu/x86/intel.cpp). Could you make sure your build is OK ?

Hi Jérôme, Some informations i gather: $ jam -v Jam 2.5-haiku-20060813. OS=BEOS. Copyright 1993-2002 Christopher Seiwald. $ gcc -v using priority 5 Reading specs from /boot/develop/tools/gnupro/lib/gcc-lib/i586-pc-beos/2.95.3-beos-060710/specs gcc version 2.95.3-beos-060710 $

$ svn -v status ? intel.cpp.modified

19851 18879 korli . 19851 15567 axeld via.cpp 19851 15522 axeld intel.h 19851 17572 axeld amd.cpp 19851 17574 axeld generic_x86.cpp 19851 15522 axeld via.h 19851 18879 korli Jamfile 19851 15522 axeld amd.h 19851 15567 axeld generic_x86.h 19851 15567 axeld intel.cpp

$ cd /be-src/develop/HaikuTree/trunk/generated/objects/haiku/x86/release/add-ons/kernel/cpu/x86/ $ ls -lh total 19k -rw-r--r-- 1 baron users 1.5k Jan 13 10:49 amd.o -rwx--x--x 1 baron users 11k Jan 18 01:39 generic_x86 -rw-r--r-- 1 baron users 2.4k Jan 13 10:49 generic_x86.o -rw-r--r-- 1 baron users 1.5k Jan 13 10:49 intel.o -rw-r--r-- 1 baron users 1.6k Jan 13 10:50 via.o

For the time i can not think anything else. Bye,

Vasilis

in reply to:  9 ; comment:10 by korli, 18 years ago

Replying to kaoutsis:

$ ls -lh total 19k -rw-r--r-- 1 baron users 1.5k Jan 13 10:49 amd.o -rwx--x--x 1 baron users 11k Jan 18 01:39 generic_x86 -rw-r--r-- 1 baron users 2.4k Jan 13 10:49 generic_x86.o -rw-r--r-- 1 baron users 1.5k Jan 13 10:49 intel.o -rw-r--r-- 1 baron users 1.6k Jan 13 10:50 via.o

For the time i can not think anything else.

Maybe try this : strings generic_x86 | grep intel_count_mtrrs

With a current build it shouldn't return a match (the function doesn't exist anymore)

in reply to:  10 comment:11 by kaoutsis, 18 years ago

Jérôme wrote:

Maybe try this : strings generic_x86 | grep intel_count_mtrrs

With a current build it shouldn't return a match (the function doesn't exist anymore)

It doesn't return a match: $ strings generic_x86 | grep intel_count_mtrrs $ strings generic_x86 | grep intel_count_mtrrs $ strings generic_x86 | grep intel_count_mtrrs $ strings generic_x86 | grep intel_count_mtrrs $ strings generic_x86 _DYNAMIC _GLOBAL_OFFSET_TABLE_ deregister_frame_info register_frame_info gPhysicalMask generic_count_mtrrs get_current_cpuid x86_read_msr generic_init_mtrrs x86_write_msr generic_set_mtrr generic_get_mtrr generic_mtrr_compute_physical_mask get_cpuid generic_dump_mtrrs modules gIntelModule gAMDModule gVIAModule _get_system_info generated/objects/haiku/x86/release/system/kernel/kernel.so _edata bss_start generic_x86 cpu/generic_x86/amd/v1 cpu/generic_x86/intel/v1 cpu/generic_x86/via/v1 GCC: (GNU) 2.95.3-beos-060710 GCC: (GNU) 2.95.3-beos-060710 GCC: (GNU) 2.95.3-beos-060710 GCC: (GNU) 2.95.3-beos-060710 GCC: (GNU) 2.95.3-beos-060710 GCC: (GNU) 2.95.3-beos-060710 .symtab .strtab .shstrtab .hash .dynsym .dynstr .rel.dyn .rel.plt .init .text .fini .rodata .data .eh_frame .dynamic .ctors .dtors .comment generic_x86.cpp amd.cpp amd_init_mtrrsFv amd_initFv amd_stdopsFle intel.cpp intel_init_mtrrsFv intel_initFv intel_stdopsFle via.cpp via_count_mtrrsFv via_init_mtrrsFv via_initFv via_stdopsFle generic_init_mtrrs _DYNAMIC gAMDModule get_cpuid get_current_cpuid generic_mtrr_compute_physical_mask gIntelModule modules gVIAModule deregister_frame_info gPhysicalMask generic_get_mtrr bss_start _get_system_info x86_write_msr _edata _GLOBAL_OFFSET_TABLE_ generic_count_mtrrs generic_set_mtrr generic_dump_mtrrs x86_read_msr register_frame_info Developer Build BEOS:APP_VERSION $

comment:12 by kaoutsis, 18 years ago

Summary: /boot/beos/system/add-ons/kernel/cpu/generic_x86 makes Haiku goes -ons/kernel/cpu/generic_x86 makes Haiku goeKDL in a pentium 233 mmxadd-ons: kernel/cpu/generic_x86 -> KDL on pentium 233mmx

comment:13 by kaoutsis, 18 years ago

Component: ApplicationsAdd-Ons
Platform: Allx86
Version: R1 development

comment:14 by korli, 18 years ago

Ok, maybe GCC optimizes the code and inline some functions into intel_init().

Have you a serial output on this machine ? If yes, could you enable the TRACE macro in generic_x86.cpp (you also need to enable the serial output in kernel settings) ?

in reply to:  14 comment:15 by kaoutsis, 18 years ago

Replying to korli:

Have you a serial output on this machine ?

Unfortunately, i have not.

by kaoutsis, 18 years ago

Attachment: arch_cpu.h.diff added

by kaoutsis, 18 years ago

Attachment: generic_x86.cpp.diff added

comment:16 by kaoutsis, 18 years ago

Possible fix: With Jérôme support, we have a possible fix. I tested only in my machine, since i don't have a way to try it with modern hardware. Attached: a) arch_cpu.h.diff for haiku/trunk/headers/private/kernel/arch/x86/ arch_cpu.h b) generic_x86.cpp.diff for haiku/trunk/src/add-ons/kernel/cpu/x86/ generic_x86.cpp

by kaoutsis, 18 years ago

Attachment: shortInfo.txt added

Added a short info regarding the possible fix

comment:17 by axeld, 18 years ago

Resolution: fixed
Status: newclosed

Thanks! I've applied the patch now in hrev19899, and I'll close this bug :-)

Note: See TracTickets for help on using tickets.