openharmony rk3568内核开机优化random提速2s
症状分析
在优化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秒多。
更多推荐
所有评论(0)