![]() |
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 :confused: |
Einen smp Kernel einsetzen, dann sollte es klappen.
Sloter |
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:cool: |
| Alle Zeitangaben in WEZ +2. Es ist jetzt 11:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag