Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754273AbYKZVul (ORCPT ); Wed, 26 Nov 2008 16:50:41 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752404AbYKZVub (ORCPT ); Wed, 26 Nov 2008 16:50:31 -0500 Received: from mx2.redhat.com ([66.187.237.31]:50968 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751020AbYKZVua (ORCPT ); Wed, 26 Nov 2008 16:50:30 -0500 Message-ID: <492DC49C.7050101@redhat.com> Date: Wed, 26 Nov 2008 23:50:20 +0200 From: Avi Kivity User-Agent: Thunderbird 2.0.0.18 (X11/20081119) MIME-Version: 1.0 To: "H. Peter Anvin" CC: Alexander van Heukelum , lguest@ozlabs.org, jeremy@xensource.com, LKML , Mike Travis , Cyrill Gorcunov , Steven Rostedt , Andi Kleen , Ingo Molnar , Alexander van Heukelum , Thomas Gleixner Subject: Re: [Lguest] [PATCH RFC/RFB] x86_64, i386: interrupt dispatch changes References: <20081104122839.GA22864@mailshack.com> <20081104150729.GC21470@localhost> <20081104170501.GE29626@one.firstfloor.org> <1225822006.21441.1282961299@webmail.messagingengine.com> <20081104204400.GC10825@elte.hu> <1226243805.27361.1283784629@webmail.messagingengine.com> <49178E89.2000307@zytor.com> <492DC13F.8020009@redhat.com> In-Reply-To: <492DC13F.8020009@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1381 Lines: 38 Avi Kivity wrote: > >> Here is a prototype patch of the compressed IRQ stubs -- this patch >> compresses them down to 7 stubs per 32-byte cache line (or part of cache >> line) at the expense of a back-to-back jmp which has the potential of >> being ugly on some pipelines (we can only get 4 stubs into 32 bytes >> without that). >> > > You could actually get 4-byte stubs, using a 16-bit call (66 e8 ww > ww). But it would be slower, since we won't be pairing it with a ret. > > I suspect we could get it down to three bytes, by sharing the last > byte of the four-byte call sequence with the first byte of the next: > > 66 e8 ff 66 e8 fc 66 e8 f9 66 e8 f6 ... > > Every three bytes a new stub begins; it's a four-byte call to offset > 0x6703 relative to the beginning of the first stub. > > Can anyone better 24 bits/stub? I actually got it down to 16 bits: use a 16-bit code segment, so you can drop the address size override: e8 ff e8 fd e8 fb ... of course the common code has to jump back to a 32-bit code segment. -- I have a truly marvellous patch that fixes the bug which this signature is too narrow to contain. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/