Re: Intel P6 vs P7 system call performance

billyrose@billyrose.net
Wed, 18 Dec 2002 18:51:13 -0500


Richard B. Johnson wrote:
> The number of CPU clocks necessary to make the 'far' or
> full-pointer call by pushing the segment register, the offset,
> then issuing a 'lret' is 33 clocks on a Pentium II.
>
> longcall clocks = 46
> call clocks = 13
> actual full-pointer call clocks = 33

this is not correct. the assumed target (of a _far_ call) would issue a far
return and only an offset would be left on the stack to return to (oops). the
code segment of the orginal caller needs pushed to create the seg:off pair and
hence a far return would land back at the original calling routine. this is a
very convoluted method of making the orginal call being far, as simply calling
far in the first pace should issue much faster. OTOH, if you are making a
workaround to an already existing piece of code, this works beautifully (with
the additional seg pushed on the stack).

b.
-
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/