quo / ithc-linux

Linux driver for Intel Touch Host Controller
36 stars 7 forks source link

SP8 dmesg errors #31

Open quo opened 3 months ago

quo commented 3 months ago

See https://github.com/linux-surface/linux-surface/issues/1487

Rafostar commented 3 months ago

Hi, on my SP8 I also get a ton of dmesg errors:

[  107.634683] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  107.634701] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 12, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bc 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

These two lines multiplied many times on EVERY screen touch/swipe.

I was able to get rid of this "spam" by decreasing activeltr and idleltr values as error suggested. The highest values that do not produce tons of errors (only 1 such error and rarely/occasionally) were:

activeltr=95 idleltr=105
quo commented 3 months ago

Thanks for the feedback!

Do you actually notice any cursor lag/choppiness related to these errors?

With the default settings, do you see the errors primarily at the start of each touch, or also during? If you continuously touch for several seconds, how many errors do you get (roughly) in the first second, and how many in the rest?

If you only set activeltr=95 and leave idleltr at default, does that reduce errors during a long touch (compared to default activeltr)?

Rafostar commented 3 months ago

With the default settings, do you see the errors primarily at the start of each touch, or also during? If you continuously touch for several seconds, how many errors do you get (roughly) in the first second, and how many in the rest?

Output when holding finger still on screen for 10 seconds (default values, from the moment touch begun):

[  306.948901] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  306.948926] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 6, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  307.058761] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  307.058787] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  307.078759] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  307.078786] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 3, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  307.188728] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  307.188756] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 14, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  307.878069] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  307.878094] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 3, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 83 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  308.277716] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  308.277741] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 11, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ab 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  308.597298] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  308.597324] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 11, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cb 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  309.116822] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  309.116847] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  309.536366] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  309.536392] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 9, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 29 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  309.626223] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  309.626249] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 32 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  309.786188] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  309.786220] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 42 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  309.965940] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  309.965966] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 4, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  310.325561] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  310.325586] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 8, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  310.445492] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  310.445524] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 4, size 641: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 84 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  310.805106] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  310.805140] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 8, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  311.194785] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  311.194811] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cf 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  311.394645] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  311.394670] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 3, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e3 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  312.443360] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  312.443377] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 12, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4c 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  313.502605] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  313.502630] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 6, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b6 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  314.301713] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  314.301738] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 6, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  314.421574] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  314.421599] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  314.661398] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  314.661423] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 10, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2a 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  314.701270] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  314.701295] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 14, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  315.060951] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  315.060982] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 52 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  316.149879] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  316.149904] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bf 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  316.309693] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  316.309719] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cf 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  317.428640] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  317.428666] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3f 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

If you only set activeltr=95 and leave idleltr at default, does that reduce errors during a long touch (compared to default activeltr)?

Done same as above, but with changed activeltr=95 only:

[  478.653173] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  478.653199] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 4, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  479.212598] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  479.212624] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 12, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  479.222557] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  479.222583] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 13, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  479.272518] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  479.272545] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  479.901925] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  479.901957] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 81 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  480.151596] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  480.151622] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 10, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  480.181592] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  480.181617] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 13, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9d 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  480.221608] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  480.221633] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  480.301484] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  480.301516] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 9, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  480.361542] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  480.361574] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 af 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  480.861083] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  480.861109] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  480.911006] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  480.911038] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 6, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  480.940889] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  480.940915] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 9, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  481.140640] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  481.140665] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 13, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fd 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  481.160786] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  481.160812] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  481.510165] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  481.510183] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  482.529308] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  482.529333] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 8, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 88 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  482.629244] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  482.629297] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 92 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  483.508391] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  483.508416] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 10, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ea 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  484.227784] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  484.227809] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 32 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  486.845167] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  486.845192] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 8, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  486.964961] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  486.964987] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 4, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  487.284617] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  487.284643] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 4, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  488.213761] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  488.213787] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c1 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  488.593372] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  488.593398] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 7, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e7 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  488.693272] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  488.693303] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 577: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Other dmesg ithc info that shows when module is loaded:

[  786.766308] ithc 0000:00:10.6: no ACPI config, using legacy mode
[  786.984064] ithc 0000:00:10.6: config: e0000002 00000000 001fc0ff 00000010 00000014 43495424 08e3efe8 0c37045e 00000001 68ceffbd 79e388e9 00000000 336dd17c 00040302 456c40d9 27e8a299

Do you actually notice any cursor lag/choppiness related to these errors?

The problem I have with default settings is that some taps are not being registered/detected at all. This makes writing on on-screen-keyboard a nightmare where I have to tap a button 2-3 times for it to be registered. This seems to be fixed completely by reducing activeltr/idleltr values. Also, not sure why but screen refresh rate seems to have effect here too. On 60Hz experience is terrible, but 120Hz makes osd keyboard work much better, still both have ithc errors in dmesg until values are greatly reduced.

quo commented 3 months ago

Thanks again. I suspect part of the problem is that the driver transitions to the LTR idle state too quickly. So I've added a delay in 8b22c72. Hopefully, with this delay you will see at most one or two errors at the start of a touch, but not during (with default ltr settings). Please let me know if it helps.

120Hz makes osd keyboard work much better

This is maybe just because the CPU load is a little higher at 120 Hz, so the CPU idles/sleeps less often. The errors only happen when the CPU is in a deep sleep state, and wakes up too slowly to transfer the touchscreen data in time. The LTR value sets the maximum wakeup latency, so low values keep the CPU from sleeping deeply and increase power usage. So idle LTR values below about 1000 should really be avoided.

Rafostar commented 3 months ago

Please let me know if it helps.

I compiled and loaded via modprobe. Unfortunately, this does not seem to help currently. Amount of errors seems to not have changed and what's worse is that it also prints errors even with reduced activeltr/idleltr values.

quo commented 3 months ago

That's really weird... On my SP7+ the change seems to work (at least it keeps the activeltr value applied continuously during each touch interaction instead of constantly switching back to idle). Can you test whether the module is actually updating correctly by applying something like the following and checking whether the added message shows up in dmesg?

--- a/src/ithc-main.c
+++ b/src/ithc-main.c
@@ -261,6 +261,7 @@ static void ithc_clear_drvdata(void *res)

 static int ithc_start(struct pci_dev *pci)
 {
+   pci_info(pci, "test message\n");
    pci_dbg(pci, "starting\n");
    if (pci_get_drvdata(pci)) {
        pci_err(pci, "device already initialized\n");
Rafostar commented 3 months ago

Can you test whether the module is actually updating correctly

Yes. While I was testing it, I added a message that prints current activeltr and idleltr values, so I knew what was actually set and whether it was custom module loaded :smile:

Although I haven't tried reverting last commit. Dunno what version/commit is currently shipped with surface-linux kernel (to which I compared to). Maybe errors on my side continued due to some earlier git master commit? :thinking:

quo commented 3 months ago

Weird... Maybe the THC LTR register works differently on the SP8? Or maybe I'm just missing something obvious.

Can you post the output of the following commands:

sudo cat /sys/kernel/debug/pmc_core/ltr_show

for x in /sys/devices/system/cpu/cpu0/cpuidle/*; do echo $x `cat $x/{name,desc,latency}`; done

And can you run the following command (this will print ltr/cstate info interleaved with dmesg messages), then try to reproduce the dmesg errors, and post the output:

dmesg -W & { while true; do sudo cat /sys/kernel/debug/pmc_core/ltr_show | grep THC0; echo `sudo cat /sys/kernel/debug/pmc_core/package_cstate_show`; sleep .2; done }
Rafostar commented 3 months ago

@quo

Output of asked commands when using ITHC built from master with default activeltr and idleltr:

cat /sys/kernel/debug/pmc_core/ltr_show

0   PMC0:SOUTHPORT_A                        LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
1   PMC0:SOUTHPORT_B                        LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
2   PMC0:SATA                               LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
3   PMC0:GIGABIT_ETHERNET                   LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
4   PMC0:XHCI                               LTR: RAW: 0x89e8                Non-Snoop(ns): 0                Snoop(ns): 499712          
5   PMC0:Reserved                           LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
6   PMC0:ME                                 LTR: RAW: 0x8000800             Non-Snoop(ns): 0                Snoop(ns): 0               
7   PMC0:EVA                                LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
8   PMC0:SOUTHPORT_C                        LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
9   PMC0:HD_AUDIO                           LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
10  PMC0:CNV                                LTR: RAW: 0x8c2a8c2a            Non-Snoop(ns): 1376256          Snoop(ns): 1376256         
11  PMC0:LPSS                               LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
12  PMC0:SOUTHPORT_D                        LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
13  PMC0:SOUTHPORT_E                        LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
14  PMC0:CAMERA                             LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
15  PMC0:ESPI                               LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
16  PMC0:SCC                                LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
17  PMC0:ISH                                LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
18  PMC0:UFSX2                              LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
19  PMC0:EMMC                               LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
20  PMC0:WIGIG                              LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
22  PMC0:THC1                               LTR: RAW: 0x0                   Non-Snoop(ns): 0                Snoop(ns): 0               
23  PMC0:CURRENT_PLATFORM                   LTR: RAW: 0x40201               Non-Snoop(ns): 0                Snoop(ns): 0               
24  PMC0:AGGREGATED_SYSTEM                  LTR: RAW: 0x7f9ebff             Non-Snoop(ns): 0                Snoop(ns): 1047552

for x in /sys/devices/system/cpu/cpu0/cpuidle/*; do echo $x `cat $x/{name,desc,latency}`; done
/sys/devices/system/cpu/cpu0/cpuidle/state0 POLL CPUIDLE CORE POLL IDLE 0
/sys/devices/system/cpu/cpu0/cpuidle/state1 C1_ACPI ACPI FFH MWAIT 0x0 1
/sys/devices/system/cpu/cpu0/cpuidle/state2 C2_ACPI ACPI FFH MWAIT 0x31 253
/sys/devices/system/cpu/cpu0/cpuidle/state3 C3_ACPI ACPI FFH MWAIT 0x60 1048

Below command. At the beginning run without touching screen (no errors interwoven), then a touch and hold on screen (erros appear), afterwards touch released (errors stopped printing):

dmesg -W & { while true; do sudo cat /sys/kernel/debug/pmc_core/ltr_show | grep THC0; echo `sudo cat /sys/kernel/debug/pmc_core/package_cstate_show`; sleep .2; done }
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197018735 Package C3 : 19409356 Package C6 : 186356091 Package C7 : 5221040 Package C8 : 37574302 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197085665 Package C3 : 19410289 Package C6 : 186443703 Package C7 : 5222443 Package C8 : 37582289 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197153162 Package C3 : 19411094 Package C6 : 186530831 Package C7 : 5224222 Package C8 : 37592037 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197213139 Package C3 : 19424641 Package C6 : 186598515 Package C7 : 5227382 Package C8 : 37596040 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197280525 Package C3 : 19425400 Package C6 : 186686789 Package C7 : 5230037 Package C8 : 37601828 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197334941 Package C3 : 19485006 Package C6 : 186718754 Package C7 : 5232092 Package C8 : 37602818 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197403993 Package C3 : 19485800 Package C6 : 186804612 Package C7 : 5235836 Package C8 : 37607741 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197471619 Package C3 : 19487224 Package C6 : 186889859 Package C7 : 5238725 Package C8 : 37613269 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197538687 Package C3 : 19492372 Package C6 : 186976111 Package C7 : 5239996 Package C8 : 37619343 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197605130 Package C3 : 19493579 Package C6 : 187059696 Package C7 : 5242160 Package C8 : 37628293 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 197674753 Package C3 : 19494231 Package C6 : 187158971 Package C7 : 5243427 Package C8 : 37633268 Package C9 : 0 Package C10 : 0
[  637.276085] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  637.276147] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 11, size 961: 03 00 00 00 cc 10 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ab 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  637.316020] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  637.316045] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 af 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 197724001 Package C3 : 19495219 Package C6 : 187209305 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  637.455751] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  637.455768] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 13, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bd 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  637.495864] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  637.495889] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c1 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  637.535710] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  637.535735] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 5, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c5 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  637.565744] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  637.565770] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 8, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 197757430 Package C3 : 19498413 Package C6 : 187244539 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  637.765526] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  637.765551] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 12, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 dc 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  637.825461] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  637.825487] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e2 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  637.875434] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  637.875460] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 7, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e7 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  637.905393] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  637.905418] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 10, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ea 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 197785717 Package C3 : 19508155 Package C6 : 187260172 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  638.065255] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.065280] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 10, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  638.095300] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.095325] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 13, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fd 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  638.135150] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.135168] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  638.185060] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.185076] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 6, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 06 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 197822958 Package C3 : 19509183 Package C6 : 187306213 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  638.335043] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.335068] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 5, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 15 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  638.414915] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.414940] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 13, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1d 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  638.484812] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.484837] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 4, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 24 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 197867627 Package C3 : 19510362 Package C6 : 187360565 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  638.624706] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.624732] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 32 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  638.654762] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.654788] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 5, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  638.714585] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.714609] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 11, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3b 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  638.744572] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.744588] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 14, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3e 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  638.774567] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.774592] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 197898669 Package C3 : 19521789 Package C6 : 187391899 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  638.944364] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.944391] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 52 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  638.994305] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  638.994330] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 7, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 57 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.034311] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.034336] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 11, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5b 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.074281] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.074307] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5f 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 197932474 Package C3 : 19522294 Package C6 : 187423054 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  639.214105] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.214172] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 13, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6d 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.274049] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.274074] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 3, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 73 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.304088] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.304114] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 6, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 76 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.333997] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.334022] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 9, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 79 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.363960] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.363985] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 12, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7c 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 197963661 Package C3 : 19522778 Package C6 : 187460259 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  639.533854] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.533879] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 13, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 8d 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.593743] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.593768] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 3, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.643642] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.643658] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 8, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 98 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198001735 Package C3 : 19529084 Package C6 : 187498221 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  639.813542] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.813567] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 9, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 a9 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.853565] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.853590] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 13, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ad 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.883456] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.883481] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 0, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b0 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  639.933437] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  639.933461] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 5, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b5 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198034404 Package C3 : 19543541 Package C6 : 187524243 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  640.083245] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  640.083270] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 4, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 c4 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  640.143205] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  640.143221] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 10, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ca 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  640.193110] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  640.193165] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cf 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  640.223123] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  640.223181] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d2 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198059874 Package C3 : 19568919 Package C6 : 187530920 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  640.372988] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  640.373014] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e1 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  640.432919] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  640.432944] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 7, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e7 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  640.472869] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  640.472896] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 11, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 eb 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  640.492837] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  640.492862] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 13, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ed 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198095045 Package C3 : 19569594 Package C6 : 187568374 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  640.722652] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  640.722678] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 4, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  640.752583] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  640.752609] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 7, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 07 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198147014 Package C3 : 19570511 Package C6 : 187639921 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  641.002332] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.002358] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 0, size 321: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.052342] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.052367] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 5, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 25 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.092344] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.092370] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 9, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 29 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198182142 Package C3 : 19599107 Package C6 : 187655350 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  641.252101] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.252132] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 9, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 39 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.282095] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.282127] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 12, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.312175] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.312193] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3f 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.352005] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.352030] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 3, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198219469 Package C3 : 19599690 Package C6 : 187694326 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  641.531865] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.531891] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 5, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.581796] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.581821] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 10, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5a 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.621789] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.621815] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 14, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5e 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.651787] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.651811] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 61 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.681683] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.681709] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 4, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198252090 Package C3 : 19599871 Package C6 : 187732189 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  641.811667] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.811692] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 1, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 71 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.841541] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.841567] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 4, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 74 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.871528] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.871553] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 7, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 77 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  641.951443] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  641.951469] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7f 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198288075 Package C3 : 19600329 Package C6 : 187775290 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  642.141264] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  642.141293] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 2, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 92 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  642.181222] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  642.181248] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 6, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 96 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  642.241211] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  642.241235] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 12, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 9c 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198330767 Package C3 : 19601193 Package C6 : 187815219 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  642.430966] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  642.430992] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 15, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 af 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  642.470975] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  642.470992] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 3, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b3 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  642.540896] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  642.540921] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 10, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ba 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198375288 Package C3 : 19604621 Package C6 : 187867845 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
[  642.710669] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  642.710695] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 11, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cb 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  642.760638] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  642.760664] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 0, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d0 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[  642.830185] ithc 0000:00:10.6: DMA RX timeout/error (try decreasing activeltr/idleltr if this happens frequently)
[  642.830210] ithc 0000:00:10.6: invalid dma rx data! channel 1, buffer 7, size 961: 03 00 00 00 ac 0d 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 d7 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198409569 Package C3 : 19605092 Package C6 : 187898240 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198473389 Package C3 : 19606072 Package C6 : 187990950 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198535258 Package C3 : 19633073 Package C6 : 188061710 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x8861                Non-Snoop(ns): 0                Snoop(ns): 99328           
Package C2 : 198600859 Package C3 : 19636619 Package C6 : 188157050 Package C7 : 5245742 Package C8 : 37639018 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 198666193 Package C3 : 19686264 Package C6 : 188193890 Package C7 : 5245742 Package C8 : 37645221 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 198732353 Package C3 : 19697803 Package C6 : 188228695 Package C7 : 5250702 Package C8 : 37662142 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 198807141 Package C3 : 19698692 Package C6 : 188284834 Package C7 : 5251889 Package C8 : 37686035 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 198874355 Package C3 : 19773274 Package C6 : 188296066 Package C7 : 5251889 Package C8 : 37696982 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 198950426 Package C3 : 19775033 Package C6 : 188342358 Package C7 : 5252987 Package C8 : 37725263 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 199030192 Package C3 : 19776483 Package C6 : 188398742 Package C7 : 5255072 Package C8 : 37750855 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 199104104 Package C3 : 19778251 Package C6 : 188452088 Package C7 : 5257560 Package C8 : 37773793 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 199174764 Package C3 : 19800121 Package C6 : 188485597 Package C7 : 5259198 Package C8 : 37793616 Package C9 : 0 Package C10 : 0
21  PMC0:THC0                               LTR: RAW: 0x905f                Non-Snoop(ns): 0                Snoop(ns): 99614720        
Package C2 : 199249323 Package C3 : 19801225 Package C6 : 188528056 Package C7 : 5262769 Package C8 : 37819966 Package C9 : 0 Package C10 : 0
quo commented 3 months ago

Awesome, thanks. It actually looks like the THC LTR register is working:

However, I don't really understand why it still goes into C6, because I think MWAIT 0x31 would be C4 (even though it's labeled C2_ACPI), and if that's marked as having 253us latency, then if LTR is set to ~100us, it shouldn't go into a state with higher latency... So clearly there's something I'm missing there, I'll have to look at how the cpuidle stuff works a little better some time.

Anyway, can you try the last test again, but with activeltr=1 (or even 0 if the hardware accepts that)? Does that stop it from going into higher C-states, stopping the errors? And if that works, can you try to find the highest activeltr that minimizes the errors?

Rafostar commented 3 months ago

Anyway, can you try the last test again, but with activeltr=1 (or even 0 if the hardware accepts that)? Does that stop it from going into higher C-states, stopping the errors? And if that works, can you try to find the highest activeltr that minimizes the errors?

Yes. Actually, I did some testing with it and you are right on spot. As long as C6 is not entered there are no errors.

Loading ITHC git master with activeltr=50 and default idleltr=100000 helps a lot. Observing C-states I can see >= C6 are not reached when interacting with touchscreen. Active LTR values >= 55 do not prevent C6, thus lots of errors. When finger is released after approx. 1s (which comes from ithc_idle_delay_ms = 1000) CPU goes immediately up to C8 without problems.

quo commented 2 months ago

Thanks. I've changed the default activeltr to 50us in 34539af4.

I did some more testing on my SP7+, and noticed that it also still goes into C6 with activeltr=100. No errors though. And I have to go down to activeltr=71 to stop it going into C6. I wonder where that threshold is coming from, because it's not using the ACPI latency values, and I also can't find these values in the kernel. Maybe hardcoded in PMC firmware?

(Thinking out loud:) I'm wondering if maybe we should be applying the LTR values differently. The CPU (and RAM) only needs to wake up in time when a DMA transfer starts, and be kept awake during the transfer. It seems wasteful to keep it completely out of deeper C-states in between the transfers. On SP7+ the SPI speed is almost 18MHz, and multitouch data arrives at 100Hz in 3564 byte packets (+ some overhead). So probably less than 20% of the time there is a transfer going on. With pen data it's a little worse: about 15kB at 67Hz. So that's closer to 50% utilization. Maybe we should be applying activeltr only during the transfer, applying a low idleltr in between transfers, and a high/disabled idleltr after some period of inactivity? I need to investigate what the Windows driver is doing.