All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: nathan binkert <nate@binkert.org>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH] KVM: Make kvm header compile under g++.
Date: Thu, 09 Apr 2009 19:10:25 +0300	[thread overview]
Message-ID: <49DE1DF1.9060701@redhat.com> (raw)
In-Reply-To: <217accd40904071025hd712bdbo85622f6a847c8a4d@mail.gmail.com>

nathan binkert wrote:
>> Excellent.  One of the things I'm trying hard to do is keep kvm from being a
>> 'qemu accelerator' and generally useful for other projects.  That is, I'm
>> trying to keep the userspace interface neutral, and not to model exactly the
>> hardware qemu provides but allow for other configurations.
>>
>> One example where we failed to do this is in mapping interrupts, where PIC
>> IRQ line n was tied to IOAPIC INTI line n.  This came back to bite us when
>> qemu changed its model.
>>
>> So if you notice such issues in kvm please bring them up so we can fix them.
>>     
> I certainly will, and I have noticed such things already.  They're
> mostly problems for me in libkvm at this point.  I haven't noticed any
> big problems with KVM itself yet.  I'm going back and forth as to
> whether or not I want to use libkvm at all, though if you're receptive
> to changes to that interface, I'll definitely keep that in mind.  On
> the other hand, since I'm using C++, I may just write a C++ libkvm and
> try to give it to you guys.  I will try to work with the existing
> libkvm for now though.
>   

libkvm suffers from not abstracting things enough.  Since it was 
rejected from upstream qemu, it is unlikely to survive for much longer 
(though I think it has merit, it shouldn't be the case that everyone has 
to keep reimplementing this stuff).

>   
>> If you're interested in determinism, can't you just warm up the system once
>> and then save the state?
>>     
> We often do stuff like that.  We drop checkpoints and run from the
> checkpoints, but the problem with that is that we often change things
> in such a way that you need to boot fresh again.  If we change a
> device model or the kernel there's no getting around it.  There are
> more subtle things though.  For example, if you warm up a simulation
> with a simulated Gigabit ethernet and then decide that you really
> wanted 10 Gig, you can't just change it when you resume the checkpoint
> because TCP takes a while to warm up.  We could of course warm up
> further from the checkpoint, but if you were to go in the reverse
> direction 10G -> 1G, TCP starts dropping packets and it takes a long
> time in a simulator to deal with that.  If I can impose a good enough
> notion of time, I can deal with those things.  Determinism is another
> issue altogether.  Our simulator is deterministic, and we'd love to
> keep that property, but that's even more difficult, unless we can
> figure out a way to tell KVM to do something like "execute up to 100
> instructions right now".  I'm pretty far from really worrying about
> these problems.  I do have lots of  ideas and I know that there are a
> bunch of papers out there that work on this sort of thing.
>   

You could do that with performance counters, although it would require 
kernel changes.

-- 
Do not meddle in the internals of kernels, for they are subtle and quick to panic.


      reply	other threads:[~2009-04-09 16:10 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-28  4:53 [PATCH] KVM: Make kvm header compile under g++ nathan binkert
2009-04-06 18:57 ` nathan binkert
2009-04-07 10:16   ` Avi Kivity
2009-04-07 16:44     ` nathan binkert
2009-04-07 17:11       ` Avi Kivity
2009-04-07 17:25         ` nathan binkert
2009-04-09 16:10           ` Avi Kivity [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49DE1DF1.9060701@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=nate@binkert.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.