# DroidForge
Tweaking & Kinerja

Debugging Subsistem Daya dan Analisis CPU Governor (Schedutil vs Energy Aware Scheduling)

T Tim Riset DroidForge
Diperbarui:
9 min read
Daftar Isi Artikel

Evolusi Governor CPU Linux: Dari Ondemand/Interactive ke Schedutil

Pengaturan frekuensi prosesor pada sistem operasi berbasis kernel Linux secara historis dikelola oleh modul yang dinamakan CPU Frequency Governor. Pada era awal Android, governor klasik seperti ondemand dan interactive digunakan secara luas. Cara kerja governor legacy ini bertumpu pada mekanisme sampling periodik: setiap interval waktu tertentu (misalnya setiap 20 milidetik), sebuah timer kernel memeriksa persentase beban kerja CPU. Jika beban melebihi ambang batas, governor menaikkan frekuensi jam prosesor.

Kelemahan mendasar dari model sampling periodik adalah latensi responsivitas dan ketidakcocokan dengan penjadwal tugas (task scheduler). Governor tidak mengetahui proses mana yang sedang berjalan atau berapa besar kebutuhan komputasi thread di masa depan. Untuk mengatasi jurang pemisah ini, komunitas Linux dan Google merancang Schedutil (Scheduler-driven CPUFreq Governor) yang terintegrasi langsung dengan Completely Fair Scheduler (CFS) dan Energy Aware Scheduling (EAS).

Arsitektur Energy Aware Scheduling (EAS) pada Topologi big.LITTLE / DynamIQ

Prosesor smartphone modern mengadopsi arsitektur CPU heterogen ARM big.LITTLE atau ARM DynamIQ. Dalam satu silikon chip SoC, terdapat beberapa cluster inti prosesor dengan karakteristik silikon yang kontras:

  • LITTLE Cores (Efficiency Cores): Inti prosesor hemat daya (seperti ARM Cortex-A55 atau Cortex-A520) yang dirancang untuk beban kerja ringan di latar belakang dengan konsumsi baterai minimal.
  • BIG Cores (Performance Cores): Inti prosesor berfrekuensi tinggi (seperti Cortex-A715 atau Cortex-A720) untuk komputasi berat.
  • PRIME Cores (Ultra Core): Satu inti raksasa berfrekuensi puncak (seperti Cortex-X3 atau Cortex-X4) untuk beban puncak instan seperti peluncuran aplikasi.

Energy Aware Scheduling (EAS) memanfaatkan model energi matematis (Energy Model / EM) yang diprogram ke dalam kernel. Ketika sebuah thread aplikasi siap dieksekusi, scheduler menghitung estimasi konsumsi energi (dalam milliwatt) jika thread tersebut ditempatkan pada cluster LITTLE dibandingkan cluster BIG, lalu memilih skenario penempatan yang paling hemat energi tanpa mengorbankan target frame rate.

Karakteristik Operasional Interactive Governor (Legacy) Schedutil Berbasis EAS Modern
Sumber Informasi Beban Timer sampling periodik independen. Sinyal utilisasi scheduler waktu-nyata (PELT / WALT).
Latensi Penggantian Frekuensi Lambat (tergantung batas interval sampling). Sangat Cepat (langsung dipicu saat thread di-wake-up).
Kesadaran Topologi Core Buta terhadap perbedaan efisiensi silikon core. Sangat sadar (terhubung langsung dengan Energy Model SoC).
Pencegahan Jitter UI Sering kali menaikkan frekuensi secara terlambat atau berlebihan. Menaikkan frekuensi tepat sesuai estimasi kurva margin utilisasi.

Peringatan Termal: Bahaya Penguncian Governor Performance Statis

Baca Juga:
Eksplorasi Framework Project Treble dan Implementasi Generic System Image (GSI)
AOSP & Custom ROM 4 mnt baca

Mengunci seluruh inti CPU pada governor performance tidak membuat perangkat beroperasi lebih cepat dalam jangka panjang. Panas yang menumpuk di silikon SoC akan segera memicu thermal throttling darurat dari sensor perangkat keras, yang justru memangkas frekuensi jam ke tingkat paling rendah.

Mekanisme Kerja Governor Schedutil

Di bawah governor schedutil, penyesuaian frekuensi jam CPU tidak lagi menunggu interupsi timer. Setiap kali penjadwal tugas kernel memperbarui utilisasi thread menggunakan PELT (Per-Entity Load Tracking) atau WALT (Window-Assisted Load Tracking), fungsi internal kernel cpufreq_update_util() dipanggil seketika.

Formula matematis yang digunakan Schedutil untuk menentukan target frekuensi jam prosesor dinyatakan dalam hubungan:

Target_Frequency = 1.25 * Max_Frequency * (Current_Utilization / Max_Capacity)

Faktor pengali 1.25 (margin 25%) memberikan cadangan kapasitas komputasi (headroom) agar CPU dapat merespons lonjakan instruksi berikutnya sebelum frame antarmuka drop.

Baca Juga:
Audit Keamanan Keystore dan Hardware-Backed Security Module pada Android
Keamanan & Kernel 4 mnt baca

Perbedaan Fundamental PELT dan WALT pada Platform SoC

Penghitungan beban utilisasi thread di dalam kernel Linux terbagi menjadi dua mazhab besar:

  • PELT (Per-Entity Load Tracking): Algoritma resmi upstream Linux di mana beban setiap task dilacak menggunakan deret peluruhan geometris (half-life 32 milidetik). PELT sangat stabil secara matematis dan bebas dari lonjakan frekuensi yang tidak diinginkan, menjadikannya pilihan standar Google GKI.
  • WALT (Window-Assisted Load Tracking): Modifikasi kernel yang dikembangkan oleh Qualcomm untuk prosesor Snapdragon. WALT menghitung beban kerja berdasarkan jendela geser (sliding window) berdurasi 16-20 milidetik. WALT cenderung lebih agresif mendeteksi ledakan instruksi game atau sentuhan pengguna, namun dapat mengonsumsi sedikit lebih banyak daya pada skenario idle.

Inspeksi dan Pengukuran Frekuensi Real-Time via Sysfs

Peneliti dapat menganalisis status operasional policy governor CPU melalui subsistem virtual /sys/devices/system/cpu/ menggunakan ADB shell:

# Menampilkan daftar policy frekuensi CPU yang tersedia pada cluster
adb shell ls /sys/devices/system/cpu/cpufreq/

# Memeriksa governor aktif pada cluster LITTLE (policy0)
adb shell cat /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

# Menampilkan frekuensi aktual real-time yang sedang dieksekusi core
adb shell cat /sys/devices/system/cpu/cpufreq/policy0/scaling_cur_freq

# Memeriksa durasi waktu yang dihabiskan prosesor pada masing-masing frekuensi
adb shell cat /sys/devices/system/cpu/cpufreq/policy0/stats/time_in_state

Analisis Interaksi PowerHAL dan Touch Boost

Pada platform Android komersial, governor Schedutil juga berkoordinasi erat dengan komponen PowerHAL di ruang pengguna. Ketika layar sentuh (touchscreen) mendeteksi input jari pengguna, driver sentuh mengirimkan sinyal hint POWER_HINT_INTERACTION ke PowerHAL.

PowerHAL kemudian secara sementara menyuntikkan margin utilisasi ekstra ke dalam node schedutil (dikenal dengan istilah touch boost) untuk memastikan bahwa GPU dan CPU langsung berada pada frekuensi yang cukup tinggi saat animasi scroll dimulai, menjamin transisi 120Hz yang mulus tanpa lag.

Kesimpulan Analisis CPU Governor

Integrasi mendalam antara governor schedutil dengan arsitektur Energy Aware Scheduling (EAS) merupakan puncak inovasi efisiensi daya pada kernel Linux Android. Memahami dinamika penempatan beban kerja antar cluster prosesor memberikan pemahaman ilmiah mengenai bagaimana sistem operasi mempertahankan performa puncak sembari menjaga suhu perangkat tetap terkendali.

Topik Terkait: #Kernel Linux #CPU Governor

Artikel Terkait

Artikel lain dalam kategori Tweaking & Kinerja

Lihat Semua