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
qpla_ has joined #armlinux
qpla has quit [Ping timeout: 264 seconds]
qpla_ has quit [Read error: Connection reset by peer]
apritzel has quit [Ping timeout: 256 seconds]
matthias_bgg has quit [Ping timeout: 260 seconds]
heat_ has joined #armlinux
heat has quit [Ping timeout: 260 seconds]
matthias_bgg has joined #armlinux
Emantor has quit [Quit: ZNC - http://znc.in]
Emantor has joined #armlinux
shawnguo has quit [Quit: The Lounge - https://thelounge.chat]
Guest4308 has quit [Quit: ZNC - http://znc.in]
vireshk- has quit [Quit: ZNC - http://znc.in]
vkoul has quit [Quit: ZNC 1.7.2 - https://znc.in]
vkoul has joined #armlinux
vireshk- has joined #armlinux
heat has joined #armlinux
jclsn has quit [Ping timeout: 255 seconds]
heat_ has quit [Read error: Connection reset by peer]
jclsn has joined #armlinux
Peng_Fan has joined #armlinux
heat has quit [Remote host closed the connection]
heat has joined #armlinux
cbeznea_ has joined #armlinux
heat has quit [Ping timeout: 268 seconds]
headless has joined #armlinux
headless has quit [Quit: Konversation terminated!]
sally has joined #armlinux
psydroid has joined #armlinux
apritzel has joined #armlinux
<arnd> ardb: I finally managed to try out the idea I had for a long time to make the thread stack size in the kernel a runtime configurable number by hooking into the CONFIG_RANDOMIZE_KSTACK_OFFSET logic. It took me about half an hour to get a working kernel patch and then three days to figure out how to run syzkaller for testing it out
<arnd> This part seems to work great, but I may need some help from you fro the next step: I have another patch that calls set_memory_valid(..., false) on the top stack pages in order to trigger a page fault but still be able to set it back to valid in the fault handler and continue running after a report
<arnd> The problem I have is getting __bad_stack() to return to an uncorrupted task stack from the overflow stack, which of course is something your original code never expected to happen
<ardb> interesting
<arnd> fwiw, this is the longest stack trace I've seen so far, running a non-KASAN kernel https://www.irccloud.com/pastebin/LW7EIPup/
<ardb> so demand paging for the stack?
<arnd> kind of, yes, just without allocating more memory: my current code just does the vmalloc() as before and then marks some of the pages as invalid
<arnd> actual deman paging might be another option -- in theory we could keep a small pool of preallocated pages and then use that to back the stack when a fault happens
<ardb> indeed - that doesn't sound too hard
<ardb> afair we don't corrupt any state before calling handle_bad_stack() so it should be a matter of handling the return
<ardb> and the original SP should be valid at that point
<arnd> there is this bit in kernel_ventry: /* Either we've just detected an overflow, or we've taken an exception while on the overflow stack. Either way, we won't return to userspace, and can clobber EL0 registers to free up GPRs. */
<arnd> followed by some code I don't really understand
<ardb> ah this is arm64
<ardb> that is a bit trickier
apritzel has quit [Ping timeout: 264 seconds]
ajfriesen6 has joined #armlinux
ajfriesen has quit [Ping timeout: 255 seconds]
ajfriesen6 is now known as ajfriesen
heat has joined #armlinux
heat has quit [Remote host closed the connection]
heat has joined #armlinux
apritzel has joined #armlinux
apritzel has quit [Ping timeout: 264 seconds]
headless has joined #armlinux
sudeepholla_ has quit [Ping timeout: 268 seconds]
heat has quit [Ping timeout: 260 seconds]
headless has quit [Quit: Konversation terminated!]
psydroid has quit [Quit: KVIrc 5.0.0 Aria http://www.kvirc.net/]
hgg has quit [Ping timeout: 264 seconds]
hgg has joined #armlinux
cbeznea_ has quit [Ping timeout: 264 seconds]
apritzel has joined #armlinux
matthias_bgg has quit [Ping timeout: 256 seconds]
matthias_bgg has joined #armlinux