当前位置: 首页 > news >正文

建德广元建设有限公司网站网站地址搜索

建德广元建设有限公司网站,网站地址搜索,网络营销客户的心里特征,浙江建设厅网站查询文章目录 linux kernel trace配置trace内核配置trace接口使用通用配置Events配置Function配置Function graph配置Stack trace设置 跟踪器tracer功能描述 使用示例1.irqsoff2.preemptoff3.preemptirqsoff linux kernel trace 配置 源码路径#xff1a; kernel/trace trace内… 文章目录 linux kernel trace配置trace内核配置trace接口使用通用配置Events配置Function配置Function graph配置Stack trace设置 跟踪器tracer功能描述 使用示例1.irqsoff2.preemptoff3.preemptirqsoff linux kernel trace 配置 源码路径 kernel/trace trace内核配置 CONFIG_TRACINGy CONFIG_IRQSOFF_TRACERy CONFIG_PREEMPT_TRACERy CONFIG_FUNCTION_TRACERy CONFIG_PREEMPTIRQ_TRACEPOINTSy CONFIG_FUNCTION_GRAPH_TRACERytrace接口使用 /sys/kernel/debug/tracing目录下提供了ftrace的设置和属性接口对ftrace的配置可以通过echo 通用配置 available_tracers-------------当前编译及内核的跟踪器列表current_tracer必须是这里面支持的跟踪器。 current_tracer----------------用于设置或者显示当前使用的跟踪器列表。系统启动缺省值为nop使用echo将跟踪器名字写入即可打开。可以通过写入nop重置跟踪器。 buffer_size_kb----------------用于设置单个CPU所使用的跟踪缓存的大小。跟踪缓存为RingBuffer形式如果跟踪太多旧的信息会被新的跟踪信息覆盖掉。需要先将current_trace设置为nop才可以。 buffer_total_size_kb----------显示所有的跟踪缓存大小不同之处在于buffer_size_kb是单个CPU的buffer_total_size_kb是所有CPU的和。free_buffer-------------------此文件用于在一个进程被关闭后同时释放RingBuffer内存并将调整大小到最小值。 hwlat_detector/--------------Hardware Latency Detector文件夹 instances/--------------------创建不同的trace buffer实例可以在不同的trace buffers中分开记录。 tracing_cpumask-------------可以通过此文件设置允许跟踪特定CPU二进制格式。 per_cpu-----------------------CPU相关的trace信息包括stats、trace、trace_pipe和trace_pipe_raw。stats当前CPU的trace统计信息trace当前CPU的trace文件。trace_pipe当前CPU的trace_pipe文件。 printk_formats----------------提供给工具读取原始格式trace的文件。 saved_cmdlines---------------存放pid对应的comm名称作为ftrace的cache这样ftrace中不光能显示pid还能显示comm。 saved_cmdlines_size----------saved_cmdlines的数目 snapshot----------------------是对trace的snapshot。echo 0 清空缓存并释放对应内存。echo 1 进行对当前trace进行snapshot如没有内存则分配。echo 2 清空缓存不释放也不分配内存。 trace--------------------------查看获取到的跟踪信息的接口echo trace可以清空当前RingBuffer。 trace_pipe--------------------输出和trace一样的内容但是此文件输出Trace同时将RingBuffer中的内容删除这样就避免了RingBuffer的溢出。可以通过cat trace_pipe trace.txt 保存文件。 trace_clock-------------------显示当前Trace的timestamp所基于的时钟默认使用local时钟。local默认时钟可能无法在不同CPU间同步global不同CUP间同步但是可能比local慢counter这是一个跨CPU计数器需要分析不同CPU间event顺序比较有效。 trace_marker-----------------从用户空间写入标记到trace中用于用户空间行为和内核时间同步。 trace_marker_raw------------以二进制格式写入到trace中。 trace_options----------------控制Trace打印内容或者操作跟踪器可以通过trace_options添加很多附加信息。 options----------------------trace选项的一系列文件和trace_options对应。 trace_stat/-------------------每个CPU的Trace统计信息 tracing_max_latency--------记录Tracer的最大延时。例如最大中断disable时间。最大时间被记录到本文件对应的trace被记录到“trace”文件。新的trace最有大于现在的max latency胡才会被记录。echo xxx tracing_max_latency // 手工设置一个门限只有大于门限才会被记录。 tracing_on-------------------用于控制跟踪打开或停止0停止跟踪1继续跟踪。 tracing_thresh---------------延时记录Trace的阈值当延时超过此值时才开始记录Trace。单位是ms只有非0才起作用。 Events配置 available_events-------------列出系统中所有可用的Trace events分两个层级用冒号隔开。 events/-----------------------系统Trace events目录在每个events下面都有enable、filter和fotmat。enable是开关format是events的格式然后根据格式设置 filter。 set_event---------------------将Trace events名称直接写入set_event就可以打开。 set_event_pid----------------指定追踪特定进程的events。 Function配置 vailable_filter_functions------记录了当前可以跟踪的内核函数不在该文件中列出的函数无法跟踪其活动。 dyn_ftrace_total_info---------显示available_filter_functins中跟中函数的数目两者一致。 enabled_functions------------显示有回调附着的函数名称。 function_profile_enabled-----打开此选项在trace_stat中就会显示function的统计信息。 set_ftrace_filter----------------用于显示指定要跟踪的函数 set_ftrace_notrace-------------用于指定不跟踪的函数缺省为空。 set_ftrace_pid------------------用于指定要追踪特定进程的函数。 Function graph配置 max_graph_depth-------------函数嵌套的最大深度。 set_graph_function------------设置要清晰显示调用关系的函数在使用function_graph跟踪器是使用缺省对所有函数都生成调用关系。 set_graph_notrace-------------不跟踪特定的函数嵌套调用。 Stack trace设置 stack_max_size---------------当使用stack跟踪器时记录产生过的最大stack size stack_trace-------------------显示stack的back trace stack_trace_filter-------------设置stack tracer不检查的函数名称 跟踪器tracer功能描述 cat /sys/kernel/debug/tracing/available_tracers 函数类function function_graph stack 延时类irqsoff preemptoff preemptirqsoff wakeup wakeup_rt waktup_dl 其他类nop mmiotrace blkfunction #追踪所有的内核函数 function_graph #和“function tracer比较类似但它除了探测函数的入口还探测函数的出口。它可以画出一个图形化的函数调用类似于c源代码风格 blk #块设备tracer irqsoff #追踪最大关闭中断时间 preemptoff #追踪最大关闭抢占时间 preemptirqsoff #追踪 关闭中断 and/or 关闭抢占 的最大时间 wakeup #追踪最高优先级普通任务从获得调度到被唤醒的最大延迟时间 wakeup_rt #追踪RT类型的任务从获得调度到被唤醒的最大延迟时间 wakeup_dl #追踪Deadline类型的任务从获得调度到被唤醒的最大延迟时间 mmiotrace #追踪硬件IO branch #追踪likely/unlikely的分支预测情况 nop #空的tracer使用示例 1.irqsoff 当中断关闭CPU不能响应任何外部的事件将会阻止内核响应timer、鼠标中断对应的结果就是响应延迟。 irqsoff tracer追踪关中断时间当一个新的最大latency到来时它会记住新的最大latency event丢弃掉旧的最大latency event。”echo 0 tracing_max_latency”会复位最大值。 cd /sys/kernel/debug/tracing echo 0 options/function-trace echo irqsoff current_tracer echo 1 tracing_on echo 0 tracing_max_latency sleep 3 echo 0 tracing_on cat trace# tracer: irqsoff## irqsoff latency trace v1.1.5 on 5.10.160# --------------------------------------------------------------------# latency: 414 us, #4/4, CPU#1 | (M:desktop VP:0, KP:0, SP:0 HP:0 #P:8)# -----------------# | task: sh-1098 (uid:0 nice:0 policy:0 rt_prio:0)# -----------------# started at: hvc_write# ended at: n_tty_write---------------------------记录禁止中断时间最长的开始和结束函数### _------ CPU# # / _----- irqs-off-----------------d表示中断被disabled.表示中断没有被关闭。 # | / _---- need-resched-------------N-表示need_resched被设置.-表示need_resched没有被设置中断返回不会进行进程切换 # || / _--- hardirq/softirq----------H-表示softirq中发生了硬件中断h-硬件中断s-softirq.-不在中断上下文中# ||| / _-- preempt-depth------------当抢占中断势能后该域代表preempt_disabled的级别 # |||| / delay # cmd pid ||||| time | caller---------------cmd-进程名pid-进程idtime-表示trace从开始到当前的相对时间delay-突出显示那些有高延迟的地方以便引起注意。表示需要引起注意 # \ / ||||| \ | / sh-1098 1d... 0us!: __raw_spin_lock_irqsave -hvc_writesh-1098 1d... 414us : hvc_write -n_tty_writesh-1098 1d... 415us : tracer_hardirqs_on -n_tty_writesh-1098 1d... 418us : stack trace n_tty_write file_tty_write.constprop.0 redirected_tty_write new_sync_write vfs_write ksys_write __arm64_sys_write el0_svc_common.constprop.0 do_el0_svc el0_svc el0_sync_handler el0_sync2.preemptoff 当抢占关闭我们除了接收中断不能进行任务调度。 preemptoff tracer用来追踪抢占关闭时间和irqsoff非常类似。 cd /sys/kernel/debug/tracing echo 0 options/function-trace echo preemptoff current_tracer echo 1 tracing_on echo 0 tracing_max_latency sleep 3 echo 0 tracing_on cat trace3.preemptirqsoff 关闭中断和抢占 preemptirqsoff tracer追踪抢占/中断任一被关闭的最大延迟时间 local_irq_disable(); call_function_with_irqs_off(); preempt_disable(); call_function_with_irqs_and_preemption_off(); local_irq_enable(); call_function_with_preemption_off(); preempt_enable();irqsoff tracer记录的时间 call_function_with_irqs_off() call_function_with_irqs_and_preemption_off() preemptoff tracer记录的时间 call_function_with_irqs_and_preemption_off() call_function_with_preemption_off() preemptirqsoff tracer记录的时间 total时间 相关函数 spin_lock()会调用preempt_disable() 导致**本核**的抢占调度被关闭preempt_disable函数实际增加preempt_count来达到此效果spin_lock_irq()是local_irq_disable()preempt_disable()的合体。 local_irq_disable()/loca_irq_save()的disable和save版的唯一区别是要不要保存CPU对中断的屏蔽状态。 spin_lock_irq()/spin_lock_irqsave(lock, flags)的唯一区别是要不要保存CPU对中断的屏蔽状态。spin_lock()会调用preempt_disable() 导致本核的抢占调度被关闭preempt_disable函数实际增加preempt_count来达到此效果spin_lock_irq()是local_irq_disable()preempt_disable()的合体。 local_irq_disable()/loca_irq_save()的disable和save版的唯一区别是要不要保存CPU对中断的屏蔽状态。 spin_lock_irq()/spin_lock_irqsave(lock, flags)的唯一区别是要不要保存CPU对中断的屏蔽状态。 cd /sys/kernel/debug/tracingecho 0 options/function-traceecho preemptirqsoff current_tracerecho 1 tracing_onecho 0 tracing_max_latencysleep 3echo 0 tracing_oncat trace参考 https://blog.csdn.net/pwl999/article/details/80420905 https://www.kernel.org/doc/html/latest/trace/ftrace.html https://www.cnblogs.com/arnoldlu/p/7211249.html
http://www.w-s-a.com/news/399019/

相关文章:

  • 有免费做网站的吗建设互联网站
  • 北京市保障房建设投资中心网站淄博哪个网站做房屋出赁好
  • 如何做网站的优化网站开发怎么收费
  • 网站的关键词怎么选择2345实用查询
  • 免费的制作网站做图剪片文案网站app接单
  • 中国有多少网站有多少域名上海网站建设网页制作邢台
  • 网站 数据报表如何做室内设计联盟官方网站入口
  • 怎样建设网站论文合肥做网站的软件公司
  • 收款后自动发货的网站是怎么做的怎么看网站后台网页尺寸
  • 谷歌seo引擎优化宁波seo关键词
  • 外贸网站建设需要注意什么seo课程
  • 做信息图网站网站建设的软件介绍
  • 网站开发语言数据库有几种魏县审批建设的网站
  • 北京公司网站建设推荐海口建设
  • 不懂编程如何做网站婚礼网站模板
  • 像京东一样的网站wordpress入门视频教程7 - 如何在文章里加入视频和音乐
  • 惠州网站建设排名wordpress3万篇文章优化
  • 创建网站的三种方法北京建王园林工程有限公司
  • jsp网站建设模板下载十大免费excel网站
  • 网络公司网站图片网站建立好了自己怎么做优化
  • 云主机是不是可以搭建无数个网站百度快速seo优化
  • 房地产怎么做网站推广建立音乐网站
  • 川畅科技联系 网站设计网站开发的教学视频
  • 为什么学网站开发凡科登陆
  • 设计师常备设计网站大全中山精品网站建设信息
  • 杭州建设工程网seo服务是什么
  • 兼职做问卷调查的网站wordpress mysql设置
  • 怎么在百度上能搜到自己的网站山西seo谷歌关键词优化工具
  • 网站搭建免费模板飞鱼crm下载
  • 网站开发竞品分析app制作公司深圳