Random stack corruption on v5.13 with dra76

Tony Lindgren tony at atomide.com
Fri May 21 06:06:16 PDT 2021


Hi,

* Tomi Valkeinen <tomi.valkeinen at ideasonboard.com> [210521 12:57]:
> Well... I guess there's no bug as such. The simple-pm-bus just uses a lot
> more stack. Looking at the reports from CONFIG_STACK_TRACER, in the good
> commit the biggest stack is in USB probing with depth of 4896. With
> 01d7136894410a71932096e0fb9f1d301b6ccf07, and a debug print in
> omap_i2c_xfer_common, I can get to 7544.
> 
> I don't know what to do about this, so I'm giving up for the time being and
> "fix" it for myself by increasing THREAD_SIZE_ORDER.
> 
> # cat /sys/kernel/debug/tracing/stack_trace
>         Depth    Size   Location    (143 entries)
>         -----    ----   --------
>   0)     7544      28   ftrace_graph_call+0x0/0xc
>   1)     7516      28   rcu_read_lock_sched_held+0x38/0x88
>   2)     7488     120   lock_acquire+0x1ac/0x560
>   3)     7368      16   _raw_spin_lock_irqsave+0x64/0x80
>   4)     7352      56   timekeeping_advance+0x3c/0x934
>   5)     7296     144   update_wall_time+0x1c/0x20
>   6)     7152      16   tick_do_update_jiffies64+0x1f0/0x304
>   7)     7136     104   tick_sched_timer+0xf0/0x10c
>   8)     7032      96   __hrtimer_run_queues+0x2d8/0x68c
>   9)     6936     112   hrtimer_interrupt+0x158/0x388
>  10)     6824      16   dmtimer_clockevent_interrupt+0x34/0x3c
>  11)     6808      64   __handle_irq_event_percpu+0x108/0x384
>  12)     6744      40   handle_irq_event+0x68/0xe0
>  13)     6704      32   handle_fasteoi_irq+0xbc/0x224
>  14)     6672      40   __handle_domain_irq+0x98/0x10c
>  15)     6632      48   gic_handle_irq+0x9c/0xc4
>  16)     6584      68   __irq_svc+0x70/0x98
>  17)     6516      60   console_unlock+0x444/0x688
>  18)     6456     196   vprintk_emit+0x138/0x344
>  19)     6260      68   vprintk_default+0x34/0x3c
>  20)     6192      48   vprintk_func+0xec/0x194
>  21)     6144      24   printk+0x3c/0x64
>  22)     6120     104   omap_i2c_xfer_common+0x698/0x6e4
>  23)     6016      16   omap_i2c_xfer_irq+0x1c/0x20
>  24)     6000      80   __i2c_transfer+0x184/0xa80
>  25)     5920      40   i2c_transfer+0xa8/0x144
>  26)     5880      64   regmap_i2c_read+0x6c/0xa8
>  27)     5816      72   _regmap_raw_read+0x138/0x474
>  28)     5744      40   _regmap_bus_read+0x54/0x80
>  29)     5704      56   _regmap_read+0x74/0x248
>  30)     5648      32   regmap_read+0x4c/0x70
>  31)     5616      32   regulator_get_voltage_sel_regmap+0x40/0x94
>  32)     5584      32   regulator_attr_is_visible+0x18c/0x278
>  33)     5552      88   internal_create_group+0xe4/0x3e0
>  34)     5464      40   internal_create_groups.part.0+0x54/0x98
>  35)     5424      16   sysfs_create_groups+0x24/0x30
>  36)     5408      96   device_add+0x280/0x944
>  37)     5312     104   regulator_register+0x694/0xc4c
>  38)     5208      32   devm_regulator_register+0x48/0x84
>  39)     5176      72   palmas_smps_registration+0x1b4/0x480
>  40)     5104     136   palmas_regulators_probe+0x348/0x450
>  41)     4968      32   platform_probe+0x68/0xc8
>  42)     4936      64   really_probe+0x114/0x588
>  43)     4872      48   driver_probe_device+0x88/0x1f0
>  44)     4824      32   __device_attach_driver+0xac/0x118
>  45)     4792      48   bus_for_each_drv+0x90/0xe0
>  46)     4744      48   __device_attach+0xe0/0x1ec
>  47)     4696      16   device_initial_probe+0x1c/0x20
>  48)     4680      32   bus_probe_device+0x98/0xa0
>  49)     4648      96   device_add+0x37c/0x944
>  50)     4552      16   of_device_add+0x44/0x4c
>  51)     4536      40   of_platform_device_create_pdata+0xa0/0xcc
>  52)     4496     112   of_platform_bus_create+0x1bc/0x34c
>  53)     4384      48   of_platform_populate+0x90/0x124
>  54)     4336      32   devm_of_platform_populate+0x4c/0x90
>  55)     4304      88   palmas_i2c_probe+0x478/0x608
>  56)     4216      40   i2c_device_probe+0x2a0/0x2f8
>  57)     4176      64   really_probe+0x114/0x588
>  58)     4112      48   driver_probe_device+0x88/0x1f0
>  59)     4064      32   __device_attach_driver+0xac/0x118
>  60)     4032      48   bus_for_each_drv+0x90/0xe0
>  61)     3984      48   __device_attach+0xe0/0x1ec
>  62)     3936      16   device_initial_probe+0x1c/0x20
>  63)     3920      32   bus_probe_device+0x98/0xa0
>  64)     3888      96   device_add+0x37c/0x944
>  65)     3792      24   device_register+0x24/0x28
>  66)     3768      48   i2c_new_client_device+0x140/0x264
>  67)     3720     112   of_i2c_register_devices+0xdc/0x188
>  68)     3608      64   i2c_register_adapter+0x220/0x700
>  69)     3544      32   __i2c_add_numbered_adapter+0x60/0xac
>  70)     3512      32   i2c_add_adapter+0xa0/0xe4
>  71)     3480      16   i2c_add_numbered_adapter+0x2c/0x30
>  72)     3464      80   omap_i2c_probe+0x404/0x6b8
>  73)     3384      32   platform_probe+0x68/0xc8
>  74)     3352      64   really_probe+0x114/0x588
>  75)     3288      48   driver_probe_device+0x88/0x1f0
>  76)     3240      32   __device_attach_driver+0xac/0x118
>  77)     3208      48   bus_for_each_drv+0x90/0xe0
>  78)     3160      48   __device_attach+0xe0/0x1ec
>  79)     3112      16   device_initial_probe+0x1c/0x20
>  80)     3096      32   bus_probe_device+0x98/0xa0
>  81)     3064      96   device_add+0x37c/0x944
>  82)     2968      16   of_device_add+0x44/0x4c
>  83)     2952      40   of_platform_device_create_pdata+0xa0/0xcc
>  84)     2912     112   of_platform_bus_create+0x1bc/0x34c
>  85)     2800      48   of_platform_populate+0x90/0x124
>  86)     2752     104   sysc_probe+0x10e4/0x1628
>  87)     2648      32   platform_probe+0x68/0xc8
>  88)     2616      64   really_probe+0x114/0x588
>  89)     2552      48   driver_probe_device+0x88/0x1f0
>  90)     2504      32   __device_attach_driver+0xac/0x118
>  91)     2472      48   bus_for_each_drv+0x90/0xe0
>  92)     2424      48   __device_attach+0xe0/0x1ec
>  93)     2376      16   device_initial_probe+0x1c/0x20
>  94)     2360      32   bus_probe_device+0x98/0xa0
>  95)     2328      96   device_add+0x37c/0x944
>  96)     2232      16   of_device_add+0x44/0x4c
>  97)     2216      40   of_platform_device_create_pdata+0xa0/0xcc
>  98)     2176     112   of_platform_bus_create+0x1bc/0x34c
>  99)     2064      48   of_platform_populate+0x90/0x124
> 100)     2016      32   simple_pm_bus_probe+0x54/0x80
> 101)     1984      32   platform_probe+0x68/0xc8
> 102)     1952      64   really_probe+0x114/0x588
> 103)     1888      48   driver_probe_device+0x88/0x1f0
> 104)     1840      32   __device_attach_driver+0xac/0x118
> 105)     1808      48   bus_for_each_drv+0x90/0xe0
> 106)     1760      48   __device_attach+0xe0/0x1ec
> 107)     1712      16   device_initial_probe+0x1c/0x20
> 108)     1696      32   bus_probe_device+0x98/0xa0
> 109)     1664      96   device_add+0x37c/0x944
> 110)     1568      16   of_device_add+0x44/0x4c
> 111)     1552      40   of_platform_device_create_pdata+0xa0/0xcc
> 112)     1512     112   of_platform_bus_create+0x1bc/0x34c
> 113)     1400      48   of_platform_populate+0x90/0x124
> 114)     1352      32   simple_pm_bus_probe+0x54/0x80
> 115)     1320      32   platform_probe+0x68/0xc8
> 116)     1288      64   really_probe+0x114/0x588
> 117)     1224      48   driver_probe_device+0x88/0x1f0
> 118)     1176      32   __device_attach_driver+0xac/0x118
> 119)     1144      48   bus_for_each_drv+0x90/0xe0
> 120)     1096      48   __device_attach+0xe0/0x1ec
> 121)     1048      16   device_initial_probe+0x1c/0x20
> 122)     1032      32   bus_probe_device+0x98/0xa0
> 123)     1000      96   device_add+0x37c/0x944
> 124)      904      16   of_device_add+0x44/0x4c
> 125)      888      40   of_platform_device_create_pdata+0xa0/0xcc
> 126)      848     112   of_platform_bus_create+0x1bc/0x34c
> 127)      736      48   of_platform_populate+0x90/0x124
> 128)      688      32   simple_pm_bus_probe+0x54/0x80
> 129)      656      32   platform_probe+0x68/0xc8
> 130)      624      64   really_probe+0x114/0x588
> 131)      560      48   driver_probe_device+0x88/0x1f0
> 132)      512      32   __device_attach_driver+0xac/0x118
> 133)      480      48   bus_for_each_drv+0x90/0xe0
> 134)      432      48   __device_attach+0xe0/0x1ec
> 135)      384      16   device_initial_probe+0x1c/0x20
> 136)      368      32   bus_probe_device+0x98/0xa0
> 137)      336      48   deferred_probe_work_func+0xac/0xfc
> 138)      288     104   process_one_work+0x270/0x7c4
> 139)      184      48   worker_thread+0x1ec/0x524
> 140)      136      48   kthread+0x160/0x178
> 141)       88       8   ret_from_fork+0x14/0x38
> 142)       80      80   0x0

Heh that's a pretty crazy stack there :)

Tony



More information about the linux-arm-kernel mailing list