Saturday, 2022-08-13

programmerjakeghostmansd[m]: I couldn't find your account on debian salsa...01:04
programmerjakei'll send you an email where you can enable getting ci build failure emails if you want that, you'll only get them if the commit tested has you listed as author or committer. if you don't want them, feel free to ignore the email01:07
programmerjakenote the url expires in 3 days01:22
Veera[m]Currently xauth is not installed in Talos server. May I install it? Is there any risk. Because I want ssh X11  forwarding.04:58
Guest16Hi, I am setting up my envt in ubuntu 22.04.05:09
Guest16The charoot contains two users now, one for my normal user and one for root. both have src directories and on has many repos fetched and the other only has hdl_tools.05:10
Guest16is this fine? the SUDO_USER shows root.05:10
sadoon[m]I just snagged a 20-core power9 chip off ebay for 1300$!07:06
sadoon[m]Great upgrade to my current 8-core which cost me the same 3 years ago07:06
sadoon[m]This should immensely help with building debian and gentoo :D07:07
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC07:19
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc07:19
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC07:42
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc07:44
Veera[m]sadoon: HI, have you considered LFS/CLFS!!08:18
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC08:48
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc08:49
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC08:58
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc08:59
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC09:16
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc09:17
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC09:24
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc09:27
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC12:07
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc12:07
openpowerbot[mattermost] <lkcl> sadoon[m], niiice12:25
openpowerbot[mattermost] <lkcl> Guest16, hi12:25
openpowerbot[mattermost] <lkcl> ok. right. what you've probably done, if SUDO_USER==root, is you've typed "schroot -c {insert_your_chroot}" at a *root* prompt12:25
openpowerbot[mattermost] <lkcl> and then perhaps typed "sudo bash" inside the chroot when you were already root.12:25
openpowerbot[mattermost] <lkcl> you should type the "schroot" command when an *ordinary* user12:26
openpowerbot[mattermost] <lkcl> and *then* type "sudo bash" to get to a root user inside the chroot12:26
openpowerbot[mattermost] <lkcl> lkcl@fizzy:~/src/libresoc/openpower-isa$ schroot -c cleansoc12:26
openpowerbot[mattermost] <lkcl> (cleansoc)lkcl@fizzy:~$ env | grep SUDO_USER12:26
openpowerbot[mattermost] <lkcl> (nothing)12:26
openpowerbot[mattermost] <lkcl> (cleansoc)lkcl@fizzy:~$ sudo bash12:26
openpowerbot[mattermost] <lkcl> (cleansoc)root@fizzy:/home/lkcl# env | grep SUDO_USER12:27
openpowerbot[mattermost] <lkcl> SUDO_USER=lkcl12:27
openpowerbot[mattermost] <lkcl> yeh?12:27
openpowerbot[mattermost] <lkcl> so start from an *ordinary* user, with the schroot command: that's what schroot is specifically designed for, and why it was chosen:12:27
openpowerbot[mattermost] <lkcl> to allow an *ordinary user* to gain [controlled] access to chroots.12:27
openpowerbot[mattermost] <lkcl> Veera[m], you good to do this?
lkclGuest16, so for example here:12:31
lkclnotice how it says "exit" to get *OUT* of the root prompt, back to an ordinary user, *BEFORE* running the schroot command?12:32
lkclghostmansd[m], i'm going to be dropping LDSTRM-2P-1S1D-PU mode, programmerjake came up with a scheme that, with a little adapting, can put pack/unpack into the 24-bit prefix modes12:37
Guest16I guess I made that mistake. I will probably will have to do this from scratch I guess.12:45
ghostmansd[m]lkcl, perfect!12:48
openpowerbot[mattermost] <lkcl> Guest16 no not at all12:48
openpowerbot[mattermost] <lkcl> or, well, if you ended up with everything in /home/root/src then that's down to you12:49
Guest16Can I just copy the src dir from root to normal user and continue as nothing like this happened? My worry is if this is going to break something in python as installs were done with 'python3 develop'12:51
openpowerbot[mattermost] <lkcl> yes you can - just remember (laboriously, one by one) to do "python3 develop" in each directory12:52
openpowerbot[mattermost] <lkcl> (as root)12:52
Guest16yes, I can do that. Thanks.12:53
openpowerbot[mattermost] <lkcl> it should not do anything other than just rewrite the /usr/local/lib/python3.7/blahblah .pth file12:53
openpowerbot[mattermost] <lkcl> if you want to make sure it doesn't go off randomly downloading crap off the internet, use the --nodeps option.  python3 develop --nodeps12:53
Guest16If I want to implement things on an FPGA (Say Kintex 7), can I generate verilog code starting with migen and then use that verilog code as a starting point for Xilinx Vivado suit?12:55
openpowerbot[mattermost] <lkcl> yes you can - although none of us have done it, i have used nextpnr-xilinx instead12:56
openpowerbot[mattermost] <lkcl> libresoc.v can be compiled up as a drop-in replacement for microwatt.v (with a little hand-editing)12:57
openpowerbot[mattermost] <lkcl> which is what was done here:
openpowerbot[mattermost] <lkcl> please excuse me i need to go get an aircon unit, urgently12:58
Guest16Sure, thanks for the support.12:59
openpowerbot[mattermost] <lkcl> any time12:59
*** lx0 <lx0!~lxo@gateway/tor-sasl/lxo> has quit IRC14:03
*** lx0 <lx0!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc14:04
*** openpowerbot <openpowerbot!> has quit IRC14:04
*** ghostmansd <ghostmansd!~ghostmans@> has joined #libre-soc14:07
ghostmansdprogrammerjake, lkcl, do these results look well to you? Can I merge the binutils branch?16:02
ghostmansdsrc/openpower/decoder/isa/ OK locally on talos16:04
ghostmansdnope, sorry, this was alu test16:06
ghostmansdin bitmanip, do_case_grev is broken... I'll check on master16:06
ghostmansdlooks like the master is broken too16:09
ghostmansdWow, src/openpower/decoder/isa/ ends with segmentation fault16:10
ghostmansd...and fails on master with some bitching about bmask16:10
ghostmansdsrc/openpower/decoder/isa/ fails on master with KeyError("fmvis")16:11
ghostmansdfolks, I won't commit the code yet, still, I wonder, is it caused by my issues with the environment? If notm how long it was that, despite the fact we have CI, these tests are broken?16:13
ghostmansdsigh, it seems I haven't done the rebase... hang on16:22
ghostmansdOK take 2... src/openpower/decoder/isa/ OK16:26
ghostmansdsrc/openpower/decoder/isa/ fails with KeyError: 'fmvis'16:31
ghostmansdsrc/openpower/decoder/isa/ fails with KeyError: 'bmask'16:34
ghostmansdsrc/openpower/decoder/isa/ fails somewhere in do_case_grev16:35
ghostmansdsrc/openpower/decoder/isa/ OK16:36
sadoon[m]<Veera[m]> "sadoon: HI, have you considered..." <- Not at all16:37
sadoon[m]LFS has no package management whatsoever, you're on your own.16:37
sadoon[m]It would be a waste of time and resources tbh16:37
sadoon[m]We already have all the basic stuff we need anyways, ppc* all have sid variants and gentoo support16:38
*** manili[m] <manili[m]!~manilimat@2001:470:69fc:105::2:479c> has quit IRC17:00
ghostmansdlkcl, a quick question. You mentioned you were going to drop 2P-1S1D-PU form.17:40
ghostmansdIt cancels the task 872, am I right?17:41
*** ghostmansd <ghostmansd!~ghostmans@> has quit IRC17:57
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC18:07
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc18:07
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC18:12
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc18:13
lkclghostmansd[m], pretty impressive when a /usr/bin/python3 segfault occurs, innit? :)18:17
lkclghostmansd[m], yes the grev ones i expect to break, as they are no longer valid18:18
ghostmansd[m]I couldn't even realize why. I rebased the repository and then it became 1:1 with master with some tests I checked.18:18
* lkcl back from shopping for a mini aircon unit, it's so hot now my laptop's in danger18:19
ghostmansd[m]However, since CI is all broken with this soc module, it's hard to tell whether I'm safe to merge the code.18:19
lkclgimme 1 sec to check18:20
ghostmansd[m]That said, no need to merge it now, I'll only need the code generation for binutils.18:20
ghostmansd[m]Since I will have the copy in binutils, this is not urgent.18:20
lkcli've disabled the grev tests, their opcode space allocation has been used for other things18:21
ghostmansd[m]Fine! And what about fmvis and bmask KeyError?18:22
lkcl - no, it changes to "support for new LD/ST, normal and CRops Pack/Unpack mode"18:22
lkclgive me a sec still catching up18:22
ghostmansd[m]Aha, sure, no rush18:22
lkcldone changed subject/etc of 87318:24
lkclfmvis/fishmv work perfectly fine here (master branch)18:25
lkclyou remembered to do "pywriter noall av"? (or just "pywriter")?18:26
lkcllikewise no bmask error.18:27
* lkcl checked binutils branch, passes18:29
* lkcl passes18:29
lkclwe expect the grev ones to fail18:30
* lkcl going to run some more18:30
lkcllogical good18:31
*** tplaten <tplaten!> has joined #libre-soc18:31 good18:52
lkclalu exts transcendentals good18:53
lkclmatrix dct fft... good18:56
ghostmansd[m]>you remembered to do "pywriter noall av"? (or just "pywriter")?18:56
ghostmansd[m]Aaah crap. I always forget about it.18:56
ghostmansd[m]Thanks for tip!18:56
lkclpywriter (needlessly) does everything, pywriter noall {something} will run just that one "thing"18:57
lkclso you don't have to recompile the whole lot18:57
lkclyeahh it's turning to be quite regular, forgetting it is a compiler :)18:57
lkclya know what, i think we're good.18:58
tplatenSVP64 is five instructions, if I understand that correctly those are: setvl, svremap, svindex, svshape and svstep18:58
lkcltplaten, yes.  plus 25% of EXT001 v3.1 "Prefix" space18:59
tplatenI already knew setvl before reading the spec again. I vaguely remember some of the other four ones.18:59
ghostmansd[m]cf. minor_22.csv18:59
ghostmansd[m]There are more18:59
tplatenIn the past I did a port of the Intel Embree Library to POWER9 making use of VSX. In the future I might do a port of Embree to SVP64.19:00
lkcltoshywoshy, mattermost has a new one - bad gateway19:04
* lkcl checking all good after disconnect....19:04
lkclsvstep is for Vertical-First Mode but also you can get it to generate the indices for you which would be used in a Vector op19:05
lkclwhich is extremely useful.19:05
lkcllet's say you have... mmm... you want to use REMAP but it's too complicated, you don't have enough SVSHAPEs19:05
lkclwhat you would do is19:05
lkclset up the SVSHAPE you want19:05
lkclrun the svstep instruction to get a copy of the indices (whatever they are) and enable "Indexing" Mode19:05
lkclthen set up the *alternative* (other) SVSHAPEs using some other different svremap mode19:05
lkclyou can get the indices using svstep, then, say, multiply them by 4 or 8, or whatever, to use them for LD/ST offsets or something19:06
lkcl oooOoo19:06
lkclghostmansd[m], libera disconnected, i saw "cf minor_22.csv" but not much else?19:07
lkcli ran a ton of the test_caller_*19:07
lkcli really should run the main Soc HDL TestCaller though19:08
lkclgimme about... half an hour19:08
lkclok that's underway19:09
ghostmansd[m]Yeah this was basically all I wanted to say to tplaten :-)19:09
ghostmansd[m]I meant that new insns are there, plus also minor_59.csv, IIRC19:09
*** ghostmansd <ghostmansd!~ghostmans@> has joined #libre-soc19:11
ghostmansdlkcl, I think I should finally clean up from the crap I introduced for binutils :-)19:27
ghostmansdSorry, I promise I'll do it, just not now19:27
ghostmansdYou remember, there was some intermediate stage before I decided to decouple binutils stuff into the standalone script.19:28
ghostmansdI know this makes sv_analysis barely readable, I'm really sorry. Just one of things I couldn't realize at that point. After I'll complete this jihad with prefixes, I'll do it.19:30
ghostmansd(I just had to take a look at some bits in sv_analysis and found I forgot to clean it)19:31
Guest16hello, if I want to get an idea about how all separate modules glued together to create the SOC, should I look at the class 'TestIssuerBase'?19:42
lkclGuest16, yes or more TestIssuer.  then Core.  then soc/fu/*.py20:00
lkclthen probably this
lkclthese images will also help20:02
Guest16Thanks. I will take a look.20:03
Guest16Also what is the purpose of the Power simulator (mostly generated one). Is it to use as a benchmark to test accuracy of the real implementation?20:03
*** tplaten <tplaten!> has quit IRC20:03
lkclit's auto-generated20:03
lkcltherefore we can confirm the accuracy of the actual specification as a [deliberate] side-effect20:04
lkclplus save a frickin lot of time20:04
lkclbut it also serves the purpose of understanding what the hell is going on.  Power ISA is... (a) comprehensive and20:04
lkcl(b) written in MSB0 order not LSB0 order, in the spec20:04
Guest16ok, got it.20:05
lkclso for example in order to make sure the RADIX MMU was working, we wrote one for the Simulator20:06
lkclthat then allows us to run unit tests side-by-side on the simulated MMU with the HDL20:07
lkclon a really fast 4.8 ghz processor the simulator does 2,500 instructions per second *and we don't care*20:07
lkclbecause when you run the HDL that's somewhere well below *10* instructions per second, so who cares if the simulator is 2,500 2,500,000 or 2,500,000,00020:08
lkclghostmansd, simple/test/ works great with a whole batch of pipeline unit tests, i'm more than happy for the binutils openpower-isa branch to be merged to master20:09
ghostmansdWell, this is mostly due to the fact that currently I only touched enumerations from the common part; I only used insndb for binutils for now.20:10
ghostmansdSo it's not like that too much stuff is expected to break (though I managed to break some bits with enum experiments).20:11
ghostmansdBut I think merging it is a good idea to kinda mark the transition.20:11
ghostmansdPerhaps I could even decouple it from 838, but I'm too busy with prefices right now to think about it. :-)20:12
ghostmansdAs I mentioned, we have a bit different masks if compared to binutils (binutils also consider Rc). So we're cheating a little bit.20:13
lkclas long as it's cheating within the sv.xxxxx context i don't think anyone will notice :)20:14
Guest16is there any docs available that describe how to create a processor (say by running issuer_verilog), simulate it using verilator (or any simulator) possibly by loading a program (built with cross compiler)?20:14
ghostmansdFair remark :-)20:14
lkclGuest16, kinda. although to be honest you're slightly better off reading microwatt docs then dropping in libresoc.v as a replacement for microwatt.v20:17
lkclthat said20:17
lkcli have a branch of microwatt that i did exactly that, which tplaten has been playing with20:18
lkclwhich can execute helloworld.bin and even joel shenki's linux-5.720:18
lkcl1 sec20:18
Guest16nice, this will be very useful.20:20
Guest1618 years back I did a course at the university which was based on this book - (probably 3rd edition). Not sure if this book will still be useful/applicable in understanding superscaller/branch prediction/etc used in this implementation?20:23
*** lx0 <lx0!~lxo@gateway/tor-sasl/lxo> has quit IRC20:44
*** lx0 <lx0!~lxo@gateway/tor-sasl/lxo> has joined #libre-soc20:45
*** openpowerbot <openpowerbot!> has joined #libre-soc20:45
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has quit IRC21:24
*** ghostmansd[m] <ghostmansd[m]!~ghostmans@> has joined #libre-soc21:24
*** Guest16 <Guest16!~Guest16@2402:d000:8114:342c:fd7d:f033:dccb:b516> has quit IRC21:37
*** ghostmansd <ghostmansd!~ghostmans@> has quit IRC21:39
lkclah yes. hennessy and patterson.  patterson was unbelievably rude to me. also his technical assessment of the 6600 scoreboard system caused Mitch Alsup to write up two extended chapters to "Design of a Computer"22:00
lkclMitch very kindly spent 6 *months* on comp.arch, explaining 6600 scoreboards to me, how they may be made Precise and also Multi-Issue.22:00
lkclbranch-prediction predication precise-exceptions may all be achieved by "Shadowing" which is nothing more difficult than having a bit-matrix that prevents write-back of results until you know it's safe to do so22:02
*** ghostmansd <ghostmansd!~ghostmans@> has joined #libre-soc22:03
lkclthe word "Shadow" is used because once a write-hold-back is enabled it must also cause a "shadow" (holding back write) on all *downstream* instructions as well.22:03
lkclwhen you know that the instruction is 100% with certainty okay to commit (i.e. there is no possibility of an exception ocurring, no branches are wrong, no predicate mask-bit unread)22:05
lkclyou pull the shadow flag and allow the write22:05
lkclif on the other hand an exception occurs, the branch-prediction is wrogn, or the predicate mask-bit read and found to be zero22:06
lkclyou pull the *cancel* flag22:07
lkclregardless of whether the operation has been completed and has the result already, or is waiting for operands, or even has started the operation22:07
ghostmansd[m]Fuck, stupid IRC22:08
ghostmansd lkcl, could it happen that we touched something regarding remapping algorithm? For example, some fields which were marked as immediate...22:08
ghostmansdI'm asking since after the last generation this doesn't work22:08
ghostmansd.set fv0, 3222:08
ghostmansd.set win, 422:08
ghostmansdsv.lfs/els *fv0, 256(win)22:08
ghostmansdIt fails upon remapping the second argument22:09
lkclghostmansd, rright, ok, so there would have been two mappings, one for sv.lfssh22:09
lkclone for sv.lfs22:09
lkclthey would, cough, have overwritten each other22:09
lkclthe correct one is...22:10
lkcl+      .in2 = SVP64_IN2_SEL_CONST_SI,22:10
lkcl+      .in3 = SVP64_IN3_SEL_NONE,22:10
lkclyes that's correct.22:10
*** ghostmansd <ghostmansd!~ghostmans@> has quit IRC22:10
lkcl+      .sv_etype = SVP64_ETYPE_EXTRA2,22:10
lkcl+      .sv_in1 = SVP64_EXTRA_NONE,22:10
lkclthat's odd.22:11
lkclah i think i know what it is - it might be being classified as a Pack/Unpack.22:11
*** ghostmansd <ghostmansd!~ghostmans@> has joined #libre-soc22:11
lkclit should definitely not be NONE22:12
lkcl-      .sv_etype = SVP64_ETYPE_EXTRA3,22:12
lkcl-      .sv_in1 = SVP64_EXTRA_IDX1,22:12
lkclthat'll be correct22:12
ghostmansdSo is it that the extra calculation broken?22:13
lkclit may be accidentally being qualified as LDSTRM-2P-1S1D-PU which is being removed22:14
ghostmansdThis is how sv_* is calculated in insndb22:16
Veera[m]<openpowerbot> "[mattermost] <lkcl> Veera, you..." <- I will. Have started!22:17
ghostmansdLet me check which results I'll get with decode_extra22:17
lkclVeera[m], brilliant22:18
lkclghostmansd, i need to clear the "PU" column22:18
Veera[m]lkcl: Currently xauth is not installed in Talos server. May I install it? Is there any risk. Because I want ssh X11  forwarding.22:18
lkclVeera[m], give me 1 second22:19
lkclVeera[m], done22:19
lkclthat needs to be disabled22:20
ghostmansdbut still it works in pysvp64asm... what part of the bigger picture do I miss?22:24
lkclbecause there are - were - flags in the csv files which PowerDecoder is checking22:24
lkcli'm taking pack/unpack out of sv_analysis entirely22:25
ghostmansdbut how did it lead to different extras? did these flags affect those?22:26
lkclthere were - and this is precisely why i removed it - TWO repeat TWO repeat TWO separate meanings for "lfs"22:27
ghostmansdOK, so you're dropping PU flag, right?22:27
Veera[m]<lkcl> "Veera, done" <- thanks22:27
lkclthere was a bit in the 24-bit prefix "shift mode" which, if set, you were supposed to interpret the exact same 32-bit opcode (normally lfs) in a *completely* different encoding22:28
ghostmansdI must tune insndb appropriately, I just taught it this flag :-)22:28
lkcli've removed both the shift flag *and* the PU flag22:28
ghostmansdOK, ping me when you're ready :-)22:29
ghostmansdThe thing is, I simply tried checking this media/audio/mp3/mp3_0_apply_window_float_basicsv.s assembly22:30
ghostmansdAnd found it stopped working for binutils22:30
ghostmansdTook me a while to find that lfs is changed :-)22:30
lkclit'll be the combination of PU being added, a bug where the lfssh flag had been removed, a total fluke that RC (the extra argument of lfssh) was set to zero...22:31
ghostmansdI also see with a new output that some opcodes were changed...22:32
ghostmansdsv.rldicl, sv.rldicl., sv.sradi, sv.sradi.22:32
ghostmansdalso there's a new entry about sv.isel22:33
ghostmansdand also some entries switched between extra2/extra3 (both directions)22:33
lkclthey should all be back to where they were about a week ago22:35
lkclcommit e1d9815e05eafaff2260585cf10199c84bd9fe1922:35
lkclAuthor: Luke Kenneth Casson Leighton <>22:35
lkclDate:   Sat Jul 30 15:29:08 2022 +010022:35
lkcl    add PACK/UNPACK constants for RM-2P-1S1D-PU22:35
ghostmansdOK I'll check22:36
ghostmansdnope, still the same22:41
ghostmansdOK will look tomorrow, it's almost 1AM here22:41
lkcli just re-added some missing CSV files22:41
ghostmansdI can barely understand what happens :-)22:41
lkclbrain. melted.22:41
lkcltill tomorrow22:41
ghostmansdOK never surrender. I found I lacked the mapping for XX_OR_ZERO stuff.22:54
ghostmansdchecking again...22:54
ghostmansdyes it works!!!22:55
ghostmansdI'll think of how map these better, preferrably automatically22:56
ghostmansdwe have many enums there, and any InXSel/OutSel/CRInSel/CROutSel must be mapped to some SVReg enum...22:57
ghostmansdI think I'll use the enum name, short and sweet22:57
ghostmansdYou did it with strings, so it was simpler. This one checks the enumeration values, though, so it's good in other regards. Let's combine best of these worlds.22:58
ghostmansdStill, enough for today.22:58
ghostmansdThanks for tips, lkcl!22:58
*** ghostmansd <ghostmansd!~ghostmans@> has quit IRC23:06

Generated by 2.17.1 by Marius Gedminas - find it at!