qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v7 00/10] i8254, i8259 and running Microport UNI


From: Matthew Ogilvie
Subject: Re: [Qemu-devel] [PATCH v7 00/10] i8254, i8259 and running Microport UNIX (ca 1987)
Date: Wed, 12 Dec 2012 00:46:41 -0700
User-agent: Mutt/1.5.21 (2010-09-15)

On Tue, Dec 11, 2012 at 06:19:56PM +0200, Gleb Natapov wrote:
> On Sun, Nov 25, 2012 at 02:51:36PM -0700, Matthew Ogilvie wrote:
> > ----------------
> > Still needed:
> > 
> >   * Corresponding KVM patches.  The best approach may depend
> >     on what option is selected for qemu above.
> >      * Note that KVM uses a simplified model that doesn't try
> >        to emulate the trailing edge of the interrupt very well
> >        at all.  I'm not proposing to change this aspect of it.
> >      * A patch analogous to 7 should be easy.
> >      * Patches 8 through 10 are also fairly easy by themselves.
> >        But now we start having an explosion of combinations
> >        of versions of KVM and qemu and migration to/from, and it
> >        might be better to:
> Why explosion of combinations? I do not see any changes in
> migration code in your series, so as long as we care about migration
> from in-kernel irqchip to in-kernel irqchip we should be independent
> from qemu version, no?

You may be correct.  I'm a little hazy on the details of how things are
split between KVM and QEMU.  Are there situations that do ioport read/write
handling within qemu rather than KVM?  How about things like pit_get_out(),
pit_get_next_transition_time(), etc in qemu/hw/i8254_common.c?  (If
not used when KVM is enabled, then why are they "common"?)  What
are the implications if qemu and KVM implementations of such
functions disagree?

> 
> >      * Or more involved fixes would involve new ioctl()'s and
> >        command line arguments to select old or fixed 8254 models
> >        dynamically.  See below.
> > 
> > ----------------
> > Alternative options for improving the i8254 model and migration:
> > 
> > 1. Don't fix 8254 at all.  Just apply through patch 7 or 8, and don't try
> >    to make any additional fixes.  I don't know of any guests that need
> >    improvements, so this could be a viable option.
> > 
> > 2. Just fix it immediately, and don't worry about migration.  Squash
> >    the last few patches together.  A single missed periodic
> >    timer tick that only happens when migrating
> >    between versions of qemu is probably not a significant
> >    concern.  (Unless someone knows of an OS that actually runs
> >    the i8254 in single shot mode 4, where a missed interrupt
> >    could cause a hang or something?)
> > 
> If migration can fail only with the single, rarely (if ever) used mode,
> I honestly like this option the most.

As long as it is truly rare, I agree.  I'm just not sure if the "rare"
qualification is actually true or not.  See also my response to Jamie
Lokier about Linux's tickless configuration.

> 
> > 3. Use patches 8 and 9 now, and patch 10 sometime in the future.
> >    If it was just qemu, this would be attractive.  But when you
> >    also need to worry about a bunch of combinations of versions of
> >    qemu and KVM and migration, this is looking less attractive.
> > 
> > 4. Support both old and fixed i8254 models, selectable at runtime
> >    with a command line option.  (Question: What should such an
> >    option look like?)  This may be the best way to actually
> >    change the 8254, but I'm not sure changes are even needed.
> >    It's certainly getting rather far afield from running Microport
> >    UNIX...
> If we will start doing it for each bug...
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]