When we conducted a restart stress test on the Jetson-Orin-AGX board in conjunction with our baseboard, after 681 rounds of testing, the system experienced lag on the setup page, and the following log was output on the TCU serial terminal.
We did not conduct the test in the environment without the RT patch.
Our product requires a real-time environment. And we had to conduct 681 rounds of stress tests to reproduce this issue once. We are not sure if the problem can be reproduced through stress testing in the environment without the RT patch.
Can we theoretically tell under what circumstances this problem will occur?
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index cd50436..ddf88c3 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -1938,9 +1938,13 @@
* VI I2C device shouldn't be marked as IRQ-safe because VI I2C won't
* be used for atomic transfers.
*/
- if (!i2c_dev->is_vi)
+ if (!i2c_dev->is_vi && !IS_ENABLED(CONFIG_PREEMPT_RT)) {
pm_runtime_irq_safe(i2c_dev->dev);
-
+ dev_info(i2c_dev->dev, "I2C: pm_runtime_irq_safe set (non-RT kernel)\n");
+ }
+ else {
+ dev_info(i2c_dev->dev, "I2C: pm_runtime_irq_safe NOT set (RT kernel or VI I2C)\n");
+ }
pm_runtime_enable(i2c_dev->dev);
err = tegra_i2c_init_hardware(i2c_dev);