Messages in this thread | | | Date | Mon, 14 Jan 2002 18:12:43 -0500 | From | Brian Gerst <> | Subject | Re: Hardwired drivers are going away? |
| |
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/
| |