Android Boot-time Readahead

本文介绍了一种通过预读取(readahead)技术来优化Android启动时间的方法。实验结果显示,在特定阶段应用预读取技术可以带来大约5%(1.5秒)的启动时间改善。文章还提供了用于测试和实现预读取功能的工具程序。

Android Boot-time Readahead

Here is information about Android Boot-Time Readahead

Presentation

This is the presentation I gave at ABS 2011.

abs2011_bird_readahead.pdf

Results

Bottom line results were an approximate 5% (1.5 seconds) improvement in boot time, using readahead on only a single portion of the boot sequence. A 9% improvement was expected, given the area of the boot sequence that was optimized. So, it didn't help as much as I'd hoped, but did help a little.

More testing is needed:

  • to determine why adjusting the I/O scheduling priority did not have the expected affect
  • to apply readahead to more part of the boot sequence
  • to test other methods to avoid interfering with foreground processing
    • like, manually halting and continuing readahead during the boot, and performing smaller reads

Programs

These are test programs, but there's nothing in them that prevents them from being used for actual systems. readahead does not intrinsically alter any functionality on the system. It only changes the contents of the page cache. Worst case behavior should be that things boot a bit slower. Best case behavior is that boot time improves a lot. Please measure with bootchart and let me know how it goes.

mincore

Mincore is a program I wrote to report the pages in the Linux page cache for requested files.

Here's the source:

Media:mincore.c

logsync

Logsync is a program to write a log message to both the kernel log buffer (printk), and the Android log buffer. On most systems, the timestamps are different between these two logging systems. This is useful to determine a unified ordering of events reported by these separate systems.

Media:logsync.c

treadahead

Tim's readahead - This is a test program to experiment with various readahead options. Besides actually performing readahead operations, it includes facilities for recording iowait before and after a readahead sequence, timing the duration of readahead operations, and changing things like the process scheduling priority, I/O scheduler, and I/O scheduling priority.

Media:treadahead-1.3.tgz

You can build this in context of the Android build system (using the included Android.mk) or using a regular Linux host compiler (using the included Makefile). Note that this would build for a 32-bit x86 system (which is what the Sony Internet TV is).

The source includes readahead.S, which is assembly for adding a wrapper for the readahead syscall on ARM systems. Bionic on ARM is missing the wrapper for the readahead syscall.

How to use Treadahead

programs

mincore is used to gather information about the blocks of a file that are in memory. You hand it a file list, and it outputs a list of blocks. Use the -r options to specify that the output should be in treadahead format.

treadahead is used to read files and parts of files into memory. You can specify the areas to read on the command line or in the file /readahead_list.txt

Each line in the readahead_list.txt file specifies a file to read, with syntax:

 <filename>[ area_list]
 area_list is: <offset>:<len>[,<offset>:<len>]

If the area_list is empty, then the whole file is read ahead.

Here is an example:

/system/framework/framework-res.apk
/system/app/Contacts.apk 0:4096,1282048:4096,1294336:4096,1470464:12288

This would read everything in framework-res.apk, and only certain portions of Contacts.apk

To build the needed data file, you need to follow these steps:

  • build a list of files to scan
  • use mincore with the list of files, to build a list of blocks to readahead
  • use treadahead in /init.rc to readahead the blocks

For testing, you may wish to remove blocks from the kernel page cache. You can do this with:

$ echo 1 >/proc/sys/vm/drop_caches

You can echo either '1', '2', or '3' to drop_caches. '1' drops pagecache, '2' drops dentries and inodes, and '3' drops both)

In sreadahead, the list of files is determined by examining trace data for file opens during the boot. For my early testing of treadahead, I used files that I found were consuming a lot of load time, from instrumenting the zygote process during its class preloading time (and also the package scanning during the application manager initialization)

Actual Usage

To build a list of files (for /readahead_files.txt), boot the system, then soon after system start do:

# find . -name "*.apk" | xargs mincore

Put the names of files with significant blocks in cache, into

       /readahead_files.txt

To create the block list reboot again and do:

# cat /readahead_files.txt | xargs mincore -r >/readahead_list.txt

To start the system with readahead turned on, add these lines to /init.rc

service treadahead /system/bin/treadahead -e -f
       oneshot

The '-e' puts treadahead in the background and the '-f' tells treadahead to read the list of files and blocks from the file /readahead_files.txt.

Testing boot speed on Android

To see the boot speed (and impact of readahead), read the 'events' log and the 'main' log.

Grab the event log with:

$ adb logcat -b events -d >eventlog1.txt

Grab the main log with:

$ adb logcat -d >mainlog1.txt

Find the class preload timestamps with:

$ grep boot eventlog1.txt

Find the total start time with:

$ grep enable_screen eventlog1.txt

Find the class preload durations with:

$ grep preloaded mainlog1.txt

Find the time to scan packages with:

$ grep Time mainlog1.txt

You can compare results from different runs by grepping with shell wildcards:

$ grep enable_screen *

or

$ grep Time *

Related material

See the presentation: Media: Android-bootup-time-celf-jamboree34.ppt

This has results for using 'cat <foo> >/dev/null' in init.rc, which improved boot time on the EVM board, which used an NFS root filesystem.

Line 18: 01-01 19:26:37.692480 1 1 E [ 14.908805]is_fastboot_adb_enabled: is_debuggable|cta|allcommode|aging test version,ingore Line 137: 01-01 19:26:38.165411 132 132 I [ 15.381736]wcd937x_codec wcd937x-codec: wcd_mbhc_start: usbc analog enabled Line 139: 01-01 19:26:38.165581 132 132 E [ 15.381906]wcd_mbhc_start: usbc_insert_pin in dt node is missing Line 462: 01-01 19:26:41.245371 902 902 I [ 18.461696]servicemanager: Caller(pid=2254,uid=0,sid=u:r:usbd:s0) Could not find android.hardware.usb.gadget.IUsbGadget/default in the VINTF manifest. No alternative instances declared in VINTF. Line 462: 01-01 19:26:41.245371 902 902 I [ 18.461696]servicemanager: Caller(pid=2254,uid=0,sid=u:r:usbd:s0) Could not find android.hardware.usb.gadget.IUsbGadget/default in the VINTF manifest. No alternative instances declared in VINTF. Line 462: 01-01 19:26:41.245371 902 902 I [ 18.461696]servicemanager: Caller(pid=2254,uid=0,sid=u:r:usbd:s0) Could not find android.hardware.usb.gadget.IUsbGadget/default in the VINTF manifest. No alternative instances declared in VINTF. Line 471: 01-01 19:26:41.384214 1 1 I [ 18.600539]: setusbconfig toadb Line 471: 01-01 19:26:41.384214 1 1 I [ 18.600539]: setusbconfig toadb Line 474: 01-01 19:26:41.397404 1705 1705 I [ 18.613729]msm-usb-hsphy 1613000.hsphy: Avail curr from USB = 2 Line 474: 01-01 19:26:41.397404 1705 1705 I [ 18.613729]msm-usb-hsphy 1613000.hsphy: Avail curr from USB = 2 Line 529: 01-01 19:26:41.659237 2423 2423 E [ 18.875562]: USB cable not connected Line 808: 01-01 19:26:45.895584 10 10 E [ 23.111909][kworke][0x22b3adb6][11:26:45.893158] wlan: [10:E:WMI] send_action_oui_cmd_tlv: Invalid action id Line 870: 01-01 19:26:51.533277 2386 2386 E [ 28.749602]: USB cable not connected Line 925: 01-01 19:26:55.678229 1 1 I [ 32.894554]init: processing action (vendor.sys.usb.adb.disabled=*) from (/system/etc/init/hw/init.usb.rc:23) Line 925: 01-01 19:26:55.678229 1 1 I [ 32.894554]init: processing action (vendor.sys.usb.adb.disabled=*) from (/system/etc/init/hw/init.usb.rc:23) Line 925: 01-01 19:26:55.678229 1 1 I [ 32.894554]init: processing action (vendor.sys.usb.adb.disabled=*) from (/system/etc/init/hw/init.usb.rc:23) Line 1076: 01-01 19:27:00.344412 3121 3121 W [ 37.560737]: stm_core(E) keyevent_handler(E) qcom_pm8008_regulator(E) ocp2130_bias(E) coresight(E) oplus_bsp_rfcablemonitor(E) oplus_secure_common(OE) oplus_security_keventupload(OE) qcom_vadc_common(E) icc_test(E) hung_task_enhance(E) oplus_mm_kevent(E) qti_battery_debug(E) oplus_bsp_fw_update(E) charger_ulog_glink(E) msm_tsens_driver(E) sps_drv(E) debugcc_sm6115(E) msm_geni_serial(E) usb_f_ccid(E) qcom_va_minidump(E) msm_lmh_dcvs(E) qpnp_lcdb_regulator(E) oplus_bsp_tp_custom(E) oplus_bsp_tp_notify(E) qcom_i2c_pmic(E) oplus_resctrl(E) ucsi_glink(E) oplus_bsp_sensor_feedback(E) init_watchdog(E) olc(E) hung_task_enh(E) pmic_glink_debug(E) oplus_exit_mm_optimize(E) bwmon(E) altmode_glink(E) oplus_bsp_mapped_protect(E) oplus_theia(E) phy_msm_qusb_v2(E) memlat(E) core_hang_detect(E) gpucc_sm6115(E) boot_stats(E) pmic_glink(E) rpm_master_stat(E) debugcc_khaje(E) dispcc_khaje(E) rq_stats(E) glink_pkt(E) cdsprm(E) oplus_bsp_dynamic_readahead(E) msm_gpi(E) cdsp_loader(E) eud(E) Line 1076: 01-01 19:27:00.344412 3121 3121 W [ 37.560737]: stm_core(E) keyevent_handler(E) qcom_pm8008_regulator(E) ocp2130_bias(E) coresight(E) oplus_bsp_rfcablemonitor(E) oplus_secure_common(OE) oplus_security_keventupload(OE) qcom_vadc_common(E) icc_test(E) hung_task_enhance(E) oplus_mm_kevent(E) qti_battery_debug(E) oplus_bsp_fw_update(E) charger_ulog_glink(E) msm_tsens_driver(E) sps_drv(E) debugcc_sm6115(E) msm_geni_serial(E) usb_f_ccid(E) qcom_va_minidump(E) msm_lmh_dcvs(E) qpnp_lcdb_regulator(E) oplus_bsp_tp_custom(E) oplus_bsp_tp_notify(E) qcom_i2c_pmic(E) oplus_resctrl(E) ucsi_glink(E) oplus_bsp_sensor_feedback(E) init_watchdog(E) olc(E) hung_task_enh(E) pmic_glink_debug(E) oplus_exit_mm_optimize(E) bwmon(E) altmode_glink(E) oplus_bsp_mapped_protect(E) oplus_theia(E) phy_msm_qusb_v2(E) memlat(E) core_hang_detect(E) gpucc_sm6115(E) boot_stats(E) pmic_glink(E) rpm_master_stat(E) debugcc_khaje(E) dispcc_khaje(E) rq_stats(E) glink_pkt(E) cdsprm(E) oplus_bsp_dynamic_readahead(E) msm_gpi(E) cdsp_loader(E) eud(E) Line 1078: 01-01 19:27:00.344518 3121 3121 W [ 37.560843]: gcc_khaje(E) oplus_bsp_task_sched(E) gcc_sm6115(E) mem_buf(E) qcom_dma_heaps(E) qseecom_dlkm(OE) oplus_kmsg_wb(E) phy_qcom_ufs_qmp_v3_660(E) phy_qcom_ufs_qrbtc_sdm845(E) phy_qcom_ufs_qmp_v4_khaje(E) qrtr(E) qcom_glink(E) qnoc_bengal(E) qcom_soc_wdt(E) ua_cpu_ioctl(E) smp2p(E) ufshcd_crypto_qti(E) usbpd(E) clk_qcom(E) crypto_qti_common(E) dcc_v2(E) device_info(E) icc_rpm(E) mem_buf_dev(E) oplus_bsp_frame_boost(E) mem_offline(E) memory_dump_v2(E) msm_poweroff(E) oplus_phoenix(E) pinctrl_bengal(E) oplus_schedinfo(E) qcom_iommu_util(E) phy_qcom_ufs(E) oplus_pmicwd(E) pinctrl_khaje(E) qcom_ipc_logging(E) qcom_logbuf_vh(E) rpm_smd_regulator(E) qcom_wdt_core(E) boot_mode(E) gdsc_regulator(E) crypto_qti_tz(E) minidump(E) oplus_bsp_sched_assist(E) oplus_project(E) oplus_mdmfeature(E) oplus_uprobe(E) pinctrl_msm(E) phoenix_reboot_speed(E) qcom_cpufreq_hw(E) qcom_spmi_pmic(E) qcom_smd(E) secure_buffer(E) socinfo(E) rpm_smd(E) qpnp_power_on(E) stub_regulator(E) Line 1079: 01-01 19:27:00.344580 3121 3121 W [ 37.560905]: buildvariant(E) bootloader_log(E) debug_regulator(E) cdt_integrity(E) iommu_logger(E) icc_debug(E) horae_shell_temp(E) kernel_fb(E) msm_dma_iommu_mapping(E) last_boot_reason(E) oplus_bsp_eas_opt(E) nvmem_qcom_spmi_sdam(E) nvmem_qfprom(E) oplus_bsp_midas(E) oplus_bsp_task_cpustats(E) oplus_bsp_mm_osvelte(E) oplus_bsp_task_load(E) oplus_storage_log(E) oplus_fdleak_check(E) oplus_power_notifier(E) oplus_omrg(E) oplus_ftm_mode(E) soc_sleep_stats(E) oplus_mdmrst(E) oplusboot(E) proxy_consumer(E) qcom_apcs_ipc_mailbox(E) smem(E) qcom_dcvs(E) qcom_cpu_vendor_hooks(E) qcom_enhance_watchdog(E) qcom_mpm(E) qcom_pmu_lib(E) qcom_scm(E) qnoc_qos_rpm(E) qrng_dlkm(OE) regmap_spmi(E) qti_regmap_debugfs(E) sdcardfs(E) shutdown_speed(E) spmi_pmic_arb(E) slimbus(E) qcom_hwspinlock(E) Line 1546: 01-01 19:27:22.292131 4918 4918 W [ 59.508456]: Modules linked in: camera(OE) machine_dlkm(OE) wcd937x_dlkm(OE) mbhc_dlkm(OE) fsa4480_i2c(E) oplus_chg_symbol(E) wlan(OE) ipa_clientsm(OE) rndisipam(OE) ipanetm(OE) oplus_chg(E) ipam(OE) rx_macro_dlkm(OE) va_macro_dlkm(OE) tx_macro_dlkm(OE) wcd9xxx_dlkm(OE) pinctrl_lpi_dlkm(OE) adsp_loader_dlkm(OE) audio_pkt_dlkm(OE) swr_ctrl_dlkm(OE) audio_prm_dlkm(OE) bolero_cdc_dlkm(OE) coresight_tmc(E) spf_core_dlkm(OE) gpr_dlkm(OE) usb_f_gsi(E) usb_f_qdss(E) q6_notifier_dlkm(OE) oplus_audio_sipa_tuning(OE) leds_qti_flash(E) oplus_bsp_tp_ft3658u_spi(E) oplus_bsp_tp_ft3419u(E) oplus_bsp_tp_td4377_noflash(E) rmnet_wlan(OE) oplus_bsp_tp_ft3518(E) wcd937x_slave_dlkm(OE) qcom_pon(E) oplus_bsp_tp_ilitek7807s(E) oplus_chg_v2(E) tcpc_rt1711h(E) tcpci_late_sync(E) nxp_nci(OE) oplus_audio_aw87xxx(OE) oplus_bsp_tp_focal_common(E) oplus_network_linkpower_module(OE) bt_fm_slim(OE) coresight_hwevent(E) coresight_tpdm(E) icnss2(OE) nq330(E) dump_reason(E) wsa881x_analog_dlkm(OE) Line 1546: 01-01 19:27:22.292131 4918 4918 W [ 59.508456]: Modules linked in: camera(OE) machine_dlkm(OE) wcd937x_dlkm(OE) mbhc_dlkm(OE) fsa4480_i2c(E) oplus_chg_symbol(E) wlan(OE) ipa_clientsm(OE) rndisipam(OE) ipanetm(OE) oplus_chg(E) ipam(OE) rx_macro_dlkm(OE) va_macro_dlkm(OE) tx_macro_dlkm(OE) wcd9xxx_dlkm(OE) pinctrl_lpi_dlkm(OE) adsp_loader_dlkm(OE) audio_pkt_dlkm(OE) swr_ctrl_dlkm(OE) audio_prm_dlkm(OE) bolero_cdc_dlkm(OE) coresight_tmc(E) spf_core_dlkm(OE) gpr_dlkm(OE) usb_f_gsi(E) usb_f_qdss(E) q6_notifier_dlkm(OE) oplus_audio_sipa_tuning(OE) leds_qti_flash(E) oplus_bsp_tp_ft3658u_spi(E) oplus_bsp_tp_ft3419u(E) oplus_bsp_tp_td4377_noflash(E) rmnet_wlan(OE) oplus_bsp_tp_ft3518(E) wcd937x_slave_dlkm(OE) qcom_pon(E) oplus_bsp_tp_ilitek7807s(E) oplus_chg_v2(E) tcpc_rt1711h(E) tcpci_late_sync(E) nxp_nci(OE) oplus_audio_aw87xxx(OE) oplus_bsp_tp_focal_common(E) oplus_network_linkpower_module(OE) bt_fm_slim(OE) coresight_hwevent(E) coresight_tpdm(E) icnss2(OE) nq330(E) dump_reason(E) wsa881x_analog_dlkm(OE) Line 1548: 01-01 19:27:22.292323 4918 4918 W [ 59.508648]: oplus_networks_tuning(OE) pm8941_pwrkey(E) coresight_remote_etm(E) leds_aw2023(E) qti_qmi_sensor(E) usb_f_diag(E) rt_regmap(E) bcl_soc(E) cpu_hotplug(E) cnss_prealloc(OE) qcom_spmi_temp_alarm(E) oplus_security_guard(OE) qcom_spmi_adc_tm5(E) reboot_mode(E) regulator_cdev(E) i2c_msm_geni(E) qcom_iommu_debug(E) oplus_bsp_tp_ilitek_common(E) qrtr_smd(E) thermal_pause(E) ehset(E) msm_mmrm(OE) leds_qpnp_vibrator_ldo(E) ufcs_class(E) cpufreq_ondemand(E) game_opt(OE) coresight_tgu(E) oplus_data_module(OE) stm_console(E) oplus_audio_pa_manager(OE) qcom_pil_info(E) phy_msm_ssusb_qmp(E) msm_sharedmem(E) oplus_stability_helper(OE) phy_msm_qusb(E) iolimit(E) pmic_monitor(E) spi_msm_geni(E) qcom_spmi_adc5(E) oplus_bsp_memleak_detect(OE) ipa_fmwk(E) msm_qmp(E) oplus_bsp_ir_core(E) qfprom_sys(E) cx_ipeak(E) oplus_bsp_dfr_ubt(E) guestvm_loader(E) qcom_cpufreq_hw_debug(E) rpm_smd_debug(E) leds_qpnp_flash_v2(E) tz_log_dlkm(OE) oplus_game_first(OE) shutdown_detect(E) Line 1548: 01-01 19:27:22.292323 4918 4918 W [ 59.508648]: oplus_networks_tuning(OE) pm8941_pwrkey(E) coresight_remote_etm(E) leds_aw2023(E) qti_qmi_sensor(E) usb_f_diag(E) rt_regmap(E) bcl_soc(E) cpu_hotplug(E) cnss_prealloc(OE) qcom_spmi_temp_alarm(E) oplus_security_guard(OE) qcom_spmi_adc_tm5(E) reboot_mode(E) regulator_cdev(E) i2c_msm_geni(E) qcom_iommu_debug(E) oplus_bsp_tp_ilitek_common(E) qrtr_smd(E) thermal_pause(E) ehset(E) msm_mmrm(OE) leds_qpnp_vibrator_ldo(E) ufcs_class(E) cpufreq_ondemand(E) game_opt(OE) coresight_tgu(E) oplus_data_module(OE) stm_console(E) oplus_audio_pa_manager(OE) qcom_pil_info(E) phy_msm_ssusb_qmp(E) msm_sharedmem(E) oplus_stability_helper(OE) phy_msm_qusb(E) iolimit(E) pmic_monitor(E) spi_msm_geni(E) qcom_spmi_adc5(E) oplus_bsp_memleak_detect(OE) ipa_fmwk(E) msm_qmp(E) oplus_bsp_ir_core(E) qfprom_sys(E) cx_ipeak(E) oplus_bsp_dfr_ubt(E) guestvm_loader(E) qcom_cpufreq_hw_debug(E) rpm_smd_debug(E) leds_qpnp_flash_v2(E) tz_log_dlkm(OE) oplus_game_first(OE) shutdown_detect(E) Line 1548: 01-01 19:27:22.292323 4918 4918 W [ 59.508648]: oplus_networks_tuning(OE) pm8941_pwrkey(E) coresight_remote_etm(E) leds_aw2023(E) qti_qmi_sensor(E) usb_f_diag(E) rt_regmap(E) bcl_soc(E) cpu_hotplug(E) cnss_prealloc(OE) qcom_spmi_temp_alarm(E) oplus_security_guard(OE) qcom_spmi_adc_tm5(E) reboot_mode(E) regulator_cdev(E) i2c_msm_geni(E) qcom_iommu_debug(E) oplus_bsp_tp_ilitek_common(E) qrtr_smd(E) thermal_pause(E) ehset(E) msm_mmrm(OE) leds_qpnp_vibrator_ldo(E) ufcs_class(E) cpufreq_ondemand(E) game_opt(OE) coresight_tgu(E) oplus_data_module(OE) stm_console(E) oplus_audio_pa_manager(OE) qcom_pil_info(E) phy_msm_ssusb_qmp(E) msm_sharedmem(E) oplus_stability_helper(OE) phy_msm_qusb(E) iolimit(E) pmic_monitor(E) spi_msm_geni(E) qcom_spmi_adc5(E) oplus_bsp_memleak_detect(OE) ipa_fmwk(E) msm_qmp(E) oplus_bsp_ir_core(E) qfprom_sys(E) cx_ipeak(E) oplus_bsp_dfr_ubt(E) guestvm_loader(E) qcom_cpufreq_hw_debug(E) rpm_smd_debug(E) leds_qpnp_flash_v2(E) tz_log_dlkm(OE) oplus_game_first(OE) shutdown_detect(E) Line 1549: 01-01 19:27:22.292414 4918 4918 W [ 59.508739]: qti_qmi_cdev(E) rpm_smd_cooling_device(E) rtc_pm8xxx(E) uff_fp_driver(E) bcl_pmic5(E) oplus_nfc(E) oplus_bsp_tp_comon(E) oplus_wifismartantenna(OE) qcom_sysmon(E) oplus_camera_wl2868c(E) oplus_stats_calc(OE) msm_performance(E) usb_f_cdev(E) dump_device_info(E) aw_breath_algorithm(E) frpc_adsprpc(E) qcom_lpm(E) phy_msm_snps_hs(E) f_fs_ipc_log(E) phy_qcom_emu(E) oplus_io_monitor(E) oplus_score(OE) coresight_stm(E) coresight_replicator(E) wcd_core_dlkm(OE) test_kit(E) refgen(E) qti_devfreq_cdev(E) wl2866d_regulator(E) oplus_sensor(E) q6_dlkm(OE) aw37004_regulator(E) fan53870(E) lmh_cpu_vdd_cdev(E) oplus_mm_kevent_fb(E) snd_usb_audio_qmi(E) cnss_utils(OE) q6_pdr_dlkm(OE) sg(E) oplus_freeze_process(OE) rdbg(E) oplus_binder_strategy(E) oplus_app_monitor(OE) snd_event_dlkm(OE) oplus_secure_harden(OE) oplus_qr_scan(OE) dispcc_sm6115(E) qcom_ramdump(E) qpnp_pdphy(E) pd_dbg_info(E) usb_bam(E) stm_p_basic(E) ordump(E) cfg80211(E) phy_generic(E) combkey_monitor(E) Line 1549: 01-01 19:27:22.292414 4918 4918 W [ 59.508739]: qti_qmi_cdev(E) rpm_smd_cooling_device(E) rtc_pm8xxx(E) uff_fp_driver(E) bcl_pmic5(E) oplus_nfc(E) oplus_bsp_tp_comon(E) oplus_wifismartantenna(OE) qcom_sysmon(E) oplus_camera_wl2868c(E) oplus_stats_calc(OE) msm_performance(E) usb_f_cdev(E) dump_device_info(E) aw_breath_algorithm(E) frpc_adsprpc(E) qcom_lpm(E) phy_msm_snps_hs(E) f_fs_ipc_log(E) phy_qcom_emu(E) oplus_io_monitor(E) oplus_score(OE) coresight_stm(E) coresight_replicator(E) wcd_core_dlkm(OE) test_kit(E) refgen(E) qti_devfreq_cdev(E) wl2866d_regulator(E) oplus_sensor(E) q6_dlkm(OE) aw37004_regulator(E) fan53870(E) lmh_cpu_vdd_cdev(E) oplus_mm_kevent_fb(E) snd_usb_audio_qmi(E) cnss_utils(OE) q6_pdr_dlkm(OE) sg(E) oplus_freeze_process(OE) rdbg(E) oplus_binder_strategy(E) oplus_app_monitor(OE) snd_event_dlkm(OE) oplus_secure_harden(OE) oplus_qr_scan(OE) dispcc_sm6115(E) qcom_ramdump(E) qpnp_pdphy(E) pd_dbg_info(E) usb_bam(E) stm_p_basic(E) ordump(E) cfg80211(E) phy_generic(E) combkey_monitor(E) Line 1549: 01-01 19:27:22.292414 4918 4918 W [ 59.508739]: qti_qmi_cdev(E) rpm_smd_cooling_device(E) rtc_pm8xxx(E) uff_fp_driver(E) bcl_pmic5(E) oplus_nfc(E) oplus_bsp_tp_comon(E) oplus_wifismartantenna(OE) qcom_sysmon(E) oplus_camera_wl2868c(E) oplus_stats_calc(OE) msm_performance(E) usb_f_cdev(E) dump_device_info(E) aw_breath_algorithm(E) frpc_adsprpc(E) qcom_lpm(E) phy_msm_snps_hs(E) f_fs_ipc_log(E) phy_qcom_emu(E) oplus_io_monitor(E) oplus_score(OE) coresight_stm(E) coresight_replicator(E) wcd_core_dlkm(OE) test_kit(E) refgen(E) qti_devfreq_cdev(E) wl2866d_regulator(E) oplus_sensor(E) q6_dlkm(OE) aw37004_regulator(E) fan53870(E) lmh_cpu_vdd_cdev(E) oplus_mm_kevent_fb(E) snd_usb_audio_qmi(E) cnss_utils(OE) q6_pdr_dlkm(OE) sg(E) oplus_freeze_process(OE) rdbg(E) oplus_binder_strategy(E) oplus_app_monitor(OE) snd_event_dlkm(OE) oplus_secure_harden(OE) oplus_qr_scan(OE) dispcc_sm6115(E) qcom_ramdump(E) qpnp_pdphy(E) pd_dbg_info(E) usb_bam(E) stm_p_basic(E) ordump(E) cfg80211(E) phy_generic(E) combkey_monitor(E) Line 1550: 01-01 19:27:22.292523 4918 4918 W [ 59.508848]: stm_core(E) keyevent_handler(E) qcom_pm8008_regulator(E) ocp2130_bias(E) coresight(E) oplus_bsp_rfcablemonitor(E) oplus_secure_common(OE) oplus_security_keventupload(OE) qcom_vadc_common(E) icc_test(E) hung_task_enhance(E) oplus_mm_kevent(E) qti_battery_debug(E) oplus_bsp_fw_update(E) charger_ulog_glink(E) msm_tsens_driver(E) sps_drv(E) debugcc_sm6115(E) msm_geni_serial(E) usb_f_ccid(E) qcom_va_minidump(E) msm_lmh_dcvs(E) qpnp_lcdb_regulator(E) oplus_bsp_tp_custom(E) oplus_bsp_tp_notify(E) qcom_i2c_pmic(E) oplus_resctrl(E) ucsi_glink(E) oplus_bsp_sensor_feedback(E) init_watchdog(E) olc(E) hung_task_enh(E) pmic_glink_debug(E) oplus_exit_mm_optimize(E) bwmon(E) altmode_glink(E) oplus_bsp_mapped_protect(E) oplus_theia(E) phy_msm_qusb_v2(E) memlat(E) core_hang_detect(E) gpucc_sm6115(E) boot_stats(E) pmic_glink(E) rpm_master_stat(E) debugcc_khaje(E) dispcc_khaje(E) rq_stats(E) glink_pkt(E) cdsprm(E) oplus_bsp_dynamic_readahead(E) msm_gpi(E) cdsp_loader(E) eud(E) Line 1550: 01-01 19:27:22.292523 4918 4918 W [ 59.508848]: stm_core(E) keyevent_handler(E) qcom_pm8008_regulator(E) ocp2130_bias(E) coresight(E) oplus_bsp_rfcablemonitor(E) oplus_secure_common(OE) oplus_security_keventupload(OE) qcom_vadc_common(E) icc_test(E) hung_task_enhance(E) oplus_mm_kevent(E) qti_battery_debug(E) oplus_bsp_fw_update(E) charger_ulog_glink(E) msm_tsens_driver(E) sps_drv(E) debugcc_sm6115(E) msm_geni_serial(E) usb_f_ccid(E) qcom_va_minidump(E) msm_lmh_dcvs(E) qpnp_lcdb_regulator(E) oplus_bsp_tp_custom(E) oplus_bsp_tp_notify(E) qcom_i2c_pmic(E) oplus_resctrl(E) ucsi_glink(E) oplus_bsp_sensor_feedback(E) init_watchdog(E) olc(E) hung_task_enh(E) pmic_glink_debug(E) oplus_exit_mm_optimize(E) bwmon(E) altmode_glink(E) oplus_bsp_mapped_protect(E) oplus_theia(E) phy_msm_qusb_v2(E) memlat(E) core_hang_detect(E) gpucc_sm6115(E) boot_stats(E) pmic_glink(E) rpm_master_stat(E) debugcc_khaje(E) dispcc_khaje(E) rq_stats(E) glink_pkt(E) cdsprm(E) oplus_bsp_dynamic_readahead(E) msm_gpi(E) cdsp_loader(E) eud(E) Line 1552: 01-01 19:27:22.292697 4918 4918 W [ 59.509022]: gcc_khaje(E) oplus_bsp_task_sched(E) gcc_sm6115(E) mem_buf(E) qcom_dma_heaps(E) qseecom_dlkm(OE) oplus_kmsg_wb(E) phy_qcom_ufs_qmp_v3_660(E) phy_qcom_ufs_qrbtc_sdm845(E) phy_qcom_ufs_qmp_v4_khaje(E) qrtr(E) qcom_glink(E) qnoc_bengal(E) qcom_soc_wdt(E) ua_cpu_ioctl(E) smp2p(E) ufshcd_crypto_qti(E) usbpd(E) clk_qcom(E) crypto_qti_common(E) dcc_v2(E) device_info(E) icc_rpm(E) mem_buf_dev(E) oplus_bsp_frame_boost(E) mem_offline(E) memory_dump_v2(E) msm_poweroff(E) oplus_phoenix(E) pinctrl_bengal(E) oplus_schedinfo(E) qcom_iommu_util(E) phy_qcom_ufs(E) oplus_pmicwd(E) pinctrl_khaje(E) qcom_ipc_logging(E) qcom_logbuf_vh(E) rpm_smd_regulator(E) qcom_wdt_core(E) boot_mode(E) gdsc_regulator(E) crypto_qti_tz(E) minidump(E) oplus_bsp_sched_assist(E) oplus_project(E) oplus_mdmfeature(E) oplus_uprobe(E) pinctrl_msm(E) phoenix_reboot_speed(E) qcom_cpufreq_hw(E) qcom_spmi_pmic(E) qcom_smd(E) secure_buffer(E) socinfo(E) rpm_smd(E) qpnp_power_on(E) stub_regulator(E) 这个是对应时间的kernel日志
最新发布
08-13
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值