Veera[m] | lkcl: add add. adde. instructions work with signed or unsigned values in registers? | 15:24 |
---|---|---|
lkcl | Veera[m], i believe everything is unsigned. or, more to the point, it kinda doesn't matter because it's all the same | 15:35 |
lkcl | at the bit-level, that is | 15:35 |
lkcl | however CR0 (when Rc=1) it is "as if" the result is signed. but, that is dead easy | 15:36 |
lkcl | a 64 bit number is "considered negative if it is considered signed" if the MSB (64th bit) is a 1. | 15:36 |
lkcl | if (result & (1<<63)) != 0: | 15:37 |
lkcl | le = 1 | 15:37 |
lkcl | yes, that would be reasonable | 15:38 |
lkcl | but that does NOT mean that the actual add is either signed or unsigned, because *it doesn't matter*... to the add. | 15:38 |
lkcl | this is *not* true for mul though. | 15:39 |
lkcl | which is why there is a signed multiply. | 15:39 |
Veera[m] | 3.3.8 Other Fixed-Point Instructions: These instructions treat the source operands as signed | 15:53 |
Veera[m] | integers unless the instruction is explicitly identified as | 15:53 |
Veera[m] | performing an unsigned operation. | 15:53 |
lkcl | Veera[m], for add/sub it actually doesn't matter, it's a quirk of 2's complement arithmetic | 20:23 |
lkcl | for mul it definitely matters because -ve times -ve is positive | 20:24 |
lkcl | meeting in 90 mins? | 20:27 |
lkcl | sadoon_albader[m, cesar programmerjake Veera[m] lxo Veera[m] ^ | 20:28 |
sadoon_albader[m | Count me in | 20:29 |
rsc | Does somebody here have enough POWER9/10 knowledge to explain the removal of Linux KVM (https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1039) to me? | 20:29 |
sadoon_albader[m | Ah | 20:30 |
sadoon_albader[m | Yes | 20:30 |
sadoon_albader[m | They apparently want to disable KVM-PR and keep KVM-HV enabled | 20:30 |
sadoon_albader[m | KVM-PR is the old method called "problem state" of virtualizing ppc | 20:31 |
sadoon_albader[m | It can be slow since it emulates older instructions that no longer exist | 20:31 |
rsc | But PR vs. HV? What does it mean? And https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1039#note_563320460 reads even more strange. Does it mean IBM doesn't want to virtualize anymore? | 20:31 |
sadoon_albader[m | KVM-HV is the newer method | 20:31 |
sadoon_albader[m | It's a full hypervisor that lets you run any POWER code built for your current processor and a generation earlier | 20:32 |
rsc | Ah, so with emulation? | 20:32 |
sadoon_albader[m | So POWER9 and POWER8 on a native POWER9 CPU | 20:32 |
sadoon_albader[m | It's extremely fast | 20:32 |
sadoon_albader[m | rsc: HV is no emulation, PR has some emulation | 20:33 |
sadoon_albader[m | Which is why some older Linux distros also do not work at all in HV, they need to support POWER9 or POWER8 on a POWER8 machine | 20:33 |
sadoon_albader[m | In general HV is the default and the superior option | 20:33 |
sadoon_albader[m | PR is useful only for things like older systems (osx 10.5, linux circa 2014 and earlier I think?) | 20:34 |
rsc | Okay, but https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1039#note_563320460 reads like KVM at all. | 20:34 |
sadoon_albader[m | Mistype probably | 20:34 |
sadoon_albader[m | They explained further below that they keep HV | 20:34 |
rsc | Okay. | 20:35 |
sadoon_albader[m | If they did disable KVM entirely they'd kill one of the biggest features of POWER | 20:35 |
sadoon_albader[m | "However, we only want to enable the KVM HV implementation, not the KVM PR implementation." | 20:36 |
rsc | Well, https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/8.5_release_notes/index is also confusing: "Using KVM virtualization on IBM POWER hardware has become deprecated. As a result, KVM on IBM POWER is still supported in RHEL 8, but will become unsupported in a future major release of RHEL." | 20:37 |
rsc | sadoon_albader[m: thank you for the explanation PR <-> HV :) | 20:39 |
sadoon_albader[m | Anytime! | 20:40 |
sadoon_albader[m | rsc: That's very strange.. | 20:41 |
sadoon_albader[m | Is the beta out yet? | 20:42 |
rsc | sadoon_albader[m: RHEL 9 Beta, yes. | 20:42 |
sadoon_albader[m | Maybe I can spin up a vm later and see what all the fuss is about | 20:44 |
lkcl | rsc, sadoon_albader[m, if you can please send a message on there to let them know that we need PR for instruction emulation and development, urgently | 21:18 |
lkcl | if they remove it we cannot develop new Power ISA instructions. | 21:19 |
lkcl | the emulation of "older" instructions *also allows for the emulation of newer ones* | 21:19 |
sadoon_albader[m | My assumption is that they'll disable KVM-PR in the kernel and in qemu | 21:20 |
lkcl | and with IBM failing to throw exceptions properly on illegal instructions, we're absolutely screwed | 21:20 |
sadoon_albader[m | It doesn't matter | 21:21 |
lkcl | please can you send an urgent, urgent message on whatever bugreports and forums requesting that they *do not* do that. | 21:21 |
sadoon_albader[m | It's only for RHEL | 21:21 |
lkcl | toshywoshy, ^ | 21:21 |
lkcl | if they remove it from RHEL then the removal will propagate right the way through everything else | 21:21 |
programmerjake | people may want to run RHEL on Libre-SOC hw too | 21:22 |
sadoon_albader[m | Let's discuss this in the meeting I gusss | 21:22 |
lkcl | yehyeh | 21:22 |
sadoon_albader[m | I'll read up and let you guys know | 21:22 |
sadoon_albader[m | Exactly what the situation is | 21:22 |
lkcl | https://git.libre-soc.org/?p=kvm-minippc.git;a=summary | 21:22 |
lkcl | on the talos-II workstation: | 21:24 |
lkcl | lsmod | grep kvm | 21:24 |
lkcl | kvm_pr 120733 0 | 21:24 |
lkcl | kvm 307222 1 kvm_pr | 21:24 |
lkcl | we critically rely on KVM_PR to "trap" illegal instructions | 21:25 |
lkcl | and then emulate them in software. | 21:25 |
lkcl | this is how we plan to be able to write an emulator for SVP64 | 21:26 |
lkcl | as well as write an emulator for VSX/SIMD | 21:26 |
lkcl | otherwise we have to f*** around actually implementing POWER9 SIMD in hardware, which is SEVEN HUNDRED effing instructions | 21:26 |
lkcl | paul mackerras implemented SIMD in microwatt: with a *small subset* of SIMD added, the number of LUT4s for microwatt went up from 20,000 to 50,000. a massive 2.5x jump in resources | 21:28 |
lkcl | and that's only a partial implementation. | 21:28 |
lkcl | every month, every week, the IBM libc6 and gcc contributors keep on adding yet more and more POWER9 SIMD instructions as critical hard dependencies | 21:29 |
toshywoshy | sorry, late to the party : PR is paravirtualization & HV is hardware virtualization | 21:37 |
* lkcl looking that up | 21:38 | |
toshywoshy | the idea is that with HV, being 'full' virtualization, the need for PR is less, however TCG uses PR in the back-end, so we do not want PR to be dropped | 21:39 |
toshywoshy | I haven't read that yet, I know that there are rumours about QEMU dropping certain features, however as far as I know it is mostly related to unmaintened and untested features, not being used anymore | 21:40 |
* lkcl looking up TCG too :) | 21:41 | |
lkcl | http://events17.linuxfoundation.org/sites/events/files/slides/KVMForum_TCG_POWER.pdf | 21:41 |
lkcl | TCG: tiny code generator. nice | 21:41 |
lkcl | toshywoshy, if you're interested, we've a weekly tuesday meeting (in 20 mins) usual jitsi URL | 21:43 |
lkcl | it tends to be chaotic and rambling with the occasional focussed discussion that even mentions openpower :) | 21:43 |
toshywoshy | ok, I'll be there, let me read up on rsc notes, as I havn't read those release notes yet | 21:44 |
lkcl | we carried on hugh's virtual coffee, basically :) | 21:44 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!