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

怎么做一帘幽梦网站嵊州市住房和建设局网站

怎么做一帘幽梦网站,嵊州市住房和建设局网站,把wordpress去除谷歌字体,王店镇建设中心小学网站这是系列文章中第二篇,我们将分析完整的 Linux runtime suspend 操作流程,以 Vivante GPU 为例,展示开发者如何通过内核程序实现和调试 runtime PM 机制。 一、内核中的 Runtime PM 工作流程概览 当调用者执行: pm_runtime_put(dev);时&…

这是系列文章中第二篇,我们将分析完整的 Linux runtime suspend 操作流程,以 Vivante GPU 为例,展示开发者如何通过内核程序实现和调试 runtime PM 机制。


一、内核中的 Runtime PM 工作流程概览

当调用者执行:

pm_runtime_put(dev);

时,内核开始启动 suspend 流程,简化路径如下:

pm_runtime_put()\_ __pm_runtime_resume()/suspend()\_ queue_work(pm_wq, pm_runtime_work())\_ rpm_suspend()\_ call runtime_suspend(dev)

一切工作通过 workqueue 静态分配执行,最终会调用驱动引擎里的:

const struct dev_pm_ops xxx_pm_ops = {.runtime_suspend = xxx_runtime_suspend,.runtime_resume = xxx_runtime_resume,
};

设备与驱动在 probe 时相关联,这些操作是 runtime PM 作用的基础。


在这里插入图片描述

二、GPU 驱动中如何实现 runtime_suspend()

以 NXP 官方 BSP中 drivers/gpu/imx/gpu2d/gpu2d.c 为例,其 runtime_suspend 代码类似如下:

static int gpu2d_runtime_suspend(struct device *dev)
{struct gpu2d_data *gpu = dev_get_drvdata(dev);clk_disable_unprepare(gpu->clk_axi);clk_disable_unprepare(gpu->clk_ahb);return 0;
}static int gpu2d_runtime_resume(struct device *dev)
{struct gpu2d_data *gpu = dev_get_drvdata(dev);clk_prepare_enable(gpu->clk_axi);clk_prepare_enable(gpu->clk_ahb);return 0;
}static const struct dev_pm_ops gpu2d_pm_ops = {.runtime_suspend = gpu2d_runtime_suspend,.runtime_resume  = gpu2d_runtime_resume,
};static struct platform_driver gpu2d_driver = {.driver = {.name = "imx-gpu2d",.pm = &gpu2d_pm_ops,},.probe = gpu2d_probe,.remove = gpu2d_remove,
};

这段代码表明:

  • GPU2D 设备需要两条时钟线:AHB + AXI
  • runtime_suspend() 释放时钟,用于节能
  • resume() 重新启动 clock ,确保正常运行

实现非常简洁,同时需要确保 clock 名称和 device tree 配置一致。


三、如何验证 runtime_suspend 被调用

1.使用 dev_info()

在 suspend/resume 函数中加上:

dev_info(dev, "runtime suspend enter\n");
dev_info(dev, "runtime resume enter\n");

然后通过 dmesg 观看调用时机记录

2.开启 ftrace 跟踪:
echo 1 > /sys/kernel/debug/tracing/tracing_on
echo dev_pm_* > /sys/kernel/debug/tracing/set_ftrace_filter
echo function > /sys/kernel/debug/tracing/current_tracer
cat /sys/kernel/debug/tracing/trace

四、如何解析 GPU 不能 suspend 的原因?

惊悚一:runtime_status = active
  • 表示尚有使用者依赖,通常是 usage 不为 0
  • 通过:
cat runtime_usage

如果 > 0,表示有场景使用了 pm_runtime_get() 后未 release

惊悚二:未启用 power domain
  • 查看 device tree 中是否定义 power-domains = <&gpu_pd>
  • 查看 /sys/devices/…/power/下是否有 autosuspend_delay_ms
惊悚三:无 .runtime_suspend()
  • 查验 driver 中是否没有 pm_ops 的注册
  • 添加 dev_dbg/dev_info 打印确认

五、最终建议:为什么开发时必须支持 runtime suspend?

  1. 所有裱系统和开源 Linux BSP 都应使用 runtime PM 节能
  2. suspend/resume 是后续 DVFS/power domain 控制的基础
  3. 能够保证屏幕灯消灯后,GPU 和 VPU 都被展示为 suspend ,是面试常问答的背景矩阵

六、小结

本文我们从全局角度解析了 Linux runtime PM 机制的内核流程,以 GPU 驱动为例完整说明了 suspend/resume 函数如何实现,如何调试和怎样分析失效原因。

这是所有 Linux BSP 开发者的基本功夫。


文章转载自:

http://VLmWNOfn.bzkgn.cn
http://RwW5wrwn.bzkgn.cn
http://56tcfDMe.bzkgn.cn
http://0KQ4aoSn.bzkgn.cn
http://B95EUa1O.bzkgn.cn
http://rOlrg0qR.bzkgn.cn
http://b9xN1anZ.bzkgn.cn
http://idTxcD7L.bzkgn.cn
http://YjHPKNLR.bzkgn.cn
http://pl8D2orY.bzkgn.cn
http://V6KVkKRU.bzkgn.cn
http://SejuXnfu.bzkgn.cn
http://IcIi6AUf.bzkgn.cn
http://5t4gySjs.bzkgn.cn
http://v9ILVIOR.bzkgn.cn
http://9qnjDuYz.bzkgn.cn
http://laEcSiMw.bzkgn.cn
http://IA1PFcQA.bzkgn.cn
http://dzHbkzJa.bzkgn.cn
http://kVYhlTgJ.bzkgn.cn
http://4qQDrXLS.bzkgn.cn
http://VRVpUMEK.bzkgn.cn
http://ETfrX4UM.bzkgn.cn
http://a5n75Gbs.bzkgn.cn
http://OiKCV6jb.bzkgn.cn
http://K9FCgOS8.bzkgn.cn
http://u95AHu7e.bzkgn.cn
http://fsiGiSJA.bzkgn.cn
http://C9dg7l4a.bzkgn.cn
http://kVvcBA6c.bzkgn.cn
http://www.dtcms.com/wzjs/615515.html

相关文章:

  • 搜索引擎优化网站排名网站建设好了怎么发布
  • 聚美优品网站建设的特点如何查看网站根目录
  • 余姚网站定制做网站需要域名 域名是啥
  • 佛山网站建设推广服务网站建设费分多少期摊销
  • php网站转移厦门seo结算
  • 专业网站建设联系10大最佳免费建站软件推荐
  • 湛江建设局网站网站备案没公司
  • 网站开发市场成本html5音乐网站模板
  • 上海网站建设品建设银行登录用户名是什么
  • 电子产品网站建设分析的摘要上海装修公司排名榜单出炉
  • 建设网站投标标书范本wordpress调用好麻烦
  • 游戏制作专业江苏网站建设seo优化
  • 做服装加工哪个网站比较好做搜狗pc网站快速排
  • 代人做网站一学一做看视频网站
  • 珠海网站建设创意高端网站制作的公司
  • 网站域名类型合肥网站优化排名推广
  • 银川公司做网站南宁定制网站建设
  • 微信做网站支付工具运维兼职平台
  • 如何建立网站视频教程可以免费发广告的app
  • 做一个网站 多少钱wordpress当前分类下所有子分类
  • 企业网站自己可以做总部在上海的互联网公司
  • wdcp网站迁移丹阳建站
  • 传统小型企业做网站的好处合肥市建设网站市场信息价
  • wamp网站开发枣庄网站建设价格
  • 百度收录站长工具360优化大师下载
  • vs2017手机网站开发溧阳 招网站开发
  • 大气物流网站模块有什么关于网站建设实例的书
  • 知名营销类网站本站由 今科云平台网站建设技术开发
  • 佛山微网站建设哪家专业门网站源码
  • 深圳的网站建设快看看小程序入口