Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 14 Jan 2002 18:13:24 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 14 Jan 2002 18:13:14 -0500 Received: from quark.didntduck.org ([216.43.55.190]:39178 "EHLO quark.didntduck.org") by vger.kernel.org with ESMTP id ; Mon, 14 Jan 2002 18:13:04 -0500 Message-ID: <3C4365EB.5AA2DEA3@didntduck.org> Date: Mon, 14 Jan 2002 18:12:43 -0500 From: Brian Gerst X-Mailer: Mozilla 4.76 [en] (WinNT; U) X-Accept-Language: en MIME-Version: 1.0 To: David Lang CC: Ian Molton , linux-kernel@vger.kernel.org Subject: Re: Hardwired drivers are going away? In-Reply-To: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org David Lang wrote: > > the impact is in all calls to the module, if they are far calls instead of > near calls each and every call is (a hair) slower. > > so the code can be the same and still be slower to get to. > > you can argue that it's not enough slower to matter, but even Alan admits > there is some impact. > > David Lang Let's get the terminology right here (for x86 at least): Far jump: Changes to a new code segment, absolute address Near jump: Same code segment, 4-byte relative offset Short jump: Same code segment, 1-byte signed offset The kernel never uses far jumps except for some BIOS calls and during booting. The difference betwen near and short jumps is very minute. Short jumps are limited to +/- 128 bytes, so are really only applicable for small loops. All function calls between object files must be near jumps, as the assembler does not not know the distance of an unresolved symbol and must assume the largest possible offset. -- Brian Gerst - 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/