[PATCH v2 00/10] i2c: xiic: Add features, bug fixes.
Marek Vasut
marex at denx.de
Tue Jul 20 14:43:54 PDT 2021
On 7/20/21 4:19 PM, Raviteja Narayanam wrote:
Hi,
[...]
>>> I have tested this again on our boards with eeprom and other sensors, this
>> is working fine for us.
>>
>> Can you share details of how those tests were performed ?
>
> Stress test - 1:
> Heavy ethernet traffic running in the background.
> I2c commands script (like below) running. We can see visible stutter in the output as expected, but nothing failed.
>
> i=0
> while [ 1 ]
> do
> i2ctransfer -y -f 2 w1 at 0X54 0X00 r31 at 0X54
> i2ctransfer -y -f 2 w1 at 0X54 0X00 r32 at 0X54
> i2ctransfer -y -f 2 w1 at 0X54 0X00 r255 at 0X54
> i2ctransfer -y -f 2 w1 at 0X54 0X00 r273 at 0X54
> i2ctransfer -y -f 2 w1 at 0X54 0X00 r1 at 0X54
Could it be that you never see the problem because you always talk to
one single device ?
Do you also test writes which are not 1 byte long ?
> i=$(expr $i + 1)
> echo "$i"
> done
>
> Stress test - 2:
> Two i2c scripts running in parallel with commands as shown above with different bus numbers (as a result of mux), but going into same XIIC adapter.
> This is also working fine.
Could it be the i2c-dev serializes each of those transfers , so no race
can be triggered ?
> Stress test - 3:
> Two i2c scripts running in parallel with same commands in separate terminals. This is also working fine.
>
> From your log, the race condition is occurring at boot time during i2c clients registration. I am starting a similar test at my setup
> to reproduce this issue at boot time.
Thank you
More information about the linux-arm-kernel
mailing list