לינוס טורבאלדס כתב תיקון לליבת לינוקס עם קלוד קוד. מה לומדים מהדרך
מאת ירון דויטשר עודכן לאחרונה:
לינוס טורבאלדס, שעדיין מחליט מה נכנס לליבת לינוקס, העלה לעץ שלו ב-kernel.org
ענף בשם noref-filemap-read-with-llm. יש בו שמונה פאצ’ים לניהול הזיכרון של
הקרנל, ומכתב פתיחה ארוך. הקומיט האחרון בענף נושא את התאריך 10 באוקטובר 2026.
בסוף המכתב יש סעיף קצר בשם Tools, ובו שני משפטים. בתרגום: ״הקוד, תוכניות הבדיקה, הסקירה שמאחורי רשימת הבעיות, והטיוטה הראשונה של הטקסט הזה נעשו עם עוזר קוד מבוסס LLM (קלוד קוד) בהכוונתי. המדידות רצו על המחשב שלי.״
הכותרות בעולם התמקדו בשם. מה שמעניין יותר הוא איך נראית עבודה כזאת כשמי שמכוון אותה הוא מהנדס בדרגה הזאת, ומה מזה אפשר להעתיק לפרויקט שלנו.
מה התיקון עושה?
כשהרבה תהליכונים קוראים קטעים קטנים מאותו קובץ, הקרנל מעלה ומוריד מונה הפניות על אותו עמוד זיכרון בכל קריאה. בכל פעם הליבות נאבקות על אותה שורת cache. לפי מכתב הפתיחה, את הבעיה העלה מתיו וילקוקס כבר ב-2024, מתוך עומס עבודה של לקוח, וניסיונות קודמים לפתור אותה נעצרו.
הפתרון של הסדרה הפוך: במקום לזהות מתי מותר לקרוא בלי הפניה, הקרנל דוחה את שחרור הזיכרון עד שעובר מחזור RCU (מנגנון שמבטיח שאף קורא כבר אינו משתמש בזיכרון). כך אפשר להעתיק נתונים ישר מה-cache, בלי מונה ובלי בדיקה אחרי ההעתקה.
מה נמדד, ועל מה?
על הלפטופ של טורבאלדס, מעבד i7-8565U עם 4 ליבות ו-8 תהליכונים, ב-8 תהליכונים שקוראים 16 בתים מאותו קובץ:
- מחזורי שעון לקריאה: מכ-2,950 לכ-725
- קריאות בשנייה: מ-9.9 עד 10.4 מיליון ל-30 עד 33 מיליון
- התנגשויות על שורת ה-cache (לפי perf c2c): מ-30,538 ל-101
- תהליכון יחיד: חיסכון של כעשרה אחוזים, מ-452 ל-408 מחזורים
והמחיר נמצא באותה טבלה. קריאה לתוך עמוד של המשתמש שעוד לא מופה בזיכרון עולה עכשיו כ-6,550 מחזורים במקום כ-4,150, כי המסלול המהיר נכשל לפני שהמסלול הישן משלים את הקריאה. טורבאלדס גם כותב במפורש שכל המספרים מלפטופ אחד: מכונה גדולה יותר אמורה להרוויח יותר, אבל שום דבר גדול יותר לא נמדד.
נכון ל-13 באוקטובר הענף לא מוזג לענף הראשי של לינוקס. זו הצעה פתוחה לביקורת, לא שינוי שנכנס לקרנל.
עדכון: באותו יום טורבאלדס פרסם לרשימת התפוצה של הקרנל גרסה 3 של הסדרה. מפתח אחר מצא בה באג תוך ארבע שעות, וקיבל ממנו את הסדרה כולה. הפרטים בפריט ההמשך.
מה אפשר להעתיק מזה?
הכיוון נשאר אצלכם
קלוד קוד כתב את הקוד, את הבדיקות ואת טיוטת המכתב. טורבאלדס החליט מה לבנות, הריץ
את המדידות על החומרה שלו, וחתם על כל פאצ’ בשמו. הליבה אפילו מנסחת את זה ככלל:
מסמך העזרים מבוססי ה-AI
של הקרנל קובע שסוכן לא מוסיף Signed-off-by, ושהאדם שמגיש לוקח אחריות מלאה
על התרומה.
בקשו את רשימת הבעיות, לא רק את הקוד
החלק הארוך ביותר במכתב הוא ״Known problems״: עשר נקודות פתוחות. ביניהן העובדה שהזיכרון שממתין לשחרור שקוף למקצה הזיכרון, ושבלי שני הפאצ’ים האחרונים, מכונה וירטואלית של 2GB נגמרה מזיכרון בבדיקת עומס. הסף של 1,024 עמודים לכל ליבה, שנוסף כדי לתקן את זה, מתואר במילה אחת: ניחוש. ויש גם רשימה מפורשת של מה לא נבדק, החל ב-xfstests ועד ״כל מכונה חוץ מזו״.
זו התבנית ששווה לגנוב. כשקלוד קוד מסיים משימה גדולה, מבקשים ממנו בנפרד: מה לא פתור, מה לא נבדק, ואיפה הנימוק שלך הוא רק נימוק.
בדקו את הבדיקה
הבדיקה המרכזית קוראת קובץ בארבעה תהליכונים בזמן שתהליכון אחר מוחק אותו מה-cache וממחזר את הזיכרון. התוצאה הייתה 0 קריאות שגויות. אבל אפס מוכיח משהו רק אם הבדיקה מסוגלת להיכשל. לכן נבנה גם תיקון דיבאג ששובר את ההבטחה בכוונה, ואיתו אותה בדיקה תפסה 12 ו-138 קריאות שגויות בשתי ריצות. טורבאלדס מציין גם שבדיקת הביקורת הזאת רצה על גרסה מוקדמת של הסדרה ולא חזרה על האחרונה. כך נראית כנות.
זה ההרגל שהכי חסר בעבודה עם סוכנים. בדיקה שקלוד כתב ושעוברת בירוק עוד לא אומרת כלום. שוברים את הקוד בכוונה ומוודאים שהיא נכשלת. עוד על זה בטיפ על בדיקה שקלוד יכול להריץ בעצמו.
סמנו מה נכתב עם סוכן
כל שמונת הפאצ’ים נושאים את השורה Assisted-by: LLM, בדיוק בפורמט שמסמך הקרנל
מבקש. בקלוד קוד מחליפים את חתימת ברירת המחדל בקומיטים דרך המפתח
attribution.commit בקובץ ההגדרות:
{
"attribution": {
"commit": "Assisted-by: LLM"
}
}
פרויקט שיש לו כלל משלו מקבל את הפורמט שלו, וכל השאר מגיעים לקומיט אוטומטית. לפני
שמשנים, שווה לקרוא את הטיפ על שלוש החתימות של קלוד קוד:
מי שמגדיר רק את commit מקבל בחזרה את ברירת המחדל של ה-PR.
שורה תחתונה
הסיפור כאן אינו ש״גם טורבאלדס משתמש ב-AI״. הסיפור הוא שהעבודה הכי מתועדת שראינו עם קלוד קוד בקוד תשתית נראית בדיוק כמו עבודה טובה בלעדיו: מדידות על חומרה אמיתית, בדיקה שהוכח שהיא יודעת להיכשל, ורשימה כנה של מה שעוד לא עובד. קלוד קוד קיצר את הכתיבה. את השיפוט הוא לא החליף.
מי שרוצה לבנות את ההרגלים האלה מההתחלה ימצא אותם במדריך המלא לקלוד קוד.
מקורות: הענף בעץ של טורבאלדס ב-kernel.org
(מכתב הפתיחה הוא הודעת הקומיט 4c0f369), ו-מסמך ה-AI של הקרנל.
הסיפור התגלה לראשונה ב-Phoronix.