-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
打RT补丁出现偶发性抖动有什么方法排查? #260
Comments
你好,能问一下你们RT补丁是怎么打的吗? |
我也想知道,clone了rt分支的kernel代码 但是不知道怎么配置,make menuconfig也没有配置全实时系统的地方,应该是没有打补丁,但是不知道怎么打补丁的 |
你好:
可以参考这个x86 的链接中的前5步
https://blog.csdn.net/lsky380/article/details/90769058
…------------------ 原始邮件 ------------------
发件人: "rockchip-linux/kernel" ***@***.***>;
发送时间: 2023年6月16日(星期五) 下午4:20
***@***.***>;
***@***.******@***.***>;
主题: Re: [rockchip-linux/kernel] 打RT补丁出现偶发性抖动有什么方法排查? (Issue #260)
你好,能问一下你们RT补丁是怎么打的吗?
***@***.***
我也想知道,clone了rt分支的kernel代码 但是不知道怎么配置,make menuconfig也没有配置全实时系统的地方,应该是没有打补丁,但是不知道怎么打补丁的
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
Add various tests to check maximum number of supported programs being attached: # ./vmtest.sh -- ./test_progs -t tc_opts [...] ./test_progs -t tc_opts [ 1.185325] bpf_testmod: loading out-of-tree module taints kernel. [ 1.186826] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel [ 1.270123] tsc: Refined TSC clocksource calibration: 3407.988 MHz [ 1.272428] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fc932722, max_idle_ns: 440795381586 ns [ 1.276408] clocksource: Switched to clocksource tsc rockchip-linux#252 tc_opts_after:OK rockchip-linux#253 tc_opts_append:OK rockchip-linux#254 tc_opts_basic:OK rockchip-linux#255 tc_opts_before:OK rockchip-linux#256 tc_opts_chain_classic:OK rockchip-linux#257 tc_opts_chain_mixed:OK rockchip-linux#258 tc_opts_delete_empty:OK rockchip-linux#259 tc_opts_demixed:OK rockchip-linux#260 tc_opts_detach:OK rockchip-linux#261 tc_opts_detach_after:OK rockchip-linux#262 tc_opts_detach_before:OK rockchip-linux#263 tc_opts_dev_cleanup:OK rockchip-linux#264 tc_opts_invalid:OK rockchip-linux#265 tc_opts_max:OK <--- (new test) rockchip-linux#266 tc_opts_mixed:OK rockchip-linux#267 tc_opts_prepend:OK rockchip-linux#268 tc_opts_replace:OK rockchip-linux#269 tc_opts_revision:OK Summary: 18/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
Add a new test case which performs double query of the bpf_mprog through libbpf API, but also via raw bpf(2) syscall. This is testing to gather first the count and then in a subsequent probe the full information with the program array without clearing passed structs in between. # ./vmtest.sh -- ./test_progs -t tc_opts [...] ./test_progs -t tc_opts [ 1.398818] tsc: Refined TSC clocksource calibration: 3407.999 MHz [ 1.400263] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fd336761, max_idle_ns: 440795243819 ns [ 1.402734] clocksource: Switched to clocksource tsc [ 1.426639] bpf_testmod: loading out-of-tree module taints kernel. [ 1.428112] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel rockchip-linux#252 tc_opts_after:OK rockchip-linux#253 tc_opts_append:OK rockchip-linux#254 tc_opts_basic:OK rockchip-linux#255 tc_opts_before:OK rockchip-linux#256 tc_opts_chain_classic:OK rockchip-linux#257 tc_opts_chain_mixed:OK rockchip-linux#258 tc_opts_delete_empty:OK rockchip-linux#259 tc_opts_demixed:OK rockchip-linux#260 tc_opts_detach:OK rockchip-linux#261 tc_opts_detach_after:OK rockchip-linux#262 tc_opts_detach_before:OK rockchip-linux#263 tc_opts_dev_cleanup:OK rockchip-linux#264 tc_opts_invalid:OK rockchip-linux#265 tc_opts_max:OK rockchip-linux#266 tc_opts_mixed:OK rockchip-linux#267 tc_opts_prepend:OK rockchip-linux#268 tc_opts_query:OK <--- (new test) rockchip-linux#269 tc_opts_replace:OK rockchip-linux#270 tc_opts_revision:OK Summary: 19/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Martin KaFai Lau <[email protected]>
Add a new test case to query on an empty bpf_mprog and pass the revision directly into expected_revision for attachment to assert that this does succeed. ./test_progs -t tc_opts [ 1.406778] tsc: Refined TSC clocksource calibration: 3407.990 MHz [ 1.408863] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x311fcaf6eb0, max_idle_ns: 440795321766 ns [ 1.412419] clocksource: Switched to clocksource tsc [ 1.428671] bpf_testmod: loading out-of-tree module taints kernel. [ 1.430260] bpf_testmod: module verification failed: signature and/or required key missing - tainting kernel rockchip-linux#252 tc_opts_after:OK rockchip-linux#253 tc_opts_append:OK rockchip-linux#254 tc_opts_basic:OK rockchip-linux#255 tc_opts_before:OK rockchip-linux#256 tc_opts_chain_classic:OK rockchip-linux#257 tc_opts_chain_mixed:OK rockchip-linux#258 tc_opts_delete_empty:OK rockchip-linux#259 tc_opts_demixed:OK rockchip-linux#260 tc_opts_detach:OK rockchip-linux#261 tc_opts_detach_after:OK rockchip-linux#262 tc_opts_detach_before:OK rockchip-linux#263 tc_opts_dev_cleanup:OK rockchip-linux#264 tc_opts_invalid:OK rockchip-linux#265 tc_opts_max:OK rockchip-linux#266 tc_opts_mixed:OK rockchip-linux#267 tc_opts_prepend:OK rockchip-linux#268 tc_opts_query:OK rockchip-linux#269 tc_opts_query_attach:OK <--- (new test) rockchip-linux#270 tc_opts_replace:OK rockchip-linux#271 tc_opts_revision:OK Summary: 20/0 PASSED, 0 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Martin KaFai Lau <[email protected]>
我的邮箱 [email protected] 谢谢。
B 介绍一下,我的实践和硬件情况。 |
我的邮箱 [email protected] 谢谢。
B 介绍一下,我的实践和硬件情况。 |
我想开启 cpufreq,把cpu模式调整为 performance,看看是否能缓解抖动。但 打开 cpufreq 启动内核就崩溃了。 |
这个内核崩溃问题, 我已经解决了。 我用的是rk3588 |
这个中断是系统核心timer服务,至关重要。其通过request_percpu_irq注册中断isr,并不是常规request_irq或request_thread_irq,无法线程化。 继续分析崩溃调用栈,在崩溃前最后的操作为cpufreq_cpu_get,通过分析其源码,基本找到__account_system_time函数中调用了cpufreq_acct_update_power,其中又调用了rt_spin_lock函数导致崩溃。 通过分析cpufreq_acct_update_power函数,发现通过宏定义:CONFIG_CPU_FREQ_TIMES可以屏蔽该函数,进而不调用rt_spin_lock。 经测试,在menuconfig中,屏蔽CONFIG_CPU_FREQ_TIMES后,系统能正常启动到login环节。 2) 然后这个panic 解决后,我就能进入系统 登陆。 也能进行cyclictest 。 又解决了另外2个calldump 增加rt 系统稳定性。 1 实时内核(preempt rt ) vs 非实时内核(non rt) 性能测试完成。 加压stress-ng --cpu 16 -l 100 (16个cpu线程,每个cpu负载100%) --io 20(20个io线程), --vm 100 --vm-bytes 500M(100个内存线程, 每个分配500M 内存), --sock 100(100个socket线程), --hdd 50(50个磁盘读写线程)。 1.1)cycltest 启动8个实时进程。 最小延迟在2-12 微秒,ACt在6-32 微妙,平均延迟在9-22 微秒。 最大延迟在46-110 微妙。 1.2) 非实时内核。 cycletest 最小延迟4微妙,Act 在11-52微秒,平均延迟在 11-52微妙。最大延迟4362-11023 微秒(而且比例很多)2.1)及时没有压力情况下, 非实时内核最大延迟也很高(1844-7370),实时内核最大延迟(11-40微妙)。 3.1)全部种类压力stress-ng 测试,创建1000个线程,每个线程会做所有种类压力(cpu,内存,磁盘,时钟,网络。 大概有30多种),10多分钟之后,实时内核会崩溃。 calldump |
calldump 并不影响linux系统启动和运行。
|
1、使用了亲和性
The text was updated successfully, but these errors were encountered: