ChanServ changed the topic of #armlinux to: ARM kernel talk [Upstream kernel, find your vendor forums for questions about their kernels] | https://libera.irclog.whitequark.org/armlinux
Grimler has quit [Ping timeout: 246 seconds]
Grimler has joined #armlinux
Tokamak has quit [Read error: Connection reset by peer]
Tokamak has joined #armlinux
apritzel_ has quit [Ping timeout: 256 seconds]
Peng_Fan has joined #armlinux
ywnkmn_ has quit [Quit: ywnkmn_]
ywnkmn has joined #armlinux
ywnkmn has left #armlinux [#armlinux]
jlinton3 has joined #armlinux
darkapex has joined #armlinux
sicelo_ has joined #armlinux
sicelo_ has joined #armlinux
sicelo_ has quit [Changing host]
jlinton has quit [Ping timeout: 252 seconds]
sicelo_ has quit [Client Quit]
frieder has quit [Ping timeout: 258 seconds]
frieder has joined #armlinux
mcoquelin has quit [Ping timeout: 244 seconds]
mcoquelin has joined #armlinux
<palmer>
FWIW: when we merged the RISC-V stuff we the uABI bits before we took a lot of other stuff, though not entirely sure that was a good idea because everything was broken for quite a while
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #armlinux
rvalue has quit [Read error: Connection reset by peer]
rvalue has joined #armlinux
nsaenz has joined #armlinux
iivanov has joined #armlinux
marex has quit [Ping timeout: 272 seconds]
nsaenz has quit [Remote host closed the connection]
headless has quit [Quit: Konversation terminated!]
apritzel has joined #armlinux
apritzel has quit [Ping timeout: 260 seconds]
iivanov has joined #armlinux
iivanov__ has quit [Ping timeout: 240 seconds]
sszy has joined #armlinux
monstr has quit [Ping timeout: 260 seconds]
NonaSuomy has joined #armlinux
monstr has joined #armlinux
frieder has quit [Remote host closed the connection]
Misotauros has quit [Ping timeout: 240 seconds]
NonaSuomy has quit [Ping timeout: 272 seconds]
iivanov__ has joined #armlinux
NonaSuomy has joined #armlinux
iivanov has quit [Ping timeout: 240 seconds]
tre has quit [Remote host closed the connection]
Misotauros has joined #armlinux
<arnd>
ardb: I checked how __current is accessed in Yegor's kernel build: musb is a loadable module, but only uses __current in tracepoints to record current->cpu, but that should all be disabled at runtime. the usb-serial driver has an ioctl that uses copy_to_user() and needs to look up current_thread_info()->cpu_domain.
<arnd>
I don't think it's that either
<ardb>
arnd: yeah i don't think that matters in particular, but it's something i wanted to check
<arnd>
the CAN networking code uses rcu_read_lock(), which modifies current->preempt_count
<arnd>
if that gets out of sync, I can imaging observing an RCU stall
<ardb>
my current hypothesis is that the larger size of the asm() block in get_current() when v6+SMP is enabled results in different behavior in GCC when it comes to spilling vs reloading the value of current
<ardb>
and we may end up using a stale value of current somewher
<arnd>
the preempt count is also modified in softirqs, which is how the dmaengine code may factor in
<ardb>
hence the suggestion to add the dummy asm constraint
<ardb>
only his config does not enable PREEMPT afaict
<arnd>
CONFIG_PREEMPT_NONE=y
<arnd>
right, but there is still CONFIG_PREEMPT_COUNT=y
<arnd>
lockdep is also what turns on the tracepoints in the musb code
NonaSuomy has quit [Ping timeout: 255 seconds]
monstr has quit [Remote host closed the connection]
<arnd>
ardb: here is a theory: one broken get_current() makes current->preempt_count gets out of sync, so softirqs remain disabled in the idle task, and the rcu timer never gets scheduled. After 2.6 seconds, some timeout hits in cpufreq, which wakes up the workqueue thread to changes. In the middle of that worker, the timer tick hits the next time, and the softirq finally wakes up, noticing the stall
<ardb>
arnd: could be
ywnkmn has joined #armlinux
guillaume_g has quit [Quit: Konversation terminated!]