[Lguest] [PATCH RFC/RFB] x86_64, i386: interrupt dispatch changes

Alexander van Heukelum heukelum at fastmail.fm
Wed Nov 5 05:44:16 EST 2008


On Tue, 04 Nov 2008 10:14:11 -0800, "H. Peter Anvin" <hpa at zytor.com>
said:
> Alexander van Heukelum wrote:
> > 
> > That's good to know. I assume this LOCKed bus cycle only occurs
> > if the (hidden) segment information is not cached in some way?
> > How many segments are typically cached? In particular, does it
> > optimize switching between two segments?
> > 
> 
> Yes, there is a segment descriptor cache (as opposed to the hidden but
> architectural segment descriptor *registers*, which the Intel
> documentation confusingly call a "cache".)
> 
> It is used to optimize switching between a small number of segments, and
> was crucial for decent performance on Win9x, which contained a bunch of
> 16-bit code.

Thanks for the info!

This just means that if there are performance problems, the
'specialized'
handlers should be using the kernel segment or maybe a single common
segment. It would still allow us to get rid of the trampolines. A stack
trace should be enough to reconstruct which vector was originally called
in that case. Only the common_interrupt-codepath needs the original
vector as far as I can see.

You just made testing on larger machines with a lot of external
interrupts necessary :-/. (Assuming small machines do not show
performance problems, that is.)

Greetings,
    Alexander

> 	-hpa
-- 
  Alexander van Heukelum
  heukelum at fastmail.fm

-- 
http://www.fastmail.fm - I mean, what is it about a decent email service?




More information about the Lguest mailing list