WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 07.03.2003, 15:42   #1
starcry
Newbie
 
Registriert seit: 22.04.2002
Alter: 54
Beiträge: 7


Frage Jobsize > 4GB? Kernel 2.4.20

Vielleicht kann mir hier jemand weiterhelfen, wir haben folgendes Problem:

2x Athlon MP 2600+ auf einem TYAN Board mit 4GB DDR, Linux Kernel 2.4.20, beim Kompilieren des Kernels sind folgende Switches gesetzt:
#
# Processor type and features
#

CONFIG_MK7=y

CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_HAS_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_USE_3DNOW=y
CONFIG_X86_PGE=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_F00F_WORKS_OK=y
CONFIG_X86_MCE=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
CONFIG_MICROCODE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
# CONFIG_NOHIGHMEM is not set
# CONFIG_HIGHMEM4G is not set
CONFIG_HIGHMEM64G=y
CONFIG_HIGHMEM=y
CONFIG_X86_PAE=y
CONFIG_HIGHIO=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_SMP=y
# CONFIG_MULTIQUAD is not set
# CONFIG_X86_TSC_DISABLE is not set
CONFIG_X86_TSC=y
CONFIG_HAVE_DEC_LOCK=y

Beim Abarbeiten unserer Jobs (Place&Route von ASICs) stirbt der Prozeß Astro sobald er 2,8 MB RAM allokiert mit:
ERROR: fail to allocate more memory, call callback
ERROR: fail in dbIncrease
caught signal 11 [segmentation violation].

DIE ANZEIGE VON TOP :

2:39pm up 35 min, 3 users, load average: 1.15, 1.06, 0.86
57 processes: 54 sleeping, 3 running, 0 zombie, 0 stopped
CPU states: 96.0% user, 3.9% system, 0.0% nice, 0.0% idle
Mem: 3875900K av, 3865496K used, 10404K free, 0K shrd, 1656K buff
Swap: 10241240K av, 9148K used, 10232092K free 1015188K cached

PID USER SIZE SWAP RSS STAT %CPU %MEM TIME COMMAND
1240 star 2732M 8016 2.7G R 96.5 71.9 24:36 Astro
1610 star 1164 0 1164 R 1.8 0.0 0:08 top
1532 hammerl 1144 0 1144 S 1.6 0.0 0:14 top
1 root 524 0 524 S 0.0 0.0 0:04 init

Der Absturz passiert, wenn Mem: xxxx av = xxxx used oder wird.
Hab ich noch irgendetwas vergessen, theoretisch sollte der Job mit diesen Einstellungen auch 64GB groß werden können?
Gibt es einen Kernel mit dem dieses Problem nicht auftaucht?
Ratlos????!?

Bin für jede Hilfe dankbar, die Zeit drängt.
Christian
starcry ist offline   Mit Zitat antworten
Alt 11.03.2003, 01:18   #2
Sloter
Inventar
 
Registriert seit: 05.01.2000
Beiträge: 3.812


Standard

Einen smp Kernel einsetzen, dann sollte es klappen.

Sloter
Sloter ist offline   Mit Zitat antworten
Alt 11.03.2003, 20:13   #3
starcry
Newbie
 
Registriert seit: 22.04.2002
Alter: 54
Beiträge: 7


Standard

Habe mittlerweile die Antwort selbst gefunden:

Unter Linux (32Bit) kann man maximal 3.5-3.7 GB pro Job allokieren.
Um dies zu realisieren müssen einige Modifikationen am Kernel vorgenommen werden, die ich hier kurz beschreiben möchte:
1. Download eines Kernels (Achtung funktioniert nicht mit allen!) 2.4.18
cd /usr/src; gzip -dc linux-2.4.18.tar.gz |tar -xvf -
2. Backup der Dateien
/usr/src/linux-2.4.18/include/asm-i386/page.h,
/usr/src/linux-2.4.18/include/asm-i386/processor.h, sowie
/usr/src/linux-2.4.18/include/arch/i386/vmlinux.lds
3. Editieren von page.h
Ändern der Zeile:
#define __PAGE_OFFSET (0xC0000000)
nach
#define __PAGE_OFFSET (0xE0000000)
4. Editieren von processor.h
Ändern der Zeile:
#define TASK_UNMAPPED_BASE (TASK_SIZE / 3)
nach:
#define TASK_UNMAPPED_BASE (TASK_SIZE / 16)
5. Editieren von vmlinux.lds
Ändern der Zeile:
. = 0xC0000000 + 0x100000
nach :
= 0xE0000000 + 0x100000
Steht gleich am Anfang der Datei!
6. Im Makefile noch eine eigene Kernelnote eintragen (das erleichtert das Arbeiten mit verschiedenen Versionen).
EXTRAVERSION = .HIGHMEM_PATCH-3.6GB
7.mit make xconfig das Setup überarbeiten, wobei unbedingt folgende Werte für den Abschnitt "Processor Type and Features" gesetzt sein müssen (im .conf nachschauen!)
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_HIGHMEM=y
CONFIG_X86_PAE=y
CONFIG_HIGHIO=y
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
CONFIG_SMP=y #<= nur bei Multiprozessor-Maschinen
8. den Kernel neu kompilieren und installieren!
make dep clean bzImage modules modules_install install
9. den neuen Kernel im lilo eintragen und lilo starten, fertig.

Danach kann ich mit meiner Applikation wenigstens über 3GB RAM ansprechen.
Es gibt auch noch vorkompilierte Kernel die diesen 0xe Patch draufhaben, die ich allerdings nicht getestet habe. Zu finden ist einer unter:
//http://www.magma-da.com/c/@OZjWUr9JTT8GQ/Pages/OSRequirements.html

Wenn jemand noch Erfahrungen mit großen Prozessen hat, so bin ich für jede Info dankbar.
lg
starcry
starcry ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:42 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag