From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH 8/8] KVM: x86: simplify kvm_apic_map Date: Fri, 30 Jan 2015 16:23:37 +0100 Message-ID: <54CBA1F9.6070206@redhat.com> References: <1422568135-28402-1-git-send-email-rkrcmar@redhat.com> <1422568135-28402-9-git-send-email-rkrcmar@redhat.com> <54CB4C5C.6090706@redhat.com> <20150130151442.GC27414@potion.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, Nadav Amit , Gleb Natapov To: =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= Return-path: In-Reply-To: <20150130151442.GC27414@potion.redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 30/01/2015 16:14, Radim Kr=C4=8Dm=C3=A1=C5=99 wrote: > > > + case KVM_APIC_MODE_XAPIC_FLAT: > > > + *cid =3D 0; > > > + *lid =3D ldr & 0xff; > > > + return true; > > > + case KVM_APIC_MODE_XAPIC_CLUSTER: > > > + *cid =3D (ldr >> 4) & 0xf; > > > + *lid =3D ldr & 0xf; > > > + return true; > > > + case KVM_APIC_MODE_X2APIC: > > > + *cid =3D ldr >> 16; > > > + *lid =3D ldr & 0xffff; > > > + return true; > > > + } >=20 >> > lid_bits =3D mode; >> > cid_bits =3D mode & (16 | 4); >> > lid_mask =3D (1 << lid_bits) - 1; >> > cid_mask =3D (1 << cid_bits) - 1; >> >=20 >> > *cid =3D (ldr >> lid_bits) & cid_mask; >> > *lid =3D ldr & lid_mask; > Would jump predictor fail on the switch? Or is size of the code that > important? This code is shorter, but is going to execute far more > operations, so I think it would be slower ... (And harder to read.) Considering the additional comparisons for the switch, I don't think it's going to execute far more operations... Paolo