症状分析

在优化3568系统启动的时候时候观察到有如下的log

[    5.471132][  T268] StorageDaemon: [main:264] sdc start
[    5.471402][  T268] StorageDaemon: [HandleFileCrypt:246] fscrypt cmd: init_global_key
[    5.471529][  T268] StorageDaemon: [CheckServiceStatus:58] CheckServiceStatus start
[    5.471643][  T268] random: sdc: uninitialized urandom read (4 bytes read)
[    5.473348][  T257] random: param_watcher: uninitialized urandom read (4 bytes read)
[    5.473752][  T266] random: cadaemon: uninitialized urandom read (4 bytes read)
[    5.474407][  T257] binder: 257:257 transaction failed 29189/-22, size 0-0 line 3325
[    5.475171][  T268] binder: 268:268 transaction failed 29189/-22, size 0-0 line 3325
[    5.475623][  T268] StorageDaemon: [CheckServiceStatus:62] samgr empty, retry
[    5.475711][  T268] binder: 268:268 transaction failed 29189/-22, size 0-0 line 3325
[    5.477758][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 0 times
[    5.488178][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 1 times
[    5.498586][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 2 times
[    5.509023][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 3 times
[    5.519488][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 4 times
[    5.529988][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 5 times
[    5.540390][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 6 times
[    5.550875][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 7 times
[    5.551175][  T261] [AUTH_CTRL] no auth data for this pid = 261
[    5.551175][  T261] , tgid
[    5.551182][  T261] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    5.551784][  T291] [AUTH_CTRL] no auth data for this pid = 261
[    5.551784][  T291] , tgid
[    5.551792][  T291] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    5.561251][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 8 times
[    5.563757][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS AppGallery Application Release', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    5.564278][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'ALL', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    5.564398][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS Application Provision Debug V2', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    5.564490][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: DevEcoTesting Release', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    5.564586][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HarmonyOS SDK debug tools', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    5.564668][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS Application Provision Debug V2', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    5.564757][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: DevEcoTesting Release', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    5.564836][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HarmonyOS SDK debug tools', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    5.564917][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'OpenHarmony Application Release', issuer = 'OpenHarmony Application CA', max_path_depth = 3
[    5.564997][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS AppGallery Application Release', issuer = 'Huawei CBG Software Signing Service CA Test', max_path_depth = 3
[    5.565069][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'ALL', issuer = 'Huawei CBG Software Signing Service CA Test', max_path_depth = 3
[    5.565145][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'OpenHarmony Application Release', issuer = 'OpenHarmony Application CA', max_path_depth = 3
[    5.565220][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS Application Provision Debug V2', issuer = 'Huawei CBG Software Signing Service CA Test', max_path_depth = 3
[    5.565302][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS Application Provision Debug V2', issuer = 'Huawei CBG Software Signing Service CA Test', max_path_depth = 3
[    5.565393][  T254] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Organization: ide_demo_app', issuer = 'OpenHarmony Application CA', max_path_depth = 3
[    5.571668][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 9 times
[    5.582042][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 10 times
[    5.592437][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 11 times
[    5.602885][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 12 times
[    5.607415][  T260] StorageDaemon: [main:101] storage_daemon start
[    5.610128][  T260] StorageDaemon: [ParasConfig:59] Param config complete
[    5.613257][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 13 times
[    5.623559][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 14 times
[    5.633841][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 15 times
[    5.644079][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 16 times
[    5.654389][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 17 times
[    5.664708][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 18 times
[    5.675015][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 19 times
[    5.688411][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 20 times
[    5.698722][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 21 times
[    5.708985][  T268] StorageDaemon: [CheckServiceStatus:68] check samgr 22 times
[    5.710128][  T260] StorageDaemon: [main:129] samgr is not null
[    5.716916][  T260] StorageDaemon: [main:132] AddSystemAbility: ret: 0, errno: 0
[    5.717978][  T260] StorageDaemon: [main:135] SubscribeSystemAbility for CLOUD_DAEMON_SERVICE: ret: 0, errno: 0
[    5.718613][  T260] StorageDaemon: [main:137] SubscribeSystemAbility for MANAGER_SERVICE: ret: 0, errno: 0
[    5.718687][  T260] StorageDaemon: [main:141] samgr GetSystemAbilityManager finish
[    5.721378][  T268] StorageDaemon: [CheckServiceStatus:92] CheckServiceStatus end, success
[    5.723343][  T260] StorageDaemon: [InitGlobalDeviceKey:129] enter
[    5.725214][  T302] [AUTH_CTRL] no auth data for this pid = 261
[    5.725214][  T302] , tgid
[    5.725225][  T302] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    5.726290][  T260] StorageDaemon: [UpgradeKeys:517] Upgrade of /data/service/el0/storage_daemon/sd/latest/shield
[    5.742212][  T260] StorageDaemon: [UpgradeKey:585] no need to upgrade
[    5.742280][  T260] StorageDaemon: [RestoreDeviceKey:93] enter
[    5.746280][  T304] [AUTH_CTRL] no auth data for this pid = 261
[    5.746280][  T304] , tgid
[    5.746290][  T304] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    5.794348][  T258] [I/xpm_kernel]test_print_info: /system/lib/platformsdk/libability_business_error.z.so -> type: dm, info: offset=0xe50 size=0xb60
[    5.794348][  T258]
[    5.877450][   T38] audit: type=1400 audit(1502154842.820:18): avc:  denied  { read } for  pid=257 comm="param_watcher" name="online" dev="sysfs" ino=4921 scontext=u:r:param_watcher:s0 tcontext=u:object_r:sysfs_devices_system_cpu:s0 tclass=file permissive=0
[    5.882058][   T38] audit: type=1400 audit(1502154842.823:19): avc:  denied  { read } for  pid=266 comm="cadaemon" name="online" dev="sysfs" ino=4921 scontext=u:r:cadaemon:s0 tcontext=u:object_r:sysfs_devices_system_cpu:s0 tclass=file permissive=0
[    5.890259][  T302] [AUTH_CTRL] no auth data for this pid = 261
[    5.890259][  T302] , tgid
[    5.890269][  T302] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    5.891491][   T38] audit: type=1400 audit(1502154842.833:20): avc:  denied  { read } for  pid=263 comm="storage_manager" name="online" dev="sysfs" ino=4921 scontext=u:r:storage_manager:s0 tcontext=u:object_r:sysfs_devices_system_cpu:s0 tclass=file permissive=0
[    5.906383][  T302] [AUTH_CTRL] no auth data for this pid = 261
[    5.906383][  T302] , tgid
[    5.906393][  T302] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    5.908001][  T316] [AUTH_CTRL] no auth data for this pid = 261
[    5.908001][  T316] , tgid
[    5.908011][  T316] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
** 198 console messages dropped **
[    5.915699][  T316] [AUTH_CTRL] no auth data for this pid = 261
[    5.915699][  T316] , tgid
[    5.915709][  T316] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    6.095936][  T149] rk-pcie 3c0800000.pcie: PCIe Linking... LTSSM is 0x0
[    6.492588][   T39] hungtask_base whitelist[0]-init-1
[    6.492735][   T39] hungtask_base whitelist[1]-appspawn-258
[    7.098628][  T258] [I/xpm_kernel]test_print_info: /system/lib/platformsdk/libudmf_client.z.so -> type: dm, info: offset=0x15814 size=0x60d0c
[    7.098628][  T258]
[    7.105954][  T149] rk-pcie 3c0800000.pcie: PCIe Linking... LTSSM is 0x0
[    8.122606][  T149] rk-pcie 3c0800000.pcie: PCIe Linking... LTSSM is 0x0
[    8.579266][    C0] random: crng init done
[    8.579307][    C0] random: 7 urandom warning(s) missed due to ratelimiting
[    8.579800][  T260] StorageDaemon: [DoRestoreKey:402] set keyEncryptType_ as KEY_CRYPT_HUKS success
[    8.585376][  T260] StorageDaemon: [Decrypt:435] Huks decrypt key start
[    8.585488][  T260] StorageDaemon: [AppendNonceAadToken:377] auth is empty, not to use secure access tag
[    8.590359][  T260] StorageDaemon: [RestoreDeviceKey:122] key restore success
[    8.590664][  T268] StorageDaemon: [HandleFileCrypt:257] fscrypt cmd: init_global_key success
[    8.590721][  T268] StorageDaemon: [main:281] sdc end
[    8.593740][    T1] [pid=1][Init][INFO][init_cmds.c:120]Sync exec: /system/bin/sdc result 0 1
[    8.593803][    T1] [pid=1][Init][INFO][init_common_cmds.c:771]Execute command "init_global_key  /data" took 3327 ms
[    8.596614][    T1] [pid=1][Init][INFO][fscrypt_control.c:221]Fscrypt policy init success
[    8.596752][    T1] [pid=1][Init][INFO][key_control.c:226]version 2 loaded
[    8.596769][    T1] [pid=1][Init][INFO][fscrypt_control.c:239]key path /data/service/el0/storage_daemon/sd, name /key_id
[    8.596840][    T1] [pid=1][Init][INFO][key_control.c:125]enter
[    8.597792][    T1] fscrypt: AES-256-CTS-CBC using implementation "cts-cbc-aes-ce"
[    8.597880][    T1] [pid=1][Init][INFO][key_control.c:93]success
[    8.602238][    T1] [pid=1][Init][INFO][fscrypt_control.c:190]Have been init
[    8.602335][    T1] [pid=1][Init][INFO][key_control.c:226]version 2 loaded
[    8.602353][    T1] [pid=1][Init][INFO][fscrypt_control.c:239]key path /data/service/el0/storage_daemon/sd, name /key_id
[    8.602428][    T1] [pid=1][Init][INFO][key_control.c:125]enter
[    8.602619][    T1] [pid=1][Init][INFO][key_control.c:93]success
[    8.610413][    T1] [pid=1][Init][INFO][fscrypt_control.c:190]Have been init
[    8.610511][    T1] [pid=1][Init][INFO][key_control.c:226]version 2 loaded
[    8.610528][    T1] [pid=1][Init][INFO][fscrypt_control.c:239]key path /data/service/el0/storage_daemon/sd, name /key_id
[    8.610603][    T1] [pid=1][Init][INFO][key_control.c:125]enter
[    8.610709][    T1] [pid=1][Init][INFO][key_control.c:93]success
[    8.611612][    T1] [pid=1][Init][INFO][init_cmds.c:107]Sync exec: /system/bin/sdc

这个sdc init_global_key的过程非常漫长耗时3s多,不可思议的长。

用户态分析

此类问题可以直接在log进行分析,从用户态到内核态这两种方式。用户态找到代码加logo定位那个函数延迟很高,然后再看内核。

这里直接给出答案:

foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/huks_master.cpp

KeyBlob HuksMaster::GenerateRandomKey(uint32_t keyLen)
{
    LOGD("enter, size %{public}d", keyLen);
    LOGI("%{public}s:%{public}d %{public}s size %{public}d",__FILE__,__LINE__,__FUNCTION__,keyLen);
    KeyBlob out(keyLen);
    if (out.IsEmpty()) {
        return out;
    }
    LOGI("%{public}s:%{public}d %{public}s",__FILE__,__LINE__,__FUNCTION__);
    auto ret = RAND_bytes(out.data.get(), out.size);
    if (ret <= 0) {
        LOGE("RAND_bytes failed return %{public}d, errno %{public}lu", ret, ERR_get_error());
        out.Clear();
    }
    LOGI("%{public}s:%{public}d %{public}s",__FILE__,__LINE__,__FUNCTION__);
    return out;
}

RAND_bytes函数执行耗费了大量的时间,这个函数为openssl获取随机数的,接下来就是再回到logo可以看到在这个长时间的卡顿中有个

urandom warning(s) missed due to ratelimiting 

的打印信息。

内核态分析

根据log (urandom warning(s) missed due to ratelimiting )定位代码

linux-5.10/drivers/char/random.c

static void __cold _credit_init_bits(size_t bits)
{
	unsigned int new, orig, add;
	unsigned long flags;

	if (!bits)
		return;

	add = min_t(size_t, bits, POOL_BITS);
	do {
		orig = READ_ONCE(input_pool.init_bits);
		new = min_t(unsigned int, POOL_BITS, orig + add);
	} while (cmpxchg(&input_pool.init_bits, orig, new) != orig);

	if (orig < POOL_READY_BITS && new >= POOL_READY_BITS) {
		crng_reseed(); /* Sets crng_init to CRNG_READY under base_crng.lock. */
		process_random_ready_list();
		wake_up_interruptible(&crng_init_wait);
		kill_fasync(&fasync, SIGIO, POLL_IN);
		pr_notice("crng init done\n");
		if (urandom_warning.missed)
			pr_notice("%d urandom warning(s) missed due to ratelimiting\n",
				  urandom_warning.missed);
	} else if (orig < POOL_EARLY_BITS && new >= POOL_EARLY_BITS) {
		spin_lock_irqsave(&base_crng.lock, flags);
		/* Check if crng_init is CRNG_EMPTY, to avoid race with crng_reseed(). */
		if (crng_init == CRNG_EMPTY) {
			extract_entropy(base_crng.key, sizeof(base_crng.key));
			crng_init = CRNG_EARLY;
		}
		spin_unlock_irqrestore(&base_crng.lock, flags);
	}
}
pr_notice("%d urandom warning(s) missed due to ratelimiting\n",
      urandom_warning.missed);

应该就是这个地方打印的,在这里加上dump_stack(),或者分析代码就可以找到这样一个调用关系。

getrandom系统调用-->
     wait_for_random_bytes -->
           try_to_generate_entropy-->
                       entropy_timer-->
                           credit_init_bits-->
                                 _credit_init_bits-->

原因很明显就是random驱动input_pool没有初始化导致在第一次调用的时候内核需要大量的时间去初始化。

优化方式

既然找到原因那就只要尽可能的提早调用wait_for_random_bytes就可以了,最早就是创建设备的时候直接初始化就可以了。

通过代码发现urandom设备是在linux-5.10/drivers/char/mem.c 的chr_dev_init函数实现的,在这里用一个线程去启动urandom的初始化应该就可以了。

代码如下:

static int do_wait_for_random_bytes(void * data)
{
    wait_for_random_bytes();
    return 0;
}

static int __init chr_dev_init(void)
{
	int minor;

	if (register_chrdev(MEM_MAJOR, "mem", &memory_fops))
		printk("unable to get major %d for memory devs\n", MEM_MAJOR);

	mem_class = class_create(THIS_MODULE, "mem");
	if (IS_ERR(mem_class))
		return PTR_ERR(mem_class);

	mem_class->devnode = mem_devnode;
	for (minor = 1; minor < ARRAY_SIZE(devlist); minor++) {
		if (!devlist[minor].name)
			continue;

		/*
		 * Create /dev/port?
		 */
		if ((minor == DEVPORT_MINOR) && !arch_has_dev_port())
			continue;
		if ((minor == DEVMEM_MINOR) && devmem_init_inode() != 0)
			continue;

		device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
			      NULL, devlist[minor].name);
	}

    struct task_struct *thread;
    thread = kthread_run(do_wait_for_random_bytes,NULL,"wait_for_random_bytes_thread");
    if (IS_ERR(thread)){
        printk("wait_for_random_bytes_thread thread create fail");
    }
	return tty_init();
}

            

创建一个新的内核线程执行do_wait_for_random_bytes,这样等init进程启动的时候urandom的数据input_pool就应该已经初始化完毕,编译刷机验证。

优化结果验证

[    4.393712][  T278] StorageDaemon: [main:264] sdc start
[    4.393863][  T278] StorageDaemon: [HandleFileCrypt:246] fscrypt cmd: init_global_key
[    4.393962][  T278] StorageDaemon: [CheckServiceStatus:58] CheckServiceStatus start
[    4.396547][  T278] binder: 278:278 transaction failed 29189/-22, size 0-0 line 3325
[    4.397704][  T278] StorageDaemon: [CheckServiceStatus:62] samgr empty, retry
[    4.397801][  T278] binder: 278:278 transaction failed 29189/-22, size 0-0 line 3325
[    4.398065][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 0 times
[    4.398877][  T267] binder: 267:267 transaction failed 29189/-22, size 0-0 line 3325
[    4.408499][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 1 times
[    4.418272][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS AppGallery Application Release', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    4.418826][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'ALL', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    4.419032][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS Application Provision Debug V2', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    4.419144][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: DevEcoTesting Release', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    4.419237][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HarmonyOS SDK debug tools', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    4.419332][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS Application Provision Debug V2', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    4.419421][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: DevEcoTesting Release', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    4.419512][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HarmonyOS SDK debug tools', issuer = 'Huawei CBG Software Signing Service CA', max_path_depth = 3
[    4.419605][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'OpenHarmony Application Release', issuer = 'OpenHarmony Application CA', max_path_depth = 3
[    4.419688][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS AppGallery Application Release', issuer = 'Huawei CBG Software Signing Service CA Test', max_path_depth = 3
[    4.419768][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'ALL', issuer = 'Huawei CBG Software Signing Service CA Test', max_path_depth = 3
[    4.419845][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'OpenHarmony Application Release', issuer = 'OpenHarmony Application CA', max_path_depth = 3
[    4.419923][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS Application Provision Debug V2', issuer = 'Huawei CBG Software Signing Service CA Test', max_path_depth = 3
[    4.420005][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Huawei: HOS Application Provision Debug V2', issuer = 'Huawei CBG Software Signing Service CA Test', max_path_depth = 3
[    4.420099][  T259] [I/code_sign_kernel]cert_chain_insert: add trusted cert: subject = 'Organization: ide_demo_app', issuer = 'OpenHarmony Application CA', max_path_depth = 3
[    4.420174][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 2 times
[    4.430598][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 3 times
[    4.431012][  T270] [I/xpm_kernel]test_print_info: /system/lib/platformsdk/libglobal_resmgr.z.so -> type: dm, info: offset=0x1f9a8 size=0x26218
[    4.431012][  T270] 
[    4.441005][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 4 times
[    4.451435][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 5 times
[    4.461789][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 6 times
[    4.466440][  T273] [AUTH_CTRL] no auth data for this pid = 273
[    4.466440][  T273] , tgid
[    4.466450][  T273] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    4.467243][  T299] [AUTH_CTRL] no auth data for this pid = 273
[    4.467243][  T299] , tgid
[    4.467255][  T299] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    4.472171][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 7 times
[    4.482572][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 8 times
[    4.493101][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 9 times
[    4.503513][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 10 times
[    4.513894][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 11 times
[    4.524276][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 12 times
[    4.534702][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 13 times
[    4.545081][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 14 times
[    4.555512][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 15 times
[    4.560246][  T270] StorageDaemon: [main:101] storage_daemon start
[    4.563168][  T270] StorageDaemon: [ParasConfig:59] Param config complete
[    4.565776][  T198] vendor storage:20190527 ret = -1
[    4.565852][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 16 times
[    4.576260][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 17 times
[    4.586651][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 18 times
[    4.596949][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 19 times
[    4.607863][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 20 times
[    4.618890][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 21 times
[    4.621943][  T299] [AUTH_CTRL] no auth data for this pid = 273
[    4.621943][  T299] , tgid
[    4.621954][  T299] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    4.629310][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 22 times
[    4.632884][  T300] [AUTH_CTRL] no auth data for this pid = 273
[    4.632884][  T300] , tgid
[    4.632893][  T300] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    4.639573][  T278] StorageDaemon: [CheckServiceStatus:68] check samgr 23 times
[    4.645823][  T273] [AUTH_CTRL] no auth data for this pid = 273
[    4.645823][  T273] , tgid
[    4.645835][  T273] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    4.647317][  T270] StorageDaemon: [main:129] samgr is not null
[    4.653628][  T278] StorageDaemon: [CheckServiceStatus:84] check storage daemon status 0 times
[    4.655991][  T300] [AUTH_CTRL] no auth data for this pid = 273
[    4.655991][  T300] , tgid
[    4.656000][  T300] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    4.656980][  T298] [AUTH_CTRL] no auth data for this pid = 273
[    4.656980][  T298] , tgid
[    4.656989][  T298] [QOS_CTRL] do_qos_ctrl_ioctl: pid not authorized
[    4.657464][  T270] StorageDaemon: [main:132] AddSystemAbility: ret: 0, errno: 0
[    4.658304][  T270] StorageDaemon: [main:135] SubscribeSystemAbility for CLOUD_DAEMON_SERVICE: ret: 0, errno: 0
[    4.658648][  T270] StorageDaemon: [main:137] SubscribeSystemAbility for MANAGER_SERVICE: ret: 0, errno: 0
[    4.658711][  T270] StorageDaemon: [main:141] samgr GetSystemAbilityManager finish
[    4.665266][  T278] StorageDaemon: [CheckServiceStatus:92] CheckServiceStatus end, success
[    4.667902][  T270] StorageDaemon: [InitGlobalDeviceKey:130] enter
[    4.670438][  T270] StorageDaemon: [UpgradeKeys:522] Upgrade of /data/service/el0/storage_daemon/sd/latest/shield
[    4.685077][  T270] StorageDaemon: [UpgradeKey:587] no need to upgrade
[    4.685150][  T270] StorageDaemon: [RestoreDeviceKey:93] enter
[    4.685195][  T270] StorageDaemon: [RestoreDeviceKey:98] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/key_manager.cpp:98 RestoreDeviceKey
[    4.685479][  T270] StorageDaemon: [RestoreDeviceKey:103] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/key_manager.cpp:103 RestoreDeviceKey
[    4.685520][  T270] StorageDaemon: [InitKey:67] enter
[    4.686083][  T270] StorageDaemon: [InitKey:72] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/base_key.cpp:72 InitKey
[    4.686140][  T270] StorageDaemon: [InitKey:77] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/base_key.cpp:77 InitKey
[    4.686175][  T270] StorageDaemon: [GenerateKeyBlob:88] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/base_key.cpp:88 GenerateKeyBlob
[    4.686223][  T270] StorageDaemon: [GenerateRandomKey:218] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/huks_master.cpp:218 GenerateRandomKey size 64
[    4.686260][  T270] StorageDaemon: [GenerateRandomKey:223] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/huks_master.cpp:223 GenerateRandomKey
[    4.695780][  T270] StorageDaemon: [GenerateRandomKey:229] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/huks_master.cpp:229 GenerateRandomKey
[    4.695928][  T270] StorageDaemon: [GenerateKeyBlob:90] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/base_key.cpp:90 GenerateKeyBlob
[    4.696008][  T270] StorageDaemon: [InitKey:82] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/base_key.cpp:82 InitKey
[    4.696084][  T270] StorageDaemon: [RestoreDeviceKey:109] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/key_manager.cpp:109 RestoreDeviceKey
[    4.696366][  T270] StorageDaemon: [DoRestoreKey:407] set keyEncryptType_ as KEY_CRYPT_HUKS success
[    4.700333][  T270] StorageDaemon: [Decrypt:440] Huks decrypt key start
[    4.700458][  T270] StorageDaemon: [AppendNonceAadToken:379] auth is empty, not to use secure access tag
[    4.703375][  T270] StorageDaemon: [RestoreDeviceKey:115] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/key_manager.cpp:115 RestoreDeviceKey
[    4.713238][  T270] StorageDaemon: [RestoreDeviceKey:121] ../../foundation/filemanagement/storage_service/services/storage_daemon/crypto/src/key_manager.cpp:121 RestoreDeviceKey
[    4.713321][  T270] StorageDaemon: [RestoreDeviceKey:123] key restore success
[    4.713590][  T278] StorageDaemon: [HandleFileCrypt:257] fscrypt cmd: init_global_key success
[    4.713635][  T278] StorageDaemon: [main:281] sdc end
[    4.716673][    T1] [pid=1][Init][INFO][init_cmds.c:120]Sync exec: /system/bin/sdc result 0 1
[    4.716740][    T1] [pid=1][Init][INFO][init_common_cmds.c:771]Execute command "init_global_key  /data" took 460 ms
[    4.720605][  T271] [I/xpm_kernel]test_print_info: /system/lib/platformsdk/libabsl_raw_logging_internal.z.so -> type: dm, info: offset=0x22f8 size=0x47a8
[    4.720605][  T271] 
[    4.723398][    T1] [pid=1][Init][INFO][fscrypt_control.c:221]Fscrypt policy init success
[    4.723511][    T1] [pid=1][Init][INFO][key_control.c:226]version 2 loaded
[    4.723540][    T1] [pid=1][Init][INFO][fscrypt_control.c:239]key path /data/service/el0/storage_daemon/sd, name /key_id
[    4.723617][    T1] [pid=1][Init][INFO][key_control.c:125]enter
[    4.724675][    T1] fscrypt: AES-256-CTS-CBC using implementation "cts-cbc-aes-ce"
[    4.724890][    T1] [pid=1][Init][INFO][key_control.c:93]success
[    4.730651][    T1] [pid=1][Init][INFO][fscrypt_control.c:190]Have been init
[    4.730737][    T1] [pid=1][Init][INFO][key_control.c:226]version 2 loaded
[    4.730753][    T1] [pid=1][Init][INFO][fscrypt_control.c:239]key path /data/service/el0/storage_daemon/sd, name /key_id
[    4.730828][    T1] [pid=1][Init][INFO][key_control.c:125]enter
[    4.730949][    T1] [pid=1][Init][INFO][key_control.c:93]success
[    4.743298][    T1] [pid=1][Init][INFO][fscrypt_control.c:190]Have been init
[    4.743466][    T1] [pid=1][Init][INFO][key_control.c:226]version 2 loaded
[    4.743491][    T1] [pid=1][Init][INFO][fscrypt_control.c:239]key path /data/service/el0/storage_daemon/sd, name /key_id
[    4.743571][    T1] [pid=1][Init][INFO][key_control.c:125]enter
[    4.743769][    T1] [pid=1][Init][INFO][key_control.c:93]success
[    4.745493][    T1] [pid=1][Init][INFO][init_cmds.c:107]Sync exec: /system/bin/sdc

直接优化2秒多。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐