עושים זריז (סוף)

| | |
אז הגיע הרגע להסיר את מעבד ההיכרות (Opteron 246) ולהרכיב את המעבדים המתקדמים (Opteron 280)...

זה הרגע המלחיץ ביותר בכל הפרשה. כדי למתוח את הקפיץ המהדק את גוף-הקירור (זלמן הזכור לטוב) למעבד יש להפעיל כוח רב ואתה בחשש מתמיד פן תשבור את לוח האם. יש המשתמשים לשם כך במברג כמנוף. אבל אם הוא מחליק מידך בשעת מעשה – הוא יכול לפגוע בלוח ולגרום לו נזק רב. ספק הכח "חי" ושומר מתח על מוליכי המעגל המודפס גם כשהמחשב אינו פועל. מברג שהחליק או בורג שנפל יכול אם כן לקצר מוליכים אלה ולחסל בכך את הלוח וחלק ממה שמחובר אליו. אי לכך אני עושה פעולות אלה כשהמחשב מנותק מהחשמל, ובאצבעות בלבד.
הרכבת מעבד מס'1 עברה בשלום, ואני חיכיתי במתח לראות אם הביוס יזהה אותו. גרסאות מוקדמות של הביוס לא זיהו מעבדים מסוג זה, ובעידכון ביוס ממש לא רציתי להסתכן...

לשמחתי, הכל זוהה. גרסת הביוס היא 3.07 והיא תומכת ב-280. בדיקה שטחית הראתה שפור בביצועים, לעיתים זניח ולעיתים משמעותי, בכל הפרמטרים שבדקתי. לא התמהמהתי והוספתי גם את המעבד השני. הנה תוצאות אחדות:

dbench:
Throughput 513.143 MB/sec 50 procs
Throughput 218.218 MB/sec 500 procs


המהוות שפור של למעלה מ 100%לעומת מעבד 246 יחיד.
עיון ב dmesg העלה את השורות הבאות:

CPU 0: aperture @ 18fc000000 size 32 MB
Aperture too small (32 MB)
Your BIOS doesn't leave a aperture memory hole
Please enable the IOMMU option in the BIOS setup
This costs you 256 MB of RAM


חיפוש בגוגל העלה המלצה לנהוג כדבריהם, אם כי הודגש שזה לא יגרום להבדל ממשי בהתנהגות. נכנסתי לביוס והפעלתי את IOMMU (בהערה בחלון הביוס נאמר כי זה נחוץ למערכות לינוקס 64 ביט). כשבחרתי בערך 64 MB נעלמה ההודעה הזו מ dmesg, ובמקומה הופיע:

 Checking aperture...
CPU 0: aperture @ e0000000 size 64 MB
CPU 1: aperture @ e0000000 size 64 MB


באותה הזדמנות הפעלתי את powernow – גם הוא בביוס. KPowerSave הגיב מיד ומאפשר שליטה מהפנל במהירות המעבדים, בהרדמת המערכת אחרי השהיה ניתנת לבחירה וכיו"ב תכונות המוכרות לנו מחלונות.

עיון נוסף בביוס הראה כי מהירות הסבוב של מאווררי המעבדים לא מחווה. מסתבר כי שקעי המאווררים הם בני ארבעה מוליכים בעוד שתקעי מאווררי זלמן הם בני שלושה מוליכים בלבד. חיפוש מיגע באינטרנט אישר לבסוף כי ניתן לחבר אותם בכל זאת זה לזה. עשיתי כך ובאותה הזדמנות הוספתי לזלמנים את ווסתי המהירות שלהם. עכשיו המהירות מחווה וההגנה המופעלת עם אבדן מאוורר מופעלת גם היא. ב 1600 סל"ד ועומס מלא לא עולה טמפרטורת המעבד החם ביותר מבין הארבעה על 45 מעלות צלזיוס. הזריז הזה באמת חרישי.

עם חיבור צמד מעבדי 280 Opteron חלו שינויים אחדים בביוס, וחלקים שהיו מואפרים לפני כן (בלתי זמינים) “נצבעו" ואיפשרו קינפוג. שינוי אחר שהתחולל – להפתעתי – הוא זיהוי הזכרון על ידי מערכת ההפעלה. אם בהתחלה (ראו חלק א') זוהה מלוא הזכרון בסך כ 4.12 ג'יגה, הרי עתה זיהתה מערכת ההפעלה רק 3.6 ג'יגה.

zariz:~ # free
             total       used       free     shared    buffers     cached
Mem:       3614232     457648    3156584          0      12664     257720
-/+ buffers/cache:     187264    3426968
Swap:      2096472          0    2096472


זו תופעה ידועה והיא נקראת memory hole (מה שאיני מבין הוא מדוע לא התרחשה מיד עם חיבור מקלון הזכרון השני). היא מתרחשת כי מערכות ההפעלה מקצות את כתובות הזכרון מ 3.5 ג'יגה ועד 4.0 ג'יגה לכרטיסים ושאר ציוד נלווה ומתעלמות לכן מזכרון פיזי הקיים בכתובות אלה. כדי שזכרון זה יהיה זמין בכל זאת, צריך למפות אותו לכתובות גבוהות מ 4 ג'יגה.

גם כאן נזקקתי לחיפוש מיגע באינטרנט כדי למצוא איך בדיוק עושים זאת (בפרט אחרי שהוזהרתי פעם על ידי מנחה אגרסיבי באחד הפורומים כי "טיאנים נושכים"). מסתבר שאינפורמציה מועילה על הנושא נמצאת כאן, וליתר דיוק בתאריכים 19 לספטמבר 2006 ו 26 לאוקטובר 2007.

והרי ההוראות שעשו את הקסם:

SW memory hole: disable
HW memory hole: enable
MTRR: Discrete


לחש-בחש זה הצליח ועכשיו מזהה מערכת ההפעלה את הזכרון במלואו:

luliz@zariz:~> free
             total       used       free     shared    buffers     cached
Mem:       4124168    3044784    1079384          0      67372    2526024
-/+ buffers/cache:     451388    3672780
Swap:      2096472          0    2096472


לסיום הוספתי למכונה כרטיס המאפשר חיבור דיסק חיצוני על ידי חיבור eSATA, כמתואר כאן. הכרטיס הוא מסוג SIIG SC-SA2012-S1 PCI SATA Controller Card.

SIIG SC-SA2012-S1 PCI SATA Controller Card

פרטים נוספים עליו ניתן לראות כאן. רק אחרי רכישתו התברר לי כי הוא מסוג pci2.3 שאינו נתמך באף אחד מלוחות האם הנמצאים אצלי בשמוש (בעלי חריצי pci2.2 ומטה). לא רק שאינו נתמך – הוא מונע בהם את עליית מערכת ההפעלה. אבל כרטיס זה "נתמך לאחור" בלוחות אם המצויידים בחריצי pci-X – וכאלה יש ארבעה ב"זריז"!

ואמנם, הוא זוהה והמערכת עולה בששון.

מתוך lspci:

02:03.0 SATA controller: Initio Corporation INI-1623 PCI SATA-II Controller (rev 02)

זהו. המחשב החדש מוכן לשימוש. מכיוון שהוא שקט כל כך הוא יעבור לחדר העבודה במקומו של "מהיר”.

אני אמשיך לבדוק עליו מערכות הפעלה שונות ומשונות – אך כולן על מכונות וירטואליות שאתקין עליו. התקנה על מערכת וירטואלית אמנם לא פורשת את כל התמונה של התנהגות מערכת הפעלה על חומרה ממשית – אבל התקנתה, עידכונה ובדיקתה לא שוללת את המשך התפקוד היום-יומי של המחשב – וזה יתרון כל-כך גדול, שהוא מאפיל על כל החסרונות גם יחד. יתר על כן – כל המסמכים שייוצרו במערכות הוירטואליות ישמרו בתיקיות הרגילות שלי בספריית הבית האחת והיחידה – והקץ לבלגן.
"מהיר" מצידו יורד למרתף שם אנסה להרכיב לו קירור מים. ואם זה יצליח – אולי גם הוא יחזור, שקט מאי פעם, לחדר העבודה?