Wednesday, 2022-08-31

*** octavius_ <octavius_!~igloo@> has joined #libre-soc00:01
octavius_My router filter turned on (a way to encourage myself to sleep). Have a good night/ day00:02
*** octavius_ <octavius_!~igloo@> has quit IRC00:03
*** octavius <octavius!> has quit IRC00:04
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC00:22
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc00:22
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC01:16
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc01:29
programmerjakelkcl: ok in ci pytest failed again for sv_maxu_works...i'll debug that. it seems likely it'll fail if you test it possibly due to cpython 3.7 bugs or pytest bugs...02:29
programmerjakeI created a python3.7 venv and am running tests on my desktop04:43
programmerjakeall passed...04:51
programmerjakeI think I figured out the problem, pytest's master process is storing all the stdout of each of the tests, and it's currently at 7.6GB and climbing -- I'm running it via gitlab-runner on my desktop05:05
programmerjakeyup, ran out of memory05:07
programmerjakeluke, no matter how you look at it, >14GB of stdout is *too much*, we need to not log so much05:11
programmerjakeand, no, SILENCELOG isn't a good option unless it's set by default...05:12
programmerjakeI added SILENCELOG='!*,default' to .gitlab-ci.yml and that seems to fix it05:35
*** awygle_ <awygle_!~quassel@2604:a880:2:d0::5380:3001> has quit IRC07:49
*** ghostmansd <ghostmansd!> has joined #libre-soc08:03
*** awygle <awygle!~quassel@2604:a880:2:d0::5380:3001> has joined #libre-soc08:35
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC08:38
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc08:39
ghostmansdlkcl, a question on openpower/isa/branch.mdwn08:51
ghostmansdthere's target_addr argument08:52
ghostmansdand I don't see where it maps08:52
ghostmansdYeah I know it's from the spec :-)08:52
ghostmansdI simply cannot convert this stuff because it's not present in fields.text08:53
ghostmansdFrom what I can deduce this target_addr is LI operand with an additional twist08:55
ghostmansdHm. We don't have sv.b, do we?09:04
programmerjaketarget_addr should be the symbol it jumps to...depending on the form and AA bits, the calculation is different09:05
programmerjakewe have sv.bc, i think we don't have sv.b09:05
ghostmansdIsn't it strange?09:05
ghostmansdAh yeah I see09:06
ghostmansd> branch (b) unconditionally is impossible to vectorise, how can you "branch" to multiple locations?09:06
programmerjakei would just add a special case that converts target_addr to whichever field is the correct one, it may be multiple fields for v3.1 prefixed instructions09:07
programmerjakesv.bc does a single branch if any/all vector element conditions come out as true/false09:08
programmerjakegpu code does that a whole bunch, hence the special instruction09:08
ghostmansdOK, fair enough09:10
ghostmansdI was also thinking about a special case09:10
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC11:52
ghostmansdprogrammerjake, done :-)11:55
ghostmansdas a dryve-by change, I also supported GPR/FPR operands11:55
ghostmansdlkcl, I'm still wondering if we could have a task for openpower-isa disassembly, plus for all works already done in scope12:01
programmerjakere target_addr: nice! turns out i was wrong, there are no other v3.1b instructions using target_addr, and i didn't see any v3.1 prefixed branch instructions when glancing through it just now12:04
programmerjakeglancing through the spec pdf12:05
ghostmansdEven if there are, now handling these is super simple12:31
ghostmansdCompared to binutils, at least12:31
ghostmansdThough even in binutils most cases are good, except for few ones (including target_addr, by the way)12:31
*** ghostmansd <ghostmansd!> has quit IRC12:47
*** ghostmansd[m] <ghostmansd[m]!> has quit IRC13:10
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc13:11
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc13:24
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC13:53
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc13:56
*** octavius <octavius!> has joined #libre-soc14:01
lkclghostmansd[m], i know - i'm overwhelmed at the moment.14:06
lkclnone of the sv.bc* work is completed (but the spec is).14:06
lkclbut you cannot do multiple unconditional branches to multiple locations.  it is physically impossible (unless you want to redefine the concept of sv.b to be "start N hyper-threads") which is a can-o-worms14:07
ghostmansd[m]Yeah I got it :-)14:08
ghostmansd[m]But kinda in retrospective, when I realized what conditional branches do14:09
lkclhuhn? target_addr doesn't exist in section 1.6.  huhn??14:10
lkclPO BO BI BD AA LK14:10
lkclLI AALK14:11
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC14:14
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc14:15
lkclghostmansd[m], those are going to have to change to the correct constants14:16
lkclin the mdwn14:16
ghostmansd[m]Naaah, it's same in spec14:17
ghostmansd[m]target_addr depends on the form and other fields14:17
ghostmansd[m]And is resolved to either LI or BD14:17
ghostmansd[m]And also sign-extended14:17
ghostmansd[m]I made it work to some degree14:18
ghostmansd[m](I haven't bother about sign extension, though; only disassembler)14:18
lkcl1 sec let me check14:19
lkclah i.e. what the target_addr is is dependent on the *other* flags, yes?14:20
lkclbut, hang on14:21
lkcllook at the pseudocode14:21
lkclif AA then NIA iea EXTS(LI || 0b00)14:22
lkclelse       NIA iea CIA + EXTS(LI || 0b00)14:22
lkclthat's reading from LI.14:22
lkclwhich is in the I-Form14:22
lkclso that tells me that the definition should be14:22
lkcl* b LI14:22
lkcl* ba LI14:22
lkcl* bl LI14:22
lkcl* bla LI14:22
lkclnot target_addr at all14:23
lkclso i'm going to fix that by *replacing* target_addr with "LI" and also raise it as a bugreport on the (secretive) OPF ISA WG issue tracker14:24
* lkcl urrr have to run branch unit tests... urrr....14:27
lkclfound some14:28
lkclpassed!14:29 passed (it has a bc in it)14:31 branch HDL confirmed working14:32 also confirmed working (contains another bc)14:32
lkclok i'm happy with that14:32
lkclthere's one more i want to run - it's the "general" test (i know it has a cute loop in it)14:38
lkclyep all good14:40
* lkcl need a break then i can get to the maxu branc14:43
*** octavius <octavius!> has quit IRC15:14
lkclprogrammerjake, sv_maxu_works branch is merged, it passed this time, i have who-knows-why-it-failed idea16:15
lkcli'm re-running to make absolutely sure16:16
lkcli had to deal with two merge conflicts though, on gitlab-ci.yml16:16
lkcli have no idea which one is valid16:16
lkclprogrammerjake, also, please do not re-open that bugreport.  i will continue to close it.  i cannot explain why what you wrote is invalid because i am under strict Confidentiality with the OPF ISA WG but know about information that i cannot reveal which will make the objection you raise moot and thus the task invalid.16:24
*** octavius <octavius!> has joined #libre-soc16:29
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC16:53
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc16:54
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC17:13
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc17:15
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC17:21
lkclwhich i am not in the least bit happy about.18:05
*** ghostmansd <ghostmansd!> has joined #libre-soc18:26
programmerjakelkcl, if you think you merged the changes in sv_maxu_works into master, you didn't -- because of all the reverts, merging backed out nearly all the changes i made18:40
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has quit IRC18:47
programmerjakealso, lkcl, i raised more than one reason to rewrite the parser, are any of them *not* invalidated by what you can't reveal? unless there's a wip pseudocode parser by the isa wg, most of the reasons to want to rewrite our parser should still be valid -- it still has terrible error detection/handling wether or not OPF wants to use ours.18:48
programmerjakewe still want to make something that can output c -- assuming the isa wg doesn't have code that already does that18:50
programmerjakerewriting should be only somewhat harder than solving either of those issues independently18:51
programmerjakei'll merge master into sv_maxu_works and add the needed reverts of reverts, then you should be able to merge again.18:56
ghostmansdGuys, please run tests before merging. I'm always stumbling when I meet unknown errors, I'm not as good in overall project's architecture as you're, so please ensure things work.18:57
*** ghostmansd[m] <ghostmansd[m]!> has joined #libre-soc18:59
programmerjakelkcl probably ran tests before merging, assumed merging wouldn't change that, and merged and pushed.19:00
programmerjakebecause of the revert commits, only the utf-8 tests should be failing on master19:00
programmerjakeghostmansd sorry for the trouble19:02
ghostmansdNothing to worry about, I also broke master :-)19:02
ghostmansdWell, there's something to worry, but it happens to all of us19:02
ghostmansdThank you for your hard work!19:02
ghostmansdTo both of you19:03
programmerjakethank you ghostmansd too!19:09
programmerjakeand everyone else who contributed to libre-soc19:10
lkclngggh streeeeessed19:10
lkclprogrammerjake, for future reference, you should have a branch that goes from the (current) master so that a simple "git rebase {name_of_branch}" will work19:11
lkcli leave it to you to sort out19:12
programmerjakei think we should git merge rather than git rebase when merging my branch...19:13
programmerjakei'll let you know once i got it working19:14
programmerjakeor, should i just merge into master when it's working and passes all tests? that way you don't have to do anything extra19:15
lkcli leave it to you to sort out, but do it quickly as it's stopping ghostmansd from doing any work (and me)19:16
ghostmansdPlease don't use merge. It makes the history complicated.19:17
ghostmansdAnd I'd rather want it to be linear.19:17
lkclthe next high priority item is the transcendentals.19:17
lkclyeah i can't stand merge either19:17
ghostmansdI always use `git pull origin branch --rebase`.19:17
lkclit would actually likely be better to do a force-master push back to the previous point but i have no f*****g idea what that is19:18
ghostmansdWell I guess Jacob knows19:18
programmerjakethere isn't one, ghostmansd's commits are interleaved with our mess19:18
lkclprogrammerjake, ghostmansd i've allocated all of the transcendentals bugreport to you both, 50% each.  ghostmansd for the work already done, it's... complicated.19:19
ghostmansdprogrammerjake, perhaps you could simply cherry-pick these commits. They either haven't touched simulation at all, or were tested.19:25
ghostmansdAnd perhaps our works haven't interleaved...19:25
ghostmansdWell, at least, that's my hopes.19:25
*** lxo <lxo!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc19:33
programmerjakeah, good idea19:34
lkclah HA! the original branch point, before the rebase-update, is actually the pagereader branch20:06
lkclcommit 38e399d17052b0eb8882e218d4fbf4fb1677d638 (HEAD, origin/pagereader, pagereader)20:07
lkclAuthor: Dmitry Selyutin <>20:07
lkclDate:   Tue Aug 30 21:41:05 2022 +030020:07
lkcl    bcd.mdwn: fix cbcdtd operands20:07
lkclghostmansd, ah i know what it is.  there's actually nothing "wrong" - you had simply forgotten to run "pywriter"20:09
lkcl"pywriter noall branch"20:09
lkclbecause i had updated the branch.mdwn pseudocode to replace target_addr with LI for b and BD for bc20:10
lkclprogrammerjake, if you can confirm that (locally) it would be good20:10
* lkcl re-running all tests now with latest master just to confirm20:13
programmerjakelkcl, if you pushed whatever commit your testing >1hr ago, ci should have already completed, you can just check there:
ghostmansd[m]Yeah quite likely20:25
lkcli prefer to use local testing.20:25
lkclok so the results are that utf8_validate is failing (no maxu) but everything else passes20:25
ghostmansd[m]Perhaps we could enforce pywriter be run upon modules import?20:26
lkcl(including all branch operations, and yes i re-ran pywriter noall branch just to make sure)20:26
ghostmansd[m]E.g. whatever crap uses caller should make it be run20:26
lkclmmmm.... that would slow everything down.20:26
lkclfor which there does exist a compilation-cache (a feature of python-ply)20:27
ghostmansd[m]IIRC it takes about a couple of seconds to complete20:27
lkclbut it only makes the reading of the BNF syntax faster, not the actual compilation20:27
lkcltimes 400 tests.20:27
lkclsome of the unit tests have not been converted to cacheing.20:28
ghostmansd[m]Ah OK20:28
lkclbasically it's a lot of work to avoid just running one single command20:28
ghostmansd[m]Yeah fair enough20:28
lkclwhich, yes, if forgotten is a pain in the ass20:28
lkcloh i know20:28
lkcl*checking* it's needed should be brain-dead-simple: timestamps on the mdwn and the compiled .py20:29
lkcli just did a "git diff sv_maxu_works" and it's as if it had never been rebased-in to master20:31
* lkcl very confused20:32
programmerjakethats because of all the git reverts, as i explained earlier20:47
programmerjakethey came after the commits on sv_maxu_works, so git rebase used them20:47
programmerjakei'll fix and push later today20:49
lkclok brilliant20:52
lkclghostmansd[m], do go ahead and raise a pysvp64dis bugreport, it keeps track of things anyway20:53
ghostmansd[m]Will do tomorrow, still recovering from the flu. I'm not sure where to link it, though.20:54
ghostmansd[m]Anyway, I'll raise it tomorrow, and leave the linkage to you, OK?20:55
programmerjakeghostmansd: hope you feel better!21:13
*** ckie <ckie!~ckie@user/cookie> has quit IRC22:41
*** ckie <ckie!~ckie@user/cookie> has joined #libre-soc22:42
*** octavius <octavius!> has quit IRC22:58

Generated by 2.17.1 by Marius Gedminas - find it at!