ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin

quick_linkקרנל 2.6 ושליטה בתדר המעבד

published at 05/08/2003 - 10:00 · ‏פורסם mksoft · ‏tags לינוקס · שלח לחברידידותי למדפסת
לינוקס

לאחרונה רכשתי מחשב נייד חדש. כדי לנצל את התמיכה האחרונה בחומרה ועדכונים האחרונים ב-ACPI החלטתי לנסות את גרסת הפתוח של הקרנל. התקנתי את קרנל 2.6.0-test1 )מאז יצא עדכון, כרגע רץ על המחשב 2.6.0-test2(. התרשמות היא שהקרנל די יציב לשימוש יומיומי בתחנות עבודה (המחשב משמש אותי באופן שוטף). לא מומלץ להשתמש בו לשרתי Production, אך לתחנות העבודה הוא די יציב.

אחת התכונות החדשות בקרנל 2.6 היא אפשרות שליטה בתדר במעבדים שתומכים בכך. נשאלת השאלה מדוע שנרצה להאט את המעבד שלנו ? אפשר לחשוב על מספר תשובות אפשריות:

  • תכונה זו חשובה עבור ניהול הספק במחשבים ניידים (או לשמירת אנרגיה בכלל, גם במחשבים שולחניים). בעבודה שולחנית שוטפת, לדוגמא בעת עריכת מסמך במעבד תמלילים, המעבד נמצא רוב הזמן ב-idle, ממתין לקלט מהמשתמש. במצב כזה אין צורך במהירות מלאה של המעבד, אפשר להאיט אותו ולחסוך בהספק הנצרך (ובמחשבים ניידים, כתוצאה מכך הארכת חיי הסוללה).
  • אפשרויות להדמיה של מחשבים איטיים יותר, לדוגמא: כיצד מתנהג יישום מסויים שכתבת על מחשב איטי יותר.
  • כי אנחנו יכולים ;-)
מאחר ולא מצאתי חומר בנושא, נכתב מאמר זה, שאמור להוות גם מבוא לקרנל 2.6. השאיפה היא לכתוב סדרה של מאמרים מקוריים נוספים ב-Whatsup בעתיד, אם ימצא הזמן לכך.



במאמר זה: <ol id="mozToc"> <!--mozToc h1 1 h2 2 h3 3 h4 4 h5 5 h6 6-->

  • אודות המעבר מקרנל 2.4 ל- 2.6
  • הגדרת הקרנל לתמיכה ב-CPU Frequency scaling
  • השליטה בתדר המעבד
  • סיכום וקריאה מומלצת
  • אודות המעבר מקרנל 2.4 ל- 2.6

    למרות שקיימים backports לקרנל מסדרה 2.4 לחלק רחב מהתכונות שנוספו בסדרה 2.6 (את רובם, כולל CPU Frequency Scaling, ניתן למצוא בסדרת הפאצ'ים של Con Kolivas ), הוחלט ללכת על סדרה 2.6 עבור השימוש השוטף ועבור מאמר זה, בין היתר כדי לעודד שימוש ודיווח על תקלות ובעיות שיעזרו בייצוב הקרנל.
    <small style="color: rgb(102, 102, 102);">
     מאמר זה אינו מהווה מבוא או מדריך לתצורה, הידור והתקנה של הקרנל, כדאי להביא מידע זה מהבית.</small>

    אם ההפצה שלכם לא מספקת חבילה בינארית של קרנל 2.6, עליכם לבנות אותו בעצמכם מן הסתם.  יש מספר דברים שכדאי לתת עליהם את הדעת לפני שבונים את הקרנל בעצמכם:

    • modutils שמשמש בסדרה 2.4 אינו מתאים לקרנל 2.6. יש להתקין את חבילת module-init-tools.
      <small style="color: rgb(102, 102, 102);">
      משתמשי Gentoo שיבצעו emerge ל-development-sources יקבלו את module-init-tools בתור תלות, משתמשי הפצות אחרות YMMV
      </small>

    • קרנל 2.6 מציג מערכת קבצים חדשה מבוססת זכרון בשם sysfs. מערכת קבצים זו מאפשרת לייצא מבני מידע (תרגום של data structures), מאפייניהם ויצירת קשר ביניהם ל-userspace. אנו נשתמש במערכת קבצים זו כדי לקבל מידע ושליטה על תדר המעבד.

      את sysfs עוגנים בתיקית /sys. אם אין כזו, יש ליצור אותה. כדי לעגן אותה לתיקיה יש להריץ את הפקודה הבאה:
      <span style="font-style: italic;">mount -t sysfs sysfs /sys

      </span><small style="color: rgb(102, 102, 102);">למרות שניתן להשתמש גם במערכת הקבצים proc לשליטה על תדר המעבד, אפשרות זו אינה מועדפת, והשימוש ב-sysfs היא המומלצת.
      לעגינה קבועה של sysfs אפשר להוסיף אותה ל-/etc/fstab
      משתמשי gentoo אינה צריכים להוסיף שורה ל-fstab, העגינה מתבצעת אוטומטית

      </small>
    • קרנל 2.4 ביצע עגינה אוטומטית של usbdevfs תחת /proc/bus/usb למידע וקשר עם התקני USB. בקרנל 2.6 שם מערכת הקבצים שונה ל-usbfs והעגינה אינה אוטומטית, יש לבצע אותה באופן ידני.
      <small style="color: rgb(102, 102, 102);">ב-gentoo אין צורך לעשות זאת, ה-localmount עושה זאת אוטומטית עבור קרנלים 2.6. מן הסתם זה יהיה כך גם בהפצות אחרות</small>


    • synaptics הוא מנהל התקן המאפשר ניצול תכונות מיוחד של touchpads במחשבים ניידים התומכים בכך. אם אתם משתמשים בו, יש להתקין דרייבר מעודכן עקב הוספת תמיכה בקרנל להתקן זה. בנוסף הצלחתי להפעילו תחת X רק דרך ה-event interface, אז לזכור לאפשר evdev בעת הגדרת הקרנל.


    הגדרת הקרנל לתמיכה ב-CPU Frequency scaling

    רשימת המעבדים ממשפחת x86 התומכים בתכונה זו כוללת:
    • AMD Elan - SC400, SC410
    • AMD mobile K6-2+
    • AMD mobile K6-3+
    • AMD mobile Duron
    • AMD mobile Athlon
    • Cyrix Media GXm
    • Intel mobile PIII and Intel mobile PIII-M on certain chipsets
    • Intel Pentium 4, Intel Xeon
    • Intel Pentium M (Centrino)
    • National Semiconductors Geode GX
    • Transmeta Crusoe
    • VIA Cyrix 3 / C3
    <small style="color: rgb(102, 102, 102);"> את הרשימה המלאה של המעבדים, כולל מעבדים ממשפחות אחרות ניתן למצוא ב-Documentation/cpu-freq/user-guide.txt תחת תיקיית קוד המקור של הקרנל</small>

    כדי לאפשר שליטה בתדר המעבד, בוחרים בתפריט הגדרת הקרנל ב-Power management options (ACPI, APM, ומשם בוחרים ב-CPU Frequency scaling. שם מסמנים את האפשרות של ה-scaling, ואז יופיעו אפשרויות חדשות. בוחרים את האפשרויות המבוקשות ואת התמיכה במעבדים הרצויים.

    חשוב להזכיר את אפשרות 'userspace' governor for userspace frequency scaling. ללא אפשרות זו ניתן לבחור רק בין 2 מצבים קיצוניים בתדר המעבד. עם אפשרות זאת ניתן להגיע לשליטה טובה יותר בתדר. עוד על כך בהמשך.

    לאחר שהגדרנו את הקרנל, הידרנו אותו, התקנו, הגדרנו את מנהל האתחול ואתחלנו את המחשב עם קרנל 2.6 עובד (אם התמזל מזלנו) אנו מוכנים לשלוט בתדר המעבד.


    השליטה בתדר המעבד

    לאחר מסלול היסורים שעברנו הגיע הזמן להנות מפירות עמלנו. קבלת המידע אודות וקביעת תדר המעבד מתבצעים בעזרת הקבצים בתיקיית /sys/devices/system/cpu/cpu0/cpufreq/ עבור המעבד הראשון (במקרה יש יותר מאחד, יהיו תיקיות במקביל עם cpu1 וכן הלאה).

    <small style="color: rgb(102, 102, 102);">התיעוד ב-user-guide.txt מציין את תיקיית /sys/class/cpu/cpu0/cpufreq/, אך נראה שזה לא מעודכן. לא קיימת תיקיה כזו</small>

    המעבד במחשב שלי עובד בתדר 2.4GHz. לקבלת מידע אודות טווח התדרים בו נוכל להשתמש נוכל לבצע:

    # cat/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    2388171
    # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
    298521
    לקבלת מידע אודות התדרים שנוכל להשתמש בהם:
    # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
    298521 597042 895564 1194085 1492606 1791128 2089649 2388171
    לקבלת מידע אודות אפשרויות השליטה:

    # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
    performance powersave userspace

    כנזכר לעיל, כדי לקבל את אפשרות ה-userspace יש לאפשר זאת בעת תצורת הקרנל. אפשרויות השליטה המצוינות הן:
    • performance: המעבד יעבוד במהירות המקסימלית (2388171 במקרה הזה)
    • powersave: המעבד יעבוד במהירות הנמוכה ביותר לשמירת אנרגיה (298521 במקרה הזה)
    • userspace: שימוש באחד התדרים המצויינים ב-scaling_available_frequencies

    השולט הנוכחי נקרא governor. הקובץscaling_governor  משמש לקבלת מידע אודות השולט הנוכחי ולשינויו. לדוגמא:

    # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    performance


    # echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    powersave

    הדוגמא הזו מציגה את השולט הנוכחי, ומשנה אותו למצב שמירת אנרגיה, שהוא התדר המינימלי. היוצא דופן כאן הוא השולט userspace. כאשר משתמשים בו, נוצר קובץ חדש בשם scaling_setspeed בתיקיה שמאפשר שליטה מדוייקת יותר על התדר.  לדוגמא:
    # echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor




    # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
    2388171

    # echo 1000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

    # cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
    1194085

    כמו שניתן לראות, כאשר קובעים תדר שלא קיים בטבלת התדרים האפשריים, הערך הסופי הוא הערך הקרוב בטבלת התדרים


    סיכום וקריאה מומלצת

    המאמר הזה היה אמור לשמש בתור מבוא לקרנל 2.6 ודוגמא לשימוש ב-sysfs וניצול תכונות חדשות כגון CPU Frequency scaling בעזרתו.

    Gentoo מוזכרת כאן מהסיבה שזו ההפצה שהשתמשתי בה עם קרנל 2.6. משתמשי הפצות אחרות מוזמנים לחלוק מניסיונם בתגובות.

    קריאה מומלצת אודות הנזכר במאמר הזה אפשר למצוא ב:

    תחת תיקית קוד המקור של הקרנל:
    החומר בתיקיה Documentation/cpu-freq
    Documentation/filesystems/sysfs.txt

    The Wonderful World of Linux 2.6 מאת ג'ו פראנביץ'

     

    קישורים רלוונטיים

    קרנל 2.6 ושליטה בתדר המעבד | כניסה / יצירת מנוי חדש | 11 תגובות
    סף חסימה
      
    ההערות הינן מטעם כותביהן. אין צוות האתר לוקח אחריות על תוכנן
    תגובה: קרנל 2.6 ושליטה בתדר המעבד (ניקוד: 1)
    ע"י shany ב 05/08/2003 - 11:52

    (מידע על משתמש | שלח הודעה) http://
    I am very happy to see original
    above average user article

    keep on

    [ השב לזאת ]

    תגובה: קרנל 2.6 ושליטה בתדר המעבד (ניקוד: 1)
    ע"י gal_ga ב 05/08/2003 - 13:10

    (מידע על משתמש | שלח הודעה) http://www.alternative-zine.com
    האם ניתן לעשות זאת ב-Debina כאשר משתמשים ב-make-kpkg לקמפל את הקרנל ?
    אני שואל בגלל השינוי של ה- modutils

    [ השב לזאת ]

    תגובה: קרנל 2.6 ושליטה בתדר המעבד (ניקוד: 0)
    ע"י פינגווין אנונימי ב 05/08/2003 - 13:15
    שלוש הערות:

    1. כל הכבוד על המאמר

    2. לא ממש מתאים למדור ה"חדשות" - עדיף מדור הסקירות

    3. הטקסטים קטועים ונראים נורא באקספלורר - כנראה שיש בעיה עם ה HTML ואי אפשר לקרוא כלום

    [ השב לזאת ]

    תגובה: קרנל 2.6 ושליטה בתדר המעבד(ניקוד: 1)
    ע"י איתי ב 05/08/2003 - 13:34
    (מידע על משתמש | שלח הודעה) http://www.fresh.co.il/dcforum/dcboard.cgi?az=list&forum=Ope
    אז תגלוש מדפדפן סטנדרטי :)

    [ השב לזאת ]

    תגובה: תגובה מפגרת(ניקוד: 0)
    ע"י פינגווין אנונימי ב 05/08/2003 - 13:56
    זה מה שאתה רוצה שיגידו לך כשמוזילה לא עובד לך באתרים?

    אידיוט.

    [ השב לזאת ]

    תגובה: תגובה מפגרת (כה"ב)(ניקוד: 1)
    ע"י רונן ב 05/08/2003 - 14:06
    (מידע על משתמש | שלח הודעה)
    אבל מוזילה הוא דפדפן סטנדרטי. אקספלורר הוא לא....

    מה גם, כל אחד, על כל מערכת הפעלה, ללא כל עלות כספית יכול להשתמש במוזילה... לא כך באקספלורר..

    [ השב לזאת ]

    תגובה: אז מה?(ניקוד: 0)
    ע"י פינגווין אנונימי ב 05/08/2003 - 14:29
    מה ששנוא עליך לא תעשה לחברך

    וחוץ מזה אקספלןרר אחלה אם מתקינים את MyIE2 - כל מה שיש במוזילה ועוד הרבה יותר.

    [ השב לזאת ]

    תגובה: אז מה?(ניקוד: 0)
    ע"י פינגווין אנונימי ב 30/08/2003 - 20:20
    הוא מדבר על זה שאקספלורר לא עודכן שנתיים וחסרה בו תמיכה ותאימות עם כל מיני סטנדרטים -- מכיוון שזה לא קוד פתוח אז אין הרבה מה לעשות חוץ מלחכות לגרסה הבאה של החברה מרדמונד.

    Face it, Explorer is BROKEN

    [ השב לזאת ]

    תגובה: תגובה מפגרת(ניקוד: 1)
    ע"י איתי ב 05/08/2003 - 17:37
    (מידע על משתמש | שלח הודעה) http://www.fresh.co.il/dcforum/dcboard.cgi?az=list&forum=Ope
    מוזילה לעומת אקספלורר סטנדרטי ברוב המקרים, כשמוזילה לא סטנדרטי אני אשמח להאשים את מוזילה.

    [ השב לזאת ]

    תגובה: קרנל 2.6 ושליטה בתדר המעבד (ניקוד: 1)
    ע"י mksoft (meir@mksoft.co.il)
    ב 05/08/2003 - 14:39
    (מידע על משתמש | שלח הודעה) http://mksoft.co.il
    1. תודה רבה.

    2. בסופו של דבר הוא יגיע למדור הסיקורים.

    3. עשיתי כל שביכולתי. האקספלורר משתגע כאשר יש חילופי direction רבים (כמו ב-tags של ה-pre) ומוציא אותו מאיזון. הייתי צריך לעשות hacks בעבר כדי שהוא יציג בגלל פס גלילה אופקי בדפים באתר בגלל שה-direction שיגע אותו (כרגע ה-align של המסמך בדפים באתר הוא ltr וה-element הראשי בו הוא rtl, רק כך explorer מצליח להציג את פס הגלילה). בבקשה לא לנהל כאן ויכוח לגבי דפדפנים. אם אתם ל כך רוצים לעשות זאת, אפשר לפתוח דיון בפורומים.

    [ השב לזאת ]

    תוכנות עזר (ניקוד: 0)
    ע"י פינגווין אנונימי ב 17/12/2003 - 10:33
    יש כבר תוכנה לניהול אוטומטי של תדר המעבד - LAMP היא daemon שבודק את העומס על המעבד ומעלה או מוריד את המהירות של המעבד בהתאם לצורך. עכשיו רק צריך איזה GUI קטן עם אייקון בסרגל הכלים ואנחנו מסודרים :-)

    [ השב לזאת ]