(restoring cc list)
Andi Kleen wrote:
One of the other problems: NMIs and MCEs have the same problem with SYSCALL
This one however looks unsolvable. Userspace can point %rsp into
arbitrary memory, issue a syscall, and hope for an nmi. Since we're in
cpl 0 and are not using IST, the
On Sun, Dec 28, 2008 at 04:09:26PM +0200, Avi Kivity wrote:
I don't see how syscall could work on i386, and indeed:
i386 has task gates which support unconditional stack switching. But there
are no 64bit task gates, just ISTs.
BTW I think there are more similar problems in your patch too.
Andi Kleen wrote:
On Sun, Dec 28, 2008 at 04:09:26PM +0200, Avi Kivity wrote:
I don't see how syscall could work on i386, and indeed:
i386 has task gates which support unconditional stack switching. But there
are no 64bit task gates, just ISTs.
i386 is not that interesting to
One fatal problem is enough -- I don't thing that patch can be made to
work. Pity since it did clean up some stuff.
Not sure that was true anyways.
I would like however to speed up kvm. Here's a plan:
1. Add per-cpu IDT
You don't need that, do you? Just two sets.
2. When switching
Avi Kivity wrote:
1. Add per-cpu IDT
Or we could have just two IDTs - one with IST and one without. I
clocked LIDT at 58 cycles (and we need two per heavyweight switch), so
it's not that wonderful.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to
Avi Kivity wrote:
Avi Kivity wrote:
1. Add per-cpu IDT
Or we could have just two IDTs - one with IST and one without. I
clocked LIDT at 58 cycles (and we need two per heavyweight switch), so
it's not that wonderful.
This makes the whole thing unworthwhile. The vmload/vmsave pair costs
On Sun, Dec 28, 2008 at 10:08:35PM +0200, Avi Kivity wrote:
Avi Kivity wrote:
Avi Kivity wrote:
1. Add per-cpu IDT
Or we could have just two IDTs - one with IST and one without. I
clocked LIDT at 58 cycles (and we need two per heavyweight switch), so
it's not that wonderful.
This
Andi Kleen wrote:
This makes the whole thing unworthwhile. The vmload/vmsave pair costs
only 200 cycles (I should have started with this), and 120 cycles on the
heavyweight path plus complexity are not worth 200 cycles on the
lightweight path.
Actually to switch ISTs you need to change
* Avi Kivity a...@redhat.com wrote:
The interrupt stack table (IST) mechanism is the only thing preventing
kvm from deferring saving and reloading of some significant state. It
is also somewhat complicated.
Remove it by switching the special exceptions to use the normal irqstack.
Avi
The interrupt stack table (IST) mechanism is the only thing preventing
kvm from deferring saving and reloading of some significant state. It
is also somewhat complicated.
Remove it by switching the special exceptions to use the normal irqstack.
Avi Kivity (3):
x86: drop the use of the tss
10 matches
Mail list logo