Pepijat itu berpunca daripada pengiraan sempadan antara VRAM biasa dengan ruang storan CCS rata—iaitu flat Compute Command Streamer—dalam pemacu Intel Xe.
Secara konsep, operasi kod berubah daripada:
round_up(value, SZ_128K)
kepada:
round_down(value, SZ_128K)
Perbezaan antara membundarkan ke atas dan ke bawah amat penting dalam kes ini. Nilai tersebut menandakan had akhir memori yang boleh digunakan oleh pengalokasi VRAM. Apabila had itu dibundarkan ke atas, kawasan kecil selepas sempadan sebenar boleh kelihatan seperti ruang kosong yang selamat digunakan.
Hakikatnya, ruang itu telah dikhaskan untuk metadata pemampatan CCS. Membundarkan nilai ke bawah memastikan pengalokasi kekal di sebelah yang selamat dan tidak memasuki kawasan simpanan tersebut.
Sebaik sahaja pengalokasi menganggap ruang CCS sebagai VRAM biasa, peruntukan memori boleh bertindih dengan metadata yang diperlukan oleh GPU. Metadata itu kemudiannya boleh ditulis ganti, termasuk data berkaitan jadual halaman GPU.
Kerosakan berkenaan menghasilkan gejala seperti paparan rosak dan GDM—pengurus paparan desktop Linux—yang terus dimulakan semula tanpa henti pada perkakasan Battlemage G21.
Jadi, masalah ini bukan sekadar kesilapan matematik. Ia berpunca daripada salah faham terhadap maksud nilai tersebut: kod menyelaraskan nilai seolah-olah ia alamat permulaan, sedangkan nilai itu sebenarnya ialah had yang menandakan tempat memori boleh guna berakhir.
Sebab itulah pembaikannya hanya memerlukan satu perubahan kecil, tetapi amat sukar dikenal pasti.
Torvalds menggambarkan proses itu sebagai “sesi debug dari neraka”. Beliau dan pembantu AI menambah serta mengubah instrumentasi yang disasarkan, menjejaki pengiraan memori dalam pemacu dan membandingkan kedudukan CCS yang dilaporkan perkakasan dengan sempadan yang diserahkan kepada pengalokasi VRAM.
Siasatan itu memerlukan 24 versi tampalan debug dan 18 kitaran but semula serta ujian sebelum kesilapan arah pembundaran menjadi jelas.
Ujian berulang itu penting kerana kegagalan tersebut diperhatikan pada peringkat perkakasan dan sistem paparan, bukan sekadar melalui satu baris kod yang kelihatan mencurigakan. Setiap percubaan membantu membezakan masalah tingkah laku pengalokasi memori daripada punca lain yang mungkin menyebabkan kegagalan grafik.
Torvalds menggunakan pembantu AI sebagai rakan debug interaktif. AI membantu mencadangkan instrumentasi, menjejaki laluan kod dan menganalisis output daripada eksperimen berturut-turut. Dengan cara itu, kerja berulang untuk menguji pelbagai hipotesis dapat dilakukan dengan lebih pantas.
Namun begitu, AI bukan sumber autoriti yang boleh dipercayai sepenuhnya. Menurut Torvalds, pembantu itu beberapa kali menganggap masalah tersebut mustahil atau tidak boleh diselesaikan, lalu menyarankan supaya usaha itu dihentikan. Beliau sendiri yang menentukan eksperimen seterusnya, mengenal pasti tafsiran yang silap dan memahami maksud sebenar offset tersebut dalam model memori pengalokasi.
Inilah pembahagian tugas yang paling penting: AI menjana kemungkinan dan membantu melaksanakan kerja mekanikal, manakala pakar menyediakan konteks teknikal, ujian yang boleh membuktikan atau menolak hipotesis, ketekunan dan keputusan akhir.
Torvalds sendiri menulis dan melakukan commit untuk pembaikan pemacu Intel Xe itu ke dalam kernel Linux upstream. Laporan yang tersedia menunjukkan siri kernel stabil yang masih diselenggara dijangka menerima perubahan tersebut melalui proses backport biasa.
Bagaimanapun, sumber yang diberikan tidak mengesahkan dengan boleh dipercayai versi kernel stabil tertentu atau tarikh keluarannya. Oleh itu, adalah terlalu awal untuk menamakan versi backport secara khusus. Pengguna perkakasan terjejas wajar menunggu pengumuman daripada pengedaran Linux atau penyelenggara kernel bagi memastikan sesuatu binaan sudah mengandungi pembaikan ini.
Kes Intel Xe ini bukan pengesahan menyeluruh bahawa kod kernel yang dijana AI sentiasa baik. Ia menunjukkan penggunaan yang lebih khusus dan munasabah: pakar menggunakan AI untuk mempercepatkan kitaran debug yang sukar, sambil mengekalkan tanggungjawab terhadap hipotesis, reka bentuk ujian, semakan kod dan tampalan akhir.
Pendekatan itu berbeza daripada menghantar tampalan atau laporan kerentanan yang dijana AI secara pukal tanpa ujian dan tanpa pemahaman subsistem. Penyelenggara kernel menggambarkan kemasukan hantaran sebegitu sebagai “serangan bertalu-talu”, manakala penyelenggara subsistem staging dan networking turut melaporkan peningkatan tampalan berkualiti rendah atau tidak difahami dengan baik.
Angka yang sering diulang tentang peningkatan 2,700 peratus juga perlu dilihat dengan berhati-hati. Sumber yang diberikan tidak menjelaskan kaedah pengukuran, tempoh masa atau kategori tepat yang dirujuk oleh angka tersebut. Kesimpulan yang lebih kukuh ialah kos menghasilkan kod dan laporan dengan AI semakin rendah, tetapi kos menyemak serta menapisnya masih ditanggung oleh penyelenggara manusia.
Torvalds juga pernah menegaskan bahawa Linux tidak menolak AI secara mutlak, khususnya apabila alat tersebut digunakan untuk tugas seperti semakan kod. Sesi debug Intel Xe itu menunjukkan had praktikalnya: AI boleh berguna dalam proses kejuruteraan yang berdisiplin, tetapi ia tidak menggantikan pengetahuan subsistem, ujian yang boleh diulang atau tanggungjawab manusia terhadap hasil akhir.
Tampalan terakhir hanya mengubah satu baris. Pencapaian sebenar ialah mengetahui baris mana yang perlu diubah—dan tidak berhenti mencari apabila pembantu AI berkata jawapannya tidak mungkin ditemui.
Pepijat itu berpunca daripada pengiraan sempadan antara VRAM biasa dengan ruang storan CCS rata—iaitu flat Compute Command Streamer—dalam pemacu Intel Xe.
Secara konsep, operasi kod berubah daripada:
round_up(value, SZ_128K)
kepada:
round_down(value, SZ_128K)
Perbezaan antara membundarkan ke atas dan ke bawah amat penting dalam kes ini. Nilai tersebut menandakan had akhir memori yang boleh digunakan oleh pengalokasi VRAM. Apabila had itu dibundarkan ke atas, kawasan kecil selepas sempadan sebenar boleh kelihatan seperti ruang kosong yang selamat digunakan.
Hakikatnya, ruang itu telah dikhaskan untuk metadata pemampatan CCS. Membundarkan nilai ke bawah memastikan pengalokasi kekal di sebelah yang selamat dan tidak memasuki kawasan simpanan tersebut.
Sebaik sahaja pengalokasi menganggap ruang CCS sebagai VRAM biasa, peruntukan memori boleh bertindih dengan metadata yang diperlukan oleh GPU. Metadata itu kemudiannya boleh ditulis ganti, termasuk data berkaitan jadual halaman GPU.
Kerosakan berkenaan menghasilkan gejala seperti paparan rosak dan GDM—pengurus paparan desktop Linux—yang terus dimulakan semula tanpa henti pada perkakasan Battlemage G21.
Jadi, masalah ini bukan sekadar kesilapan matematik. Ia berpunca daripada salah faham terhadap maksud nilai tersebut: kod menyelaraskan nilai seolah-olah ia alamat permulaan, sedangkan nilai itu sebenarnya ialah had yang menandakan tempat memori boleh guna berakhir.
Sebab itulah pembaikannya hanya memerlukan satu perubahan kecil, tetapi amat sukar dikenal pasti.
Torvalds menggambarkan proses itu sebagai “sesi debug dari neraka”. Beliau dan pembantu AI menambah serta mengubah instrumentasi yang disasarkan, menjejaki pengiraan memori dalam pemacu dan membandingkan kedudukan CCS yang dilaporkan perkakasan dengan sempadan yang diserahkan kepada pengalokasi VRAM.
Siasatan itu memerlukan 24 versi tampalan debug dan 18 kitaran but semula serta ujian sebelum kesilapan arah pembundaran menjadi jelas.
Ujian berulang itu penting kerana kegagalan tersebut diperhatikan pada peringkat perkakasan dan sistem paparan, bukan sekadar melalui satu baris kod yang kelihatan mencurigakan. Setiap percubaan membantu membezakan masalah tingkah laku pengalokasi memori daripada punca lain yang mungkin menyebabkan kegagalan grafik.
Torvalds menggunakan pembantu AI sebagai rakan debug interaktif. AI membantu mencadangkan instrumentasi, menjejaki laluan kod dan menganalisis output daripada eksperimen berturut-turut. Dengan cara itu, kerja berulang untuk menguji pelbagai hipotesis dapat dilakukan dengan lebih pantas.
Namun begitu, AI bukan sumber autoriti yang boleh dipercayai sepenuhnya. Menurut Torvalds, pembantu itu beberapa kali menganggap masalah tersebut mustahil atau tidak boleh diselesaikan, lalu menyarankan supaya usaha itu dihentikan. Beliau sendiri yang menentukan eksperimen seterusnya, mengenal pasti tafsiran yang silap dan memahami maksud sebenar offset tersebut dalam model memori pengalokasi.
Inilah pembahagian tugas yang paling penting: AI menjana kemungkinan dan membantu melaksanakan kerja mekanikal, manakala pakar menyediakan konteks teknikal, ujian yang boleh membuktikan atau menolak hipotesis, ketekunan dan keputusan akhir.
Torvalds sendiri menulis dan melakukan commit untuk pembaikan pemacu Intel Xe itu ke dalam kernel Linux upstream. Laporan yang tersedia menunjukkan siri kernel stabil yang masih diselenggara dijangka menerima perubahan tersebut melalui proses backport biasa.
Bagaimanapun, sumber yang diberikan tidak mengesahkan dengan boleh dipercayai versi kernel stabil tertentu atau tarikh keluarannya. Oleh itu, adalah terlalu awal untuk menamakan versi backport secara khusus. Pengguna perkakasan terjejas wajar menunggu pengumuman daripada pengedaran Linux atau penyelenggara kernel bagi memastikan sesuatu binaan sudah mengandungi pembaikan ini.
Kes Intel Xe ini bukan pengesahan menyeluruh bahawa kod kernel yang dijana AI sentiasa baik. Ia menunjukkan penggunaan yang lebih khusus dan munasabah: pakar menggunakan AI untuk mempercepatkan kitaran debug yang sukar, sambil mengekalkan tanggungjawab terhadap hipotesis, reka bentuk ujian, semakan kod dan tampalan akhir.
Pendekatan itu berbeza daripada menghantar tampalan atau laporan kerentanan yang dijana AI secara pukal tanpa ujian dan tanpa pemahaman subsistem. Penyelenggara kernel menggambarkan kemasukan hantaran sebegitu sebagai “serangan bertalu-talu”, manakala penyelenggara subsistem staging dan networking turut melaporkan peningkatan tampalan berkualiti rendah atau tidak difahami dengan baik.
Angka yang sering diulang tentang peningkatan 2,700 peratus juga perlu dilihat dengan berhati-hati. Sumber yang diberikan tidak menjelaskan kaedah pengukuran, tempoh masa atau kategori tepat yang dirujuk oleh angka tersebut. Kesimpulan yang lebih kukuh ialah kos menghasilkan kod dan laporan dengan AI semakin rendah, tetapi kos menyemak serta menapisnya masih ditanggung oleh penyelenggara manusia.
Torvalds juga pernah menegaskan bahawa Linux tidak menolak AI secara mutlak, khususnya apabila alat tersebut digunakan untuk tugas seperti semakan kod. Sesi debug Intel Xe itu menunjukkan had praktikalnya: AI boleh berguna dalam proses kejuruteraan yang berdisiplin, tetapi ia tidak menggantikan pengetahuan subsistem, ujian yang boleh diulang atau tanggungjawab manusia terhadap hasil akhir.
Tampalan terakhir hanya mengubah satu baris. Pencapaian sebenar ialah mengetahui baris mana yang perlu diubah—dan tidak berhenti mencari apabila pembantu AI berkata jawapannya tidak mungkin ditemui.