On 06.02.2018 12:21, Christian Borntraeger wrote: > instead of having huge jump tables for function selection, > lets use normal switch/case statements for the instruction > handlers in priv.c > > bloat-o-meter shows that the saving are even bigger than > just the removed jump tables. > > add/remove: 0/11 grow/shrink: 8/0 up/down: 1934/-10246 (-8312) > Function old new delta > kvm_s390_handle_b2 42 958 +916 > handle_iske 178 558 +380 > handle_rrbe 178 546 +368 > kvm_s390_handle_b9 42 222 +180 > kvm_s390_handle_01 42 74 +32 > kvm_s390_handle_eb 42 70 +28 > handle_sckpf 176 204 +28 > handle_lctlg 628 630 +2 > handle_ptff 36 - -36 > handle_sckpf.part 78 - -78 > handle_epsw 154 - -154 > handle_stfl 316 - -316 > handle_rrbe.part 470 - -470 > handle_iske.part 482 - -482 > handle_io_inst 518 - -518 > x01_handlers 2048 - -2048 > eb_handlers 2048 - -2048 > b9_handlers 2048 - -2048 > b2_handlers 2048 - -2048 > > Signed-off-by: Christian Borntraeger <borntraeger@xxxxxxxxxx> Reviewed-by: Janosch Frank <frankja@xxxxxxxxxxxxxxxxxx> > - > int kvm_s390_handle_b2(struct kvm_vcpu *vcpu) > { > - intercept_handler_t handler; > - > - /* > - * A lot of B2 instructions are priviledged. Here we check for > - * the privileged ones, that we can handle in the kernel. > - * Anything else goes to userspace. > - */ Shall we move that to kvm_handle_sie_intercept in a more general way? Something like: Here we handle all privileged and performance critical instructions/interceptions everything else gets handled by userspace via EOPNOTSUPP.
Attachment:
signature.asc
Description: OpenPGP digital signature