This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM3352:有关&quot 的术语;时钟事件源""sched_clock""时钟源""gptimer"

Guru**** 2553260 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/791111/linux-am3352-terms-about-clockevent-source-sched_clock-clocksource-gptimer

器件型号:AM3352

工具/软件:Linux

大家好、TI 工程师同事 

我无法理解有关"时钟事件源""sched_clock""clocksource""gptimer"的技术术语以及它们与 AM335x‘s 计时器之间的关系。
?有人能为我分析这些问题、还是给我一些办公文档?

~# cat /proc/interrupts
          CPU0       
 16:    100010     INTC 68级别    gp_timer

~# dmesg | grep clock
[0.000000]   OMAP 时钟事件源:timer2为24000000 Hz
[0.000038]   sched_clock:24MHz 时为32位、分辨率为41ns、每89478484971ns 换行一次
[0.000104]   时钟源:Timer1:屏蔽:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:79635851949 ns
[0.000152]   OMAP 时钟源:Timer1为24000000 Hz
[0.001748]   clocksource_probe:未找到匹配的时钟源
[0.628911]   时钟源:Jiffies:MASK:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:7645041785100000 ns
[1.171385]   已注册 PTP 时钟支持
[1.181350]   时钟源:切换到时钟源 Timer1

#if defined (CONFIG_ARCH_OMAP3)|| defined (CONFIG_SOC_AM33XX)||\
       已定义(CONFIG_SOC_AM43XX)
void __init OMAP3_gptimer_timer_init (void)

       _omap_sync32k_timer_init (2、"timer_sys_ck "、空、
                       1、"timer_sys_k"、"ti、timer-alwon"、true);

       if (of _have _填充_dt ()))
               clocksource_probe ();

#endif



  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我想知道您是否可以提供更多有关您计划如何使用计时器的信息。 此外、您使用的是哪个 PSDK?

    此致、
    Krunal
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Krunal

    我在 AM335x 中遇到了一个奇怪的问题、不幸的是、我的内核来自  https://github.com/beagleboard/linux/releases?after=4.4.155-ti-rt-r153 ,( github.com/.../4.4.113-ti-r148)、但问题仍然存在

    开始时:GP_TIMERR IRQ 计数器递增9 (1034999-103508)
    # cat /proc/interrupts | grep timer;cat /proc/interrupts | grep timer
     16:    103499     INTC 68级别    gp_timer
     16:    103508     INTC 68级别    gp_timer

    但是2天后:GP_TIMERR IRQ 计数器不再递增 (6557341不变)

    # cat /proc/interrupts | grep timer;cat /proc/interrupts | grep timer
     16:   6557341      INTC  68 级别     gp_timer
     16:    6557341    INTC  68 级别     gp_timer

    因此 、我不知道 内核 的 Jiffes 是否 来自 gp_timer 的 IRQ。

     AM335x 运行2天后的另一个奇怪问题是 date 命令

    # 日期
    星期六 、1月  1 日11:38:07 UTC 2000

    等待1~2 mintes、然后键入 date
    # 日期
    2000     年1月1日11:36:17 UTC  

    您可以看到11:36:17在11:38:07之前

    因此、我怀疑系统时间(来自 jiffes)无法正常工作。

    我想找出原因,但我不理解有关“时钟事件源”“sched_clock”“时钟源”“gptimer”的术语

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Krunal

    昨天、我将内核切换到 PROCESSOR-SDK-LINUX-AM335X (v05.02 2018年12月20日 Linux v4.14.79)@ http://www.ti.com/tool/PROCESSOR-SDK-AM335X。  

    我执行与以前内核4.4.3.133/4.155的比较测试

    新 Linux v4.14.79中的 CONFIG_Hz menuconfig 设置为100。 (CONFIG_Hz=100)

    我认为1秒内的 gptimer 中断计数器值 为100、但有效值仅为8~12 μ A

    /proc # uname -a

    Linux 路由器 4.14.79 #40 抢占 Wed A04 10 18 :30:25 HKT 2019 armv7l GNU/Linux

    /proc # cat /proc/interrupts; sleep 1 ; cat /proc/interrupts

     16:      68357      INTC  68 级别     gp_timer

    //一秒后  

     16:      68368    INTC  68 级别     gp_timer

    68368 - 68357 =,μ s 而不是100 μ s 这有什么,,我是否理解不正确?

    附件是内核4.14.79的配置文件

    期待您的回复,思考

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    在运行 PSDK5.2的 BBB 上、当 CONFIG_Hz=100时、我看到一个接近100的数字。 您是否能够使用我们 PSDK 附带的预构建映像复制相同的错误? 我想知道是否可以在不同的电路板上运行相同的测试。

    此致、
    Krunal
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Krunal,我发现该数字与 CPU 负载有关,在重负载状态下,该数字接近 CONFIG_Hz;在轻负载状态下,该数字小于 CONFIG_Hz。 我认为这两个内核配置选项会对它产生影响(CONFIG_NO_Hz_IDLE=y;CONFIG_NO_Hz=y)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    感谢您分享信息。

    此致、
    Krunal