IRC logs for #openrisc Wednesday, 2017-09-27

--- Log opened Wed Sep 27 00:00:03 2017
-!- Netsplit *.net <-> *.split quits: X-Scale, shorne00:29
-!- [X-Scale] is now known as X-Scale00:30
-!- Netsplit over, joins: shorne00:30
mithroAny idea why this EXCEPTION_STACK_SIZE needs to be 256? This change https://github.com/mithro/litex/commit/0797314ca1ae575197dcbef0a2c6d81293f3d4cb fixes random lock ups we were having when using or1k on our real boards and we don't understand why. Everyone seems to use 128+128 without any explanation. The same code works fine when running in QEMU.02:49
mithrostekern / shorne -^02:50
mithrojuliusb said you might know02:51
stekernmithro: that's the red zone03:17
mithroWhat is the redzone and how do I find out about it?03:18
mithroAnd why doesn't the code fail in QEMU?03:19
stekernbut... the red zone should be 128 bytes afair03:22
stekernhttps://en.wikipedia.org/wiki/Red_zone_(computing)03:22
stekernah, but you are using the other 128 bytes for your exception stack03:24
mithrostekern: any idea why it doesn't break in qemu?04:52
mithrostekern: also, why would this make sense on an arch like openrisc which has a register based stack pointer and heaps of registers?05:07
mithroAlso, the link which Wikipedia provides to opencores seems broken :-/05:08
mithrohttp://www.embecosm.com/appnotes/ean3/html/ch04s02s05.html05:11
mithroThe OpenRISC 1000 reserves the 2,560 bytes below the stack pointer for use by exception handlers and frameless functions. This is known as a red zone(an AMD term). 05:11
mithroHrm05:14
mithro* The "red zone" is reduced to 128 bytes, but is now actually used (previously it was defined to be 2K, but not used. It is thus essential that interrupt handlers do not use the first 128 bytes of stack. An option -mredzone=''size'' is available to change this, including setting the red zone to zero (which will reduce performance).05:14
stekernmithro: I don't know why it doesn't break on qemu05:24
stekernmaybe your breakage is timing sensitive and the timing is different on qemu05:25
mithroIt definetly only happens randomly05:27
mithroIE it must only happen when the redzone is used and an interrupt occurs05:28
stekernyes05:29
mithroMaybe qemu only delivers interrupts when certain boundaries occur meaning the redzone is never in use at that time...05:30
stekernthat actually sounds as a pretty plausible explanation05:31
mafm[m]shorne:09:06
mafm[m]Are you the author of jor1k?09:07
mafm[m]Does it work with the latest privilege spec?09:08
shornemafm[m]: I am not the author, its sebasitian macke10:01
shornemithro: I am not sure why that change fixes your issue, what is libbase used for?10:02
Findeany update on when the orconf videos will show up?11:39
mafm[m]shorne: ok, thanks12:45
shornemafm[m]: what about the latest privilage spec though?  I dont know of any recent changes there.19:20
--- Log closed Thu Sep 28 00:00:05 2017

Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!