[Letux-kernel] jz4730-i2c - clocksource
paul at boddie.org.uk
Sat Mar 6 16:55:52 CET 2021
On Saturday, 6 March 2021 16:04:50 CET H. Nikolaus Schaller wrote:
> Hi Paul,
> seems as if I can now also boot with clocksource=ingenic-timer without
> So avoiding regmap and using at least 26 bits (I also want to check 32 bit
> again) makes it work.
Interesting to know that the counter width was an issue.
> BTW: there is one more fix: I am resetting the Underrun flag in the
> interrupt handler. Maybe this prevents that the IRQ stays activated or is
> still active immediately if a new timer request is written. But I have not
> checked if this is really needed.
I think that resetting the flag is just standard practice. Whether it is
technically necessary I wouldn't know without testing: it would depend on the
nature of the hardware, I suppose.
> This seems to be a new research project:
> a) what is the futex doing in sysbench (where is it hidden)?
I guess that somewhere in a library - maybe the C library - there is some
concurrency handling that requires it.
> b) how is futex implemented on jz4730?
A brief look at arch/mips/include/asm/futex.h indicates that the LL/SC
(https://en.wikipedia.org/wiki/Load-link/store-conditional) instruction is
required for futex support. I am not sure this is provided on the JZ4730 or
even on other early XBurst1 CPUs.
> c) why does it block that long?
> Maybe this is also the reason why X11 is that slow.
If that is the cause then I guess it could also be the explanation.
More information about the Letux-kernel