Linux 7.3 يدمج تعديلات من Valve تصلح طرد ذاكرة كروت الشاشة عند الازدحام
أي نظام حصص يطرد أولًا من يلتزم بحدّه عند الازدحام يكافئ المتجاوز ويعاقب الملتزم، وهذا ينطبق على الـ rate limits والـ quotas كما ينطبق على الذاكرة.
دُمجت في Linux 7.3 باتشات كتبتها Natalie Vock من فريق رسوميات Linux في شركة Valve، بعد 8 دورات من المراجعة. وتعدّل الباتشات سلوك TTM، وهي الطبقة التي تدير ذاكرة كروت الشاشة في النواة، إضافة إلى آلية cgroup dmem.
والمشكلة التي تعالجها كانت عكسية. فعندما تمتلئ ذاكرة كارت الشاشة (VRAM)، كانت التطبيقات التي لا يُفرض عليها حد تستهلك الذاكرة أولًا. أما التطبيق الذي تحميه حدود محددة، فكان هو من يتراجع، فتذهب تخصيصاته إلى الـ GTT، أي إلى ذاكرة الجهاز العادية عبر ناقل PCIe، وهي أبطأ بكثير.
وكانت النتيجة تقطعًا وبطئًا في الأداء، لا لأن الذاكرة نفدت، بل لأن التطبيق الذي التزم بحدّه هو من أُزيح.
وبعد التعديل، أصبح الطرد يسير في الاتجاه الصحيح عند ازدحام الذاكرة. والدعم مفعّل لبرامج تشغيل AMDGPU وXe. وفي اختبار على لعبة Cyberpunk 2077، انخفض استخدام الـ GTT إلى 650 ميجابايت، بينما بقي 7.3 جيجابايت في ذاكرة الكارت نفسها.
ويتجاوز الدرس حدود النواة. فأي نظام حصص يُبنى بحيث تكون الجهة الملتزمة بالسقف أول من يُزاح وقت الازدحام، يكافئ في الواقع من يتجاوز الحدود لا من يلتزم بها. ويتكرر هذا النمط في حدود الطلبات (rate limits) والحصص (quotas) وجدولة الخوادم، تمامًا كما حدث في الذاكرة.
ولا يظهر هذا الخلل عادة في أوقات الهدوء، لأن الحصص لا تُختبر فعليًا إلا عند الازدحام.