Linux 6.4 Menyiapkan Petunjuk Batas Waktu DRM Untuk Membantu Mempengaruhi Frekuensi/Kinerja GPU

  • Post author:
  • Post category:Linux

Rob Clark pada hari Sabtu mengirimkan permintaan penarikan yang menambahkan kode kesadaran tenggat waktu DMA-BUF/DMA-FENCE ke subsistem Direct Rendering Manager (DRM) dengan siklus Linux 6.4 yang akan datang.
Permintaan tarikan ini menyediakan infrastruktur inti untuk mengizinkan petunjuk “batas waktu” untuk digunakan oleh driver grafis/tampilan DRM. Permintaan tarik ini tidak menerapkan dukungan tenggat waktu untuk driver DRM mana pun, tetapi setidaknya sekarang memungkinkan driver untuk melakukannya dalam permintaan tarik mereka sendiri.
Dukungan kesadaran tenggat waktu ini adalah petunjuk untuk pagar sehingga tenggat waktu real-time seperti vblanks dapat dikomunikasikan ke pensinyalan pagar untuk meningkatkan keputusan manajemen daya/frekuensi. Dukungan kesadaran tenggat waktu ini sebagian terinspirasi oleh penanganan yang saat ini dilakukan oleh driver grafis kernel Intel.

Ketika diimplementasikan oleh driver DRM, harapannya adalah bahwa dengan petunjuk tenggat waktu ini GPU akan meningkatkan frekuensi clock / status daya jika diperlukan agar tidak melewatkan tenggat waktu. Komentar kode dengan petunjuk tenggat waktu DRM baru selanjutnya menjelaskan:
Dalam dunia yang ideal, adalah mungkin untuk menyalurkan beban kerja secara memadai sehingga gubernur frekuensi perangkat berbasis pemanfaatan dapat mencapai frekuensi minimum yang memenuhi persyaratan kasus penggunaan, untuk meminimalkan konsumsi daya. Tapi di dunia nyata ada banyak beban kerja yang bertentangan dengan cita-cita ini. Misalnya, namun tidak terbatas pada:
Beban kerja ping-pong antara perangkat dan CPU, dengan periode bergantian CPU menunggu perangkat, dan perangkat menunggu di CPU. Hal ini dapat mengakibatkan devfreq dan cpufreq melihat waktu diam di domain masing-masing dan hasilnya mengurangi frekuensi.
Beban kerja yang berinteraksi dengan tenggat waktu berbasis waktu berkala, seperti rendering GPU dengan buffer ganda vs pembalikan halaman vblank sync`d. Dalam skenario ini, melewatkan tenggat waktu vblank mengakibatkan *peningkatan* waktu idle pada GPU (karena harus menunggu periode vblank tambahan), mengirimkan sinyal ke devfreq GPU untuk mengurangi frekuensi, padahal sebenarnya sebaliknya adalah apa yang dibutuhkan.
Untuk tujuan ini, petunjuk tenggat waktu dapat diatur pada &dma_fence melalui &dma_fence_set_deadline. Petunjuk tenggat waktu menyediakan cara bagi pengemudi yang menunggu, atau ruang pengguna, untuk menyampaikan rasa urgensi yang sesuai kepada pengemudi pemberi sinyal.
Petunjuk tenggat waktu diberikan dalam ktime absolut (CLOCK_MONOTONIC untuk API yang menghadap ruang pengguna). Waktu dapat berupa beberapa titik di masa depan (seperti tenggat waktu berbasis vblank untuk membalik halaman, atau awal siklus komposisi penyusun), atau waktu saat ini untuk menunjukkan petunjuk tenggat waktu langsung (yaitu kemajuan maju tidak dapat dilakukan sampai pagar ini diberi tanda).
Beberapa tenggat waktu dapat ditetapkan pada pagar tertentu, bahkan secara paralel. Lihat dokumentasi untuk &dma_fence_ops.set_deadline.
Petunjuk tenggat waktu hanyalah itu, sebuah petunjuk. Pengemudi yang membuat pagar dapat bereaksi dengan meningkatkan frekuensi, membuat pilihan penjadwalan yang berbeda, dll. Atau tidak melakukan apa-apa sama sekali. Kode inti seputar kesadaran tenggat waktu DRM DMA-BUF/DMA-FENCE dapat ditemukan melalui permintaan penarikan ini. Tambalan telah diluncurkan untuk menerapkan penanganan petunjuk tenggat waktu seperti driver Intel dan Freedreno sehingga mungkin mereka juga siap untuk siklus Linux 6.4 yang akan dimulai dalam waktu sekitar satu bulan.

Itulah berita seputar Linux 6.4 Menyiapkan Petunjuk Batas Waktu DRM Untuk Membantu Mempengaruhi Frekuensi/Kinerja GPU, semoga bermanfaat. Disadur dari Phoronix.com.