🛒 Arduino, ESP32 və modullar
Linus Torvalds Linux nüvəsindəki qrafik bug‑u AI köməyi ilə tapdı
3 SAAT ƏVVƏLProqramlaşdırma

Linus Torvalds Linux nüvəsindəki qrafik bug‑u AI köməyi ilə tapdı

Linux nüvəsində Intel Xe drayverindəki səhv uzun diaqnostikadan sonra cəmi bir sətirlik dəyişikliklə düzəldildi – rutin işi isə AI gördü.

6 sentyabr 20262 dəq oxuma15 teqlər

Kompyuteri tam söndürüb yenidən işə saldıqdan sonra Linux bir qisim istifadəçidə qara ekran göstərirdi: qrafik mühit (məsələn, GNOME/KDE Xorg və ya Wayland seansı) fasiləsiz restart olurdu, amma sistem özü işlək qalırdı. Məsələni müvəqqəti həll etmək üçün yalnız qrafik mühiti yenidən başlatmaq kifayət edirdi.

Bu bug‑un üzərinə şəxsən Linus Torvalds getdi və rutin diaqnostika üçün AI alətindən istifadə etdi.

Səhvin kökü: səhv yuvarlaqlaşdırılmış VRAM sərhədi

Problem Intel Xe qrafik drayverində VRAM sərhədinin hesablanması ilə bağlı idi. Videokart aparat səviyyəli sıxılma üçün VRAM‑in bir hissəsini xidmətedici məlumat üçün rezerv edir. Drayver bu qapalı sahənin başlanğıc ünvanını alır və ondan aşağıdakı yaddaşı tətbiqlərə açıq elan edir.

Köhnə legacy kod bu ünvanı round_up() ilə yuxarı yuvarlaqlaşdırırdı. Nəticədə sərbəst yaddaşın sərhədi rezerv olunmuş sahənin içinə irəli sürüşürdü.

Linusun kompüterində sərhəd 4 KB‑lıq səhifənin ortasından keçirdi: son 2 KB artıq sıxılma mexanizminə məxsus idi, amma drayver bütün səhifəni tətbiqə verə bilirdi. Videokart öz xidmətedici məlumatını həmin səhifədə yerləşən səhifə cədvəlinin üstünə yazır, qrafik mühit isə lazım olan yaddaşa çıxışı itirib çökürdü.

Həll çox sadə çıxdı: round_up() round_down() ilə əvəz olundu. İndi ünvan aşağı yuvarlaqlaşdırılır, səhifənin yalnız kiçik hissəsi belə GPU tərəfindən istifadə olunursa, drayver həmin səhifəni tamamilə əlçatan yaddaşdan çıxarır. Bir neçə kilobayt VRAM itir, əvəzində avadanlıq tətbiqlərin yaddaşını yenidən yaza bilmir.

AI nə etdi?

Dəyişiklik cəmi bir sətir olsa da, onu tapmaq üçün 24 diaqnostik patch18 nüvə reboot tələb olundu. AI əsasən mexaniki işi gördü:

  • müxtəlif diaqnostik kod parçaları əlavə etdi;
  • nəticələri analiz edib Linusa təqdim etdi;
  • bir neçə dəfə problemi "həllolunmaz" elan edib, sadəcə hesabatla kifayətlənməyi təklif etdi.

Torvalds isə hər dəfə onu davam etməyə məcbur edirdi. Sonda o, AI‑ın böyük kömək göstərdiyini etiraf etdi və hətta kommit təsvirini də AI‑a yazdırdı. Hansı modeli istifadə etdiyini açıqlamadı.

Buradakı əsas nəticə: AI tək bir sehrli əmrlə bug tapmadı və mühəndisi əvəz etmədi. O, rutin işi avtomatlaşdırdı, hipotezləri isə insan qurdu, yoxladı və "bu mümkün deyil" cavabını qəbul etmədi.


Mənbə: Habr Xəbərlər