Xavier frequently restarts abnormally

Hello. I often encounter abnormal restart issues when using Xavier on my custom device. and I have ruled out hardware factors.
Here is the kernel log of my phenomenon when it occurred.


After experiencing an abnormal restart. I observed my reset source. but I am not sure what caused this reset source.
reset
This issue is urgent for me and I hope you can help me quickly. Thank you very much for this.
The attachment below is my complete system log.
104_ai3_kern.log (36.3 MB)

Hi,

tegra-pmc: ### PMC reset source: BCCPLEXWDT means watchdog triggers reboot because CPU has been hung for too long. If it’s some software issues, then it should happen on DevKit, too.
Take a note of what kind of applications you are running before the abnormal restart, and see if the phenomenon can be consistently reproduced.

Are you saying there is a problem with my software? But when I no longer run the application on xavier, it still appears. How can I avoid this situation? This is very important to me

I don’t know what programs you are running so I cannot comment much.
You mean you just put the device there without doing anything, but you still got BCCPLEXWDT?

Watchdog triggers reboot if the system has not responded for over 120 seconds.
Please try the same workflow on DevKit and see if it’s still there.

Also dump the serial console log before the abnormal restart happens.

When I don’t run the program, it still experiences abnormal restart. Below is my kernel log when the problem occurred. he appeared twice in total.
104_ai3_kern.log (36.3 MB)
Additionally. I would like to confirm that I don’t think this Watchdog mechanism is necessary. How can I disable it? It caused me to restart abnormally.

I see that I am not the only one who has encountered this problem. Is this post worth my reference?Debugging BCCPLEXWDT reset source

Hi,

不知道用中文說會不會比較清楚

你給的那串kernel log老實說根本沒用,那只能知道是watchdog觸發的reboot,但是沒辦法知道原因
(通常會戳到watchdog,要嘛是系統卡死、或者kernel panic之類的)
我問你是不是機器擺著、什麼事都不做也會中
你只說When I don’t run the program,但是我根本不知道你所謂的the program是什麼

請你

  1. 確認是不是擺著什麼事都不做也會發生
  2. 在DevKit上能不能複製,才能確認不是hardware問題
  3. serial console log開著,把異常重開前的log貼上來

先回答您的问题.

1.確認是不是擺著什麼事都不做也會發生
这个我需要再次验证一下给你准确的结论但是目前我停止应用程序依然会出现重启
2.在DevKit上能不能複製,才能確認不是hardware問題
我目前手里只有我的定制板卡,我会让其他同事给我答复.
3.serial console log開著,把異常重開前的log貼上來
我提供的是/var/log 下的kernel log我稍后会给你

1.我想知道能不能禁止这种机制因为目前我不需要使用watchdog.
2.如果您能提供这个 BCCPLEXWDT重置源的是因为什么导致的.我可以去更好的排查.
3.Debugging BCCPLEXWDT reset source
这篇文章和我遇到的问题很像.他对我有没有一些参考价值.

Hi,

你可以試試看把Linux_for_Tegra/kernel/dtb/tegra194-p3668-p3509-overlay.dtbo這個檔案轉回device tree source,然後把下面這個node關掉

	fragment@1 {
		target-path = [2f 00];

		board_config {
			odm-data = "enable-denver-wdt";
		};

		__overlay__ {

			watchdog@30c0000 {
				status = "okay";
			};
		};
	};

status= "okay";改成status = "disabled";,包回dtbo之後重燒

我已經說了,我不知道你的系統上具體跑了什麼程式所以很難回答
通常原因就是系統卡死或是kernel panic,所以沒辦法回signal給watchdog timer

這個人遇到的是WiFi driver有問題,應該跟你的case不一樣

我们没有在用户空间操作看门狗,看门狗设备树添加后就会默认使能吗?那默认的喂狗进程在是哪里提供的?

我看不太懂你在說什麼
watchdog跟你有沒有直接操作它沒有關係、它也不是一個process,是單純的hardware裝置
如果你們你們的程式沒問題的話就請用我上面說的方法把它關掉再重燒一次
看看還會不會有其他異常情況

看门狗需要是使能,设置、喂狗几个流程。如果没有使能(enable)看门狗设备即便存在应该也不会工作;如果不进行设置(setting),那它的超时时间是个固定值吗;如果没有周期喂狗(feed)那它是怎么监控内核正常运行的。这些逻辑是在用户空间配置的还是在驱动层自动完成的,还是硬件自己的逻辑?

原來你說的使能是enable的意思…
打開/關閉就是在我說的device tree node上操作
時間的話你可以把整包kernel dtb轉回source,在timeout-sec這個設定裡面改,預設是0x78 (120秒)

	watchdog@30c0000 {
		compatible = "nvidia,tegra-wdt-t18x";
		reg = <0x0 0x30c0000 0x0 0x10000 0x0 0x3020000 0x0 0x10000 0x0 0x3010000 0x0 0x10000>;
		interrupts = <0x0 0x7 0x4 0x0 0x8 0x4>;
		nvidia,watchdog-index = <0x0>;
		nvidia,timer-index = <0x7>;
		nvidia,expiry-count = <0x5>;
		nvidia,enable-on-init;
		nvidia,extend-watchdog-suspend;
		timeout-sec = <0x78>;
		nvidia,disable-debug-reset;
		status = "disabled";
		phandle = <0x43d>;
	};

餵狗的行為是MCU完成的,和software的設定沒有關係

https://codebrowser.dev/linux/linux/tools/testing/selftests/watchdog/watchdog-test.c.html
这段示例代码操作的是哪个WDT?如果这个看门狗超时,会对应哪个复位源的打印。

如果你只是要關watchdog的話麻煩照我上面說的去device tree操作就好

关闭看门狗只是绕过了问题,并没有解决问题。我们还是想知道如何获取更多的调试信息,定位到看门狗复位的细节内容。看门狗一共有几个,分别对应的设备树的些配置,可在系统内操作的是哪个,英伟达官方自有喂狗逻辑的是那些,他们的喂狗操作是什么,每个看门狗对应的复位源是什么?或者那个文档章节能获取到这些信息?

建議你發一篇新的topic
把你想知道關於watchdog的問題描述得清楚一點

我们这周已经同时在Orin和Xavier上面都遇到这样的问题了?您能不能按照这个文章一样;Jetson TX2 reset\powerdown issue - #22 by siddharth2
给我们一个PMIC重置原因的表格或者说明文档以便于我们更快解决问题。

这个文档对我们很重要!!!麻烦您可以提供给我地址链接,十分感谢

這邊解釋一下

你們的log看不到restart的原因是因為你們查錯log… 前面Dave也有提過, 你們需要抓serial console log.
syslog 或是kern.log 這種東西通常沒有紀錄下來kernel panic的stack dump.

而且最常見的狀況是你們拿到的pmic reset reason之後還是解決不了問題…
比方說好了, 100種系統當掉的理由全部都會寫BCCPLEXWDT.
我們給了你表格, 你也只能看出來BCCPLEXWDT, 根本看不出來背後100種當掉的原因是哪個.

1 Like