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:Linux 偶尔被阻止100秒以上。

Guru**** 2587345 points
Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/581910/linux-am3352-linux-sporadically-blocked-for-more-the-100-seconds

器件型号:AM3352

工具/软件:Linux

大家好、

我使用的是 SDK 2.00.01.07 (4.1.13)的 Linux 内部版本、对基于 BeaglebonebBlack 的我们自己的硬件进行了修改(主要是 DTS)。 我们的网络应用程序在 initramfs 的"init"脚本中启动。 我们没有其他文件系统。 系统工作一段时间。 有时、应用程序会被阻止超过100秒(通常正好是103秒)。 在这种情况下、CPU 在内核空间中使用了99%、并且未完成线程处理。 串行控制台的使用有时会受到限制。 在这种饥饿之后、系统继续正常运行。 在某些情况下、随后会显示 RCU_PREOSTALL (请参阅下文)。

有人可以提供建议吗?

--提前感谢您
--彼得

引导日志总数:

U-Boot 2015.07 (2017年3月16日- 10:38:29 +0100)

I2C:  就绪
DRAM: 128 mib
MMC:  OMAP SD/MMC:0、OMAP SD/MMC:1.
使用默认环境

网络:   未设置。 验证第一个电子保险丝 MAC
CPsw、USB_ether
按任意键停止自动引导: 0
文件传输命令:PAR = 0x10
无类型测试
XHIF 引导
bootargs:console=ttyS0、115200n8 mem=128M init=/init fastboot rootdelay=0 ertec_boot=rel build=(94) root=/dev/ram0 rw ip=off rootfstype=ramfs
文件传输命令:内核= 0x01
正在将文件复制到:0x82000000 ####
传输大小:0x0032598
文件传输命令:FDT = 0x03
正在将文件复制到:0x84000000 #
传输大小:0x00008680
文件传输命令:Rd = 0x02
正在将文件复制到:0x84080000 ########
传输大小:0x00600923
文件传输命令:end = 0x5555
zImage:0x82000000 initrd:0x84080000:600923 FDT:0x84000000
内核映像@ 0x82000000 [ 0x000000 - 0x325698]
###展平设备树状物在84000000处
  使用0x84000000处的 FDT blob 进行引导
  正在将 Ramdisk 加载到86925000,结束位置86f25923 ... 好的
  正在将设备树加载到86919000,结束8692467f... 好的

正在启动内核...

正在解压缩 Linux... 已完成、正在引导内核。
[0.000000]   在物理 CPU 0x0上引导 Linux
[0.000000]   正在初始化 cgroup Subsys cpuset
[0.000000]   正在初始化 cgroup 子系统 CPU
[0.000000]   正在初始化 cgroup Subsys cpuacct
[0.000000]   Linux 版本4.1.13 (Ubuntu@Ubuntu)(gcc 版本4.9.3 20150413 (预发布版本)(Linaro GCC 4.9-2015.05))#1抢先于 Thu Mar 16 10:47:05 CET 2017
[0.000000]   CPU:ARMv7处理器[413fc082]修订版2 (ARMv7)、CR=10c5387d
[0.000000]   CPU:PIPT/VIPT 非混叠数据高速缓存、VIPT 别名指令高速缓存
[0.000000]   机器型号:XYZ
[0.000000]   CMA:在0x85000000处保留24 MIB
[0.000000]   内存策略:数据高速缓存写回
[0.000000]   CPU:所有 CPU 均在 SVC 模式下启动。
[0.000000]   AM335X ES2.1 (NEON)
[0.000000]   在区域顺序和移动分组中构建了1个区域列表。  总页数:32480
[0.000000]   内核命令行:console=ttyS0、115200n8 mem=128M init=/init fastboot rootdelay=0 ertec_boot=rel build=(94) root=/dev/ram0 rw ip=off rootfstype=ramfs
[0.000000]   PID 哈希表条目:512 (顺序:-1、2048字节)
[0.000000]   条目高速缓存散列表条目:16384 (顺序:4、65536字节)
[0.000000]   inode 高速缓存散列表条目:8192 (顺序:3、32768字节)
[0.000000]   内存:89496K/131072K 可用(6379K 内核代码、259K rwdata、2172K rodata、268K init、229K BSS、 17000K 保留、24576K CMA 保留、0K HIGHMEM)
[0.000000]   虚拟内核内存布局:
[0.000000]       矢量 :0xff0000-0xff1000  (4KB)   
[0.000000]       fixmap :0xc00000 - 0xc00000  (3072 KB)
[0.000000]       vmalloc:0xc8800000 - 0xc000000  (872 MB)
[0.000000]       低内存 :0xC0000000 - 0xc8000000  (128 MB)
[0.000000]       pkmap  :bbfe00000 - 0xC0000000  (  2 MB)
[0.000000]       模块:bbf000000 - bbbfe00000  ( 14 MB)
[0.000000]         .text:0xc0008000 - 0xc086205c  (8553KB)
[0.000000]         .init:0xc0863000 - 0xc08a6000  (268 KB)
[0.000000]         .data:0xc08a6000 - 0xc08e6d68  (260KB)
[0.000000]          .bss:0xc08e9000 - 0xc0922708  (230KB)
[0.000000]   slub:HWalign=64、order=0-3、MinObjects=0、CPU=1、Nodes=1
[0.000000]   可抢占的分层 RCU 实现。
[0.000000]    打印的每个 CPU 的附加信息有停转。
[0.000000]    RCU kthread 优先级:1.
[0.000000]   NR_IRQ:16 nr_IRQ:16 16.
[0.000000]   IRQ:在0xfa200000 (修订版5.0)处找到具有128个中断的 INTC
[0.000000]   OMAP 时钟事件源:timer2为25000000 Hz
[0.000030]   sched_clock:25MHz 时为32位、分辨率为40ns、每85899345900ns 换行一次
[0.000076]   时钟源定时器1:屏蔽:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:76450417870 ns
[0.000103]   OMAP 时钟源:Timer1、25000000 Hz
[0.000482]   控制台:彩色虚拟设备80x30
[0.000555]   校准延迟环路... 298.59 BogoMips (lpj=1492992)
[0.067853]   pid_max:默认值:32768最小值:301
[0.068063]   安全框架已初始化
[0.068178]   安装高速缓存散列表条目:1024 (顺序:0、4096字节)
[0.068208]   安装点高速缓存散列表条目:1024 (顺序:0、4096字节)
[0.069745]   正在初始化 cgroup Subsys blkio
[0.069803]   正在初始化 cgroup Subsys 内存
[0.069899]   正在初始化 cgroup 子系统设备
[0.069939]   初始化 cgroup Subsys 冷冻柜
[0.069977]   正在初始化 cgroup 子系统 perf_event
[0.070037]   CPU:测试写入缓冲器一致性:好的
[0.070797]   为0x80008240 - 0x800082b0设置静态标识映射
[0.074631]   devtmpfs:已初始化
[0.101650]   VFP 支持 v0.3:实施者41架构3第30部分版本 c 修订版3
[0.125570]   omap_hwmod:tptc0、使用 EDMA 中断开的 dt 数据
[0.125869]   omap_hwmod:tptc1、使用 EDMA 中断开的 dt 数据
[0.126133]   OMAP-hwmod:tptc2、使用 EDMA 中断开的 dt 数据
[0.133372]   OMAP_hwmod:debugss:_wait_target_disable 失败
[0.203280]   时钟源 Jiffies:MASK:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:19112604462750000 ns
[0.208174]   pinctrl 内核:已初始化 pinctrl 子系统
[0.211113]   NET:注册协议系列16.
[0.216652]   DMA:为原子相干分配预先分配的256 KiB 池
[0.247946]   空闲:使用调速器梯
[0.277902]   空闲:使用调速器菜单
[0.287050]   OMAP GPIO 硬件版本0.1
[0.303482]   OMAP-GPMC 50000000。GPMC:找不到节点/ocp/l4_wkup@44c00000-SCM@210000/ pinmux@800/pinmux_xhif_pins 的 pctldev、延迟探针
[0.308808]   没有 ATAG?
[0.308869]   硬件断点:不支持调试架构0x4。
[0.379206]   EDMA-DMA-engine EDMA-DMA-engine.0:TI EDMA 引擎驱动程序
[0.386601]   vgaarb:已加载
[0.388020]   SCSI 子系统已初始化
[0.389349]   介质:Linux 介质接口:v0.10
[0.389534]   Linux 视频捕捉接口:v2.00
[0.389682]   pps_core:LinuxPPS API 版本。 1已注册
[0.389705]   pps_core:软件版本 5.3.6 -版权所有2005-2007 Rodolfo Giometti
[0.389788]   PTP 时钟支持已注册
[0.391778]   OMAP-mailbox 480c8000.mailbox:OMAP mailbox 修订版0x400
[0.392294]   高级 Linux 声音架构驱动程序已初始化。
[0.394387]   切换到时钟源 Timer1
[0.421957]   NET:注册协议系列2.
[0.423864]   TCP 建立哈希表条目:1024 (顺序:0、4096字节)
[0.423929]   TCP 绑定哈希表条目:1024 (顺序:0、4096字节)
[0.423979]   TCP:已配置哈希表(建立1024 BIND 1024)
[0.424142]   UDP 哈希表条目:256 (顺序:0、4096字节)
[0.424199]   UP-Lite 哈希表条目:256 (顺序:0、4096字节)
[0.424756]   NET:注册协议系列1.
[0.425558]   RPC:注册后命名的 UNIX 套接字传输模块。
[0.425589]   RPC:注册的 UDP 传输模块。
[0.425607]   RPC:注册 TCP 传输模块。
[0.425626]   RPC:注册的 TCP NFSv4.1反向通道传输模块。
[0.426800]   尝试将 rootfs 映像解压为 initramfs...
[1.677577]   释放 initrd 内存:6148K (c6925000 - c6f26000)
[1.678552]   CPU PMU:无法解析/pmu/interrupt-affinity [0]
[1.678660]   硬件性能事件:通过 armv7_cortex_A8 PMU 驱动器启用、提供5个计数器
[1.683206]   futex 散列表条目:256 (顺序:-1、3072字节)
[1.683419]   审核:初始化 netlink 子系统(已禁用)
[1.683567]   审核:type=2000审核(1.670:1):已初始化
[1.703302]   VFS:磁盘配额 dquot_6.6.0
[1.703820]   VFS:Dquot 高速缓存散列表条目:1024 (顺序0、4096字节)
[1.709613]   NFS:注册 id_resolver 密钥类型
[1.709764]   注册了密钥类型 id_resolver
[1.709786]   注册了密钥类型 id_legacy
[1.709955]   jffs2:版本2.2。 (NAND)(摘要) Copyright2001-2006 Red Hat, Inc.
[1.716593]   NET:注册协议系列38.
[1.716762]   已注册 IO 调度程序 NOOP
[1.716801]   已登记 IO 调度程序截止日期
[1.716948]   已注册 IO 调度程序 cfq (默认值)
[1.719367]   pinctrl-single 44e10800.pinmux:142引脚、PA f9e10800大小568
[1.724196]   wkup_m3_IPC 44e11324.wkup_m3_IPC:无法获取 rproc 句柄
[1.726892]   串行:8250/16550驱动程序,10个端口,启用 IRQ 共享
[1.736129]   控制台[ttyS0]已禁用
[1.736303]   44e09000.serial: tmio 0x44e09000处的 ttyS0 (IRQ = 155、base_baud = 3000000)是8250
[2.388560]   控制台[ttyS0]已启用
[2.394487]   [DRM]已初始化 DRM 1.1.0 20060810
[2.426381]   返修:模块已加载
[2.442705]   loop:模块已加载
[2.448175]   mtdoops:必须提供 MTD 器件(mtddev=name/number)
[   2.481682] DaVinci_MDIO 4a101000.MDIO:在 RET = 0时启用 phy
[2.554443]   DaVinci_MDIO 4a101000.MDIO:达芬奇 MDIO 修订版本1.6
[2.560596]   DaVinci_MDIO 4a101000.MDIO:检测到的 phy 掩码 fffffd
[2.583031]   libphy: 4a101000.mdio:探测
[2.587432]   DaVinci_MDIO 4a101000.MDIO:PHY[1]:器件4a101000.MDIO:01、驱动程序未知
[2.597320]   cpsw 4a100000.以太网:检测到的 MACID = 40:EC:F8:09:E9:E5
[2.608120]   mousedev:PS/2鼠标设备,适用于所有鼠标
[2.613787]   i2c /dev/entries 驱动程序
[2.620020]   ledtrig-CPU:已注册以指示 CPU 上的活动
[2.626942]   OMAP-AES 53500000。AES:OMAP AES 硬件加速器版本:3.2
[2.635921]   OMAP-SHIM 53100000.sham:OMAP 版本4.3上的硬件加速器
[2.645433]    remoteproc0:wkup_m3可用
[2.649940]    remoteproc0:注意:remoteproc 仍在开发中并被视为实验。
[2.659412]    remoteproc0:二进制格式尚未最终确定、并且尚不能保证向后兼容性。
[2.676640]   配置文件:使用 ARM/armv7
[2.681165]   正在初始化 XFRM netlink 套接字
[2.685925]   NET:注册协议系列17.
[2.690508]   NET:注册协议系列15.
[2.695379]   注册的密钥类型 DNS_旋 变传感器
[2.700474]   OMAP_VOLTGE_LARD_INIT:未添加电压驱动器支持
[2.707783]   CPU CPU0:of_pm_voltdm_notifier_register:无法获取 CPU0稳压器/voltdm:-517
[2.716730]   CPU CPU0:CPU0时钟通知器未就绪、请重试
[2.723019]   支持 ThumbEE CPU 扩展。
[2.727540]   正在注册 SWP/SWPB 仿真处理程序
[2.737708]   OMAP-GPMC 50000000。GPMC:GPMC 版本6.0
[2.742933]   GPMC_mem_init:禁用映射在0x0-0x1000000的 CS 0
[2.753067]   CPU CPU0:of_pm_voltdm_notifier_register:无法获取 CPU0稳压器/voltdm:-517
[2.762108]    remoteproc0:为 wkup_m3加电
[2.768721]    remoteproc0:引导 FW 映像 AM335x-pm-firmware.elf、大小为219803
[2.776396]   CPU CPU0:CPU0时钟通知器未就绪、请重试
[2.782960]   hctosys:无法打开 RTC 设备(rtc0)
[2.788774]    remoteproc0:远程处理器 wkup_m3现已启动
[2.794516]   wkup_m3_IPC 44e11324.wkup_m3_IPC:CM3固件版本= 0x191
[2.810741]   vmmcsd_fixed:正在禁用
[2.815171]   ALSA 器件列表:
[2.81818183]     找不到声卡。
[2.823277]   释放未使用的内核内存:268K (c0863000 - c08a6000)
正在加载、请稍候...
[2.982820]   init:使用 rel
[2.987892]   init:内部版本号为(94)
[3.064103]   systemd-udevd[98]:开始版本215
[3.090944]   随机:可使用4位熵进行 systemd-udd urandom 读取
开始:加载基本驱动程序
 (笑声) [4.338142]   CPU CPU0:of_pm_voltdm_notifier_register:无法获取 CPU0稳压器/voltdm:-517
[4.364911]   CPU CPU0:CPU0时钟通知器未就绪、请重试
[4.493304]   m25p80:未知符号 SPI_NOR_SCAN (错误0)
[4.562921]   m25p80 spi1.0:m25p80 (1024KB)
[4.567858]   在 MTD 器件 spi1.0上找到1个部件分区
[4.573392]   在"spi1.0"上创建1个 MTD 分区:
[4.578500]   0x000000000000 0x000000100000:“SPI-NOR”
[4.601053]   CPU CPU0:of_pm_voltdm_notifier_register:无法获取 CPU0稳压器/voltdm:-517
完成。
开始:运行/scripts/init-premount ... 完成。
开始:安装根文件系统... 开始:运行/scripts/local-top ... [4.626218]   CPU CPU0:CPU0时钟通知器未就绪、请重试
完成。
开始:运行/scripts/local-premount ... 完成。
完成。
[4.740145]   net eth0:正在初始化 cpsw 版本1.12 (0)
[4.750449]   CPU CPU0:of_pm_voltdm_notifier_register:无法获取 CPU0稳压器/voltdm:-517
[4.759608]   CPU CPU0:CPU0时钟通知器未就绪、请重试
[4.834831]   net eth0:Phy found:id is:0x20005c90
[4.969931]   初始化:未设置 SPI 路径、未安装 SPI 闪存
[4.986874]   syslogd 已启动:Busybox v1.21.1
[4.991988]   初始化:使用启动应用程序/app/gw_app

 

有时显示:

[16896.185613]信息:RCU_PRETER-DET占用 CPU 上的自检测失速

[16896.191042] 0:(此 GP 为1个周期) IDLE=963/1/0 softirq=269972/269972 fqs=0

[16896.198049]  (t=10308 jiffies g=169238 c=169237 q=4)

[16896.203152] RCU_preempt kthread 为10308个圣战而挨饿!

[16896.208676] CPU 的任务转储0:

[16896.211930] swapper        R 运行    0        0 0x00000002

[16896.218351]回溯:

[16896.220895][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)

[16896.228512] r7:c08b2cf0 r6:80030193 r5:00000000 r4:c08a8878

[16896.234292][ ](show_stack)从[ ](sched_show_task+0xac/0x108)

[16896.242103][ ](sched_show_task)、来自[ ](dump_CPU_TASK_0x24/0x30)

[16896.250066] R5:c08b2cf0 R4:00000000

[16896.253724][ ](dump_CPU_task)、来自[ ](RCU_Dump_CPU_STACK_0xa0/0x100)

[16896.262151][ ](RCU_Dump_CPU_STACK_STACK_)、来自[ ](RCU_CHECK_callbacks+0x448/0x890)

[16896.271159] R9:c08b3310 R8:c08a6138 r7:c08b3050 R6:c08a6140 R5:c08b2cf0 R4:c08b30cc

[16896.279038][ ](RCU_CHECK_callback)、来自[ ](update_process_times_0x40/0x6c)

[16896.287960] R10:00000001 R9:c08b3318 R8:c08a4000 r7:00000f5d R6:f2e02ec8 R5:00000000

[16896.295900] R4:c08a8878

[16896.298494][ ](update_process_times)从[ ](tick_sched_handle+0x50/0x5c)

[16896.307242] R5:c08a5f20 R4:c08b3a80

[16896.310885][ ](tick_sched_handle)从[ ](tick_sched_timer+0x48/0x90)

[16896.319304][ ](tick_sched_timer)、来自[ ](_run_hrtimer+0x6c/0x130)

[16896.327441] r7:00000000 R6:c0087340 R5:c08b3350 R4:c08b3a80

[16896.333203][ ](_run_hrtimer)、来自[ ](hrtimer_interrupt+0x11c/0x2e8)

[16896.341514(XV) r7:00000000 R6:c08b3318 R5:00000f5d R4:f2dfc820

[16896.347279][ ](hrtimer_interrupt)、来自[ ](OMAP2_gp_timer_interrupt+0x2C/0x3c)

[16896.356376] R10:c08e445a R9:c7004c00 R8:00000010 r7:00000000 R6:00000000 R5:c08aa974

[16896.364314] R4:c08aa974

[16896.366914][ ](OMAP2_gp_timer_interrupt)、来自[ ](handle_irq_event_perpu + 0x7c/0x148)

[16896.376647][ ](handle_irq_event_perpu)、来自[ ](handle_IRQ_EVENT_+0x68/0x90)

[16896.385569] R10:00000001 R9:c08a6110 R8:c7006000 r7:00000001 R6:00000000 R5:c08aa974

[16896.393507] R4:c7004c00

[16896.396091][ ](handle_irq_event)从[ ](handle_level_IRQ+0xa8/0x154)

[16896.404490] R5:c08bcf94 R4:c7004c00

[16896.408133][ ](handle_level_IRQ)、来自[ ](generic_handle_IRQ+0x30/0x44)

[16896.416619] R5:c08bcf94 R4:00000010

[16896.420266][ ](generic_handle_IRQ)、来自[ ](_handle_domain_IRQ+0x50/b0)

[16896.429014] R5:c08bcf94 R4:00000010

[16896.432658][ ](_handle_domain_IRQ)、来自[ ](OMAP-INTC_Handle_IRQ+0xc8/0xd8)

[16896.441579] R9:c08a6110 R8:00000000 r7:00000044 R6:c08a5f20 R5:c090f900 R4:c08bd200

[16896.449465][ ](OMAP-INTC_Handle_IRQ)、来自[ ](_IRQ_Svc+0x40/0x74)

[16896.457519]异常堆栈(0xc08a5f20至0xc08a5f68)

[16896.462620] 5f20:00000001 00000000 c0020140 c08a4000 c08a6110 00000000 00000000

[16896.470858] 5f40:00000000 c08a6110 00000001 c08a5f74 c08a5f78 c08a5f68 c00102bc c00102c0

[16896.479085] 5f60:60030013 ffffff

[16896.482598] r7:c08a5f54 r6:ffff r5:60030013 r4:c00102c0

[16896.488365][ ](arch_cpu_idle)从[ ](CPU_STARTUP_END+0x194/0x214)

[16896.496714][ ](CPU_STARTUP_INPUK)、来自[ ](REST_INIT+0x78/0x90)

[16896.504502] r7:c08a6000

[16896.507106][ ](REST_INIT)从[ ](start_kernel+0x358/0x3c8)

[16896.514632] R5:00000001 R4:c08e7050

[16896.518285][ ](start_kernel)从[<80008078>](0x80008078)

 

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

    根据内核日志、应用程序会加载 CPU 以达到放样时间并导致停止、然后内核 CPU 停止检测器会激活。
    我建议您阅读中的说明 /Documentation/RCU/stallwarn.txt、它可以帮助您最大限度地减少 CPU 停转时间、从而实现最佳内核配置。

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

    我从头开始配置内核、而不是基于 BBB、似乎可以正常工作。 晚上没有摊位。

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

    感谢您的反馈。 我可以计算问题是否已解决?

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

    尊敬的 Tsvetolin:

    很遗憾、不是、但我有更多详细信息。 在阻塞情况下、线程"rcub"处于状态"D"、具有不同的反向布线、"rt_mutex_lock"正常。

    此致
    --彼得


    [53455.875701] rcuc/0         S c06082e4    0   10     2 0x00000000
    [53455.882170]回溯:
    [53455.884681][ ](__schedule)从[ ](计划+0x44/0x9C)
    [53455.891825] R9:00000000 R8:00000002 r7:c08649ac R6:00000001 R5:c7042180 R4:c706e000
    [53455.899850][ ](计划)从[ ](smpboot_thread_fn+0x1c0/0x230)
    [53455.907781] R5:c7042180 R4:c706e000
    [53455.911462][ ](smpboot_thread_fn)、来自[ ](kthread+0xd4/0xf0)
    [53455.919129] R9:00000000 R8:00000000 r7:c0053da0 R6:c7042180 R5:c7042300 R4:00000000
    [53455.927138][ ](kthread)、来自[ ](RET_FANK_F叉+0x14/0x2C)
    [53455.934421] r7:00000000 R6:00000000 R5:c00507b0 R4:c7042300
    [53455.940267] rcub/0         D c06082e4    0   11     2 0x00000000
    [53455.946780]回溯:
    [53455.949297] ](__schedule)从[ ](计划+0x44/0x9C)
    [53455.956442] R9:c38b7a80 R8:c7071ed4 r7:00000000 R6:00000002 R5:c08645c0 R4:c7070000
    [53455.964409][ ](计划)从[ ](__rt_mutex_sleslock+0x54/0x10c)
    [53455.9724] R5:c08645c0 R4:c7070000
    [53455.976158][ ](__rt_mutex_sleslock)从[ ](rt_mutex_slrlock+b4 /0x240)
    [53455.984923] R9:00000000 R8:00000002 r7:00000000 R6:c7071ed4 R5:00000000 R4:c08645c0
    [53455.992932][ ](rt_mutex_slamlock)、来自[ ](RT_mutex_lock+0x1c/0x20)
    [53456.001123] R10:c7070000 R9:00000000 R8:a0030013 r7:00000000 R6:c08645c0 R5:00000001
    [53456.009197] R4:c0864580
    [53456.011816][ ](RT_mutex_lock)从[ ](RCU_BOOST_KTHREAD+0xec/0x1a0)
    [53456.020116][ ](RCU_BOOST_KTHread)、来自[ ](kthread+0xd4/0xf0)
    [53456.027784] R10:00000000 R9:00000000 R8:00000000 r7:c006f33c R6:c0864580 R5:c7042300
    [53456.035853] R4:00000000 R3:c7046d00
    [53456.039532][ ](kthread)、来自[ ](RET_FANK_F叉+0x14/0x2C)
    [53456.046854] r7:00000000 R6:00000000 R5:c00507b0 R4:c7042300
    [53456.052666] khelper        S c06082e4    0   12     2 0x00000000
    [53456.059184]回溯:
    [53456.061699][ ](__schedule)从[ ](计划+0x44/0x9C)
    [53456.068843] R9:00000000 R8:c7072000 r7:c704323c R6:c7040700 R5:c7043200 R4:c7072000
    [53456.076858][ ](计划)从[ ](SAFER_THREAD+0x2f4/0x364)
    [53456.084491] R5:c7043200 R4:c7040700
    [53456.088209][ ](SAFER_THread)、来自[ ](kthread+0xd4/0xf0)
    [53456.095579] R10:00000000 R9:00000000 R8:00000000 r7:c004ba20 R6:c7040700 R5:c70423c0
    [53456.103650] R4:00000000
    [53456.106284][ ](kthread)、来自[ ](RET_FANK_F叉+0x14/0x2C)
    [53456.113567] r7:00000000 R6:00000000 R5:c00507b0 R4:c70423c0

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

    大家好、

    有趣的细节是、在这种阻塞情况下、心跳 LED 的闪烁速度比正常的快两倍多。 在封锁之后、此闪烁频率会缓慢地在数秒内降至正常模式。

    --彼得

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您是否说块会在某个时间后发生并解除阻止?

    您可以启用 DETAND_HON_TASK 并将 DEFAULT_HON_TASK_TIMEOUT 设置为较低的值、例如60、
    此外、启用 locking_detector 和 WQ_watchdog 以获取有关哪个确切任务/工作被挂起以及是否由于锁定的更多详细信息。

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

    大家好、

    首先感谢大家 的支持。 在检测和调试内核之后、现在我知道错误是通过读取__omap_dm_timer_read 中的壁式时钟(DMTimer 1ms)的计数器寄存器来实现的。 这种访问的结果偶尔会导致非单调值(低16位 为0000) 和负时间增量。 这会导致  CPU 的这种长睡眠周期(103秒)。

    这是否是 AM3352的已知勘误表、如果是、是否可以采取变通办法?

    --提前感谢
    --彼得

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

    大家好、

    现在我们解决了这个问题。 我们的 Linux 构建(源自 BeagleBone)使用 DMTimer_1ms 作为墙壁时钟。 默认情况下、该计时器在上电后处于布置模式。 但这仅在使用32k 时才允许。 我们使用的是25MHz 时钟。  Linux 的初始化会进入非 POSTED 模式、该模式适用于其他定时器类型、 并且不会更改模式。 因此、计数器读取有时不正确。

    我在"timer.c"和"dmtimer.h"中添加了"disable_poded"函数 、计数器系统工作正常  

     此致
    --彼得

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

    您好的营地、

    我对这一点还有其他意见:

    在 TRM 部分20.2.4.14 TICR 寄存器中、图20-45中、我们声明复位后布置的位为0。 但是、表20-49表示复位后布置的位为1。

    看起来1是正确的…

    我还有一个问题:

    „timer.h“和„dmtimer.h”中的勘误修补程序 I103_I767似乎无法自动解决此问题。 要"启用"此修补程序、需要做些什么?

    此致、

    1和0

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

    您好、一个和零个、

    复位后、 由于表20-49的状态、在 AM3352上 TSICR (偏移量0x40)中布置的位肯定为1。

    勘误补丁 I103_I767禁止在某些平台上设置布置模式、但无法用于 将计时器重置为非 POSTED 模式。 为了纠正这一问题、如果是由补丁 I103_I767寻址的平台、则定时器的初始化必须清除已布置的位。

    --彼得

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

    您可以发布代码更改吗?

    Steve K.

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

    您好 Steve、

    以下是修改:

    dmtimer.h:
    /*
     *_omap_dm_timer_enable_poday -启用写发布模式
     *@timer:     指向计时器实例句柄的指针
     *
     *启用计时器的写操作模式。 启用后的模式
     *对某些计时器寄存器的写入会立即被确认
     *内部总线、因此可防止 CPU 等待写入
     *完成。 启用此功能可以提高写入的性能
     *定时器寄存器。
     *
     静态内联 void __omap_dm_timer_enable_poday (struct omap_dm_timer *timer)
     {
    - 如果(计时器->已发布)
      -返回;
    -
     if (timer->errata & omap_timer_errata_I103_I767){
      timer->peded = OMA_timer_NONPOSTED;
      _omap_dm_timer_write (timer、omap_timer_if_CTRL_REG、0、0);
      返回;
     }

     _omap_dm_timer_write (timer、omap_timer_if_CTRL_REG、
            OMAP-TIMER_CTRL_POSTED、0);
     timer->context.tsicr = OMAP-TIMER_CTRL_POSTED;
     timer->POSTED = OMA_timer_POSTED;
     }

    +/-*
    +*_omap_dm_timer_disable_podelay -禁用写入布置模式
    +*@计时器:     指向计时器实例句柄的指针
    +*
    +*禁用计时器的写操作布置模式。 启用后的模式
    +*对某些计时器寄存器的写入会立即被确认
    +*内部总线、因此可防止 CPU 等待写入
    +*完成。 启用此功能可以提高写入的性能
    +*定时器寄存器。
    +*/
    +static inline void __omap_dm_timer_disable_podelped(结构 omap_dm_timer *timer)
    +{
    +   _omap_dm_timer_write (timer、omap_timer_if_CTRL_REG、0、0);
    +   timer -> context.tsicr = 0;
    +   定时器->已发布= OMA_TIMER_NONPOSTED;
    +}

    定时器.c:
     如果(已过帐)
      _omap_dm_timer_enable_podelay (timer);
    + 否则
    +      _omap_dm_timer_disable_podelay (timer);

     /*检查预期的布置配置是否与实际的*/相匹配
     如果(已过帐!=计时器->已过帐)
      return -EINVAL;


    如果您需要使用 console 命令进行这些更改,则可以检查您的环境:

    Busybox 设备0x44e31040

    如果您得到0x4、则定时器(DMTimer_1ms) 处于布置模式。 您还可以 通过重置寄存器在启动脚本中执行"脏"补丁:

    Busybox 设备0x44e31040 32 0

    --彼得