From: Gleb Natapov <gleb@redhat.com>
To: Matthew Ogilvie <mmogilvi_qemu@miniinfo.net>
Cc: Jan Kiszka <jan.kiszka@web.de>,
qemu-devel@nongnu.org, "Maciej W. Rozycki" <macro@linux-mips.org>,
Avi Kivity <avi@redhat.com>
Subject: Re: [Qemu-devel] [PATCH v7 00/10] i8254, i8259 and running Microport UNIX (ca 1987)
Date: Tue, 11 Dec 2012 18:19:56 +0200 [thread overview]
Message-ID: <20121211161955.GG29003@redhat.com> (raw)
In-Reply-To: <1353880306-8004-1-git-send-email-mmogilvi_qemu@miniinfo.net>
On Sun, Nov 25, 2012 at 02:51:36PM -0700, Matthew Ogilvie wrote:
> This series makes a series of mostly-unrelated fixes to allow
> running an old Microport UNIX (ca 1987) guest under qemu.
>
> Changes since version 6:
> * Patches 1 through 6 haven't changed, other than resolving
> a couple of simple conflicts.
> * Patch 7 "fixes" IRQ0 by just making it work like before,
> rather than fixing it properly. This avoids possible risk
> to cross-version migration, etc.
> * Patches 8, 9, and 10 provide one possible gradual transition path
> to properly fix the 8254 model with relatively little risk to
> migration/etc. The idea is that 8 and 9 could be applied
> immediately in preparation for a future fix, and then the
> actual fix (10) could be applied sometime in the future when
> migrating to or from pre-patch-9 versions is no longer a concern.
> I am not actually aware of ANY guest that actually needs
> an improved 8254 model, but this provides one way to improve
> it if desired.
>
> ----------------
> Split up this series?
>
> I'm not sure what the next steps are to get these into qemu, other
> than waiting for 1.4 for at least the non-trivial parts?
>
> Patches 1 through 3 could be considered independent trivial patches.
> Would splitting them apart improve the changes of getting them into qemu?
>
> Patch 4 isn't quite trivial, but it is well isolated (other than
> small documentation conflicts against patch 3). Should it be split
> off? It hasn't changed since version 3, but nobody has really
> commented on it.
>
> Patches 5 through 10 are interrelated, and should remain related in
> a series.
>
> ----------------
> 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?
> * 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.
> 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...
>
> ----------------
>
> Matthew Ogilvie (10):
> fix some debug printf format strings
> vl: fix -hdachs/-hda argument order parsing issues
> qemu-options.hx: mention retrace= VGA option
> vga: add some optional CGA compatibility hacks
> i8259: fix so that dropping IRQ level always clears the interrupt
> request
> i8259: refactor pic_set_irq level logic
> i8254/i8259: workaround to make IRQ0 work like before
> i8254: add comments about fixing timings
> i8254: prepare for migration compatibility with future fixes
> FOR FUTURE: fix i8254/i8259 IRQ0 line logic
>
> hw/cirrus_vga.c | 4 ++--
> hw/i8254.c | 24 +++++++++++++++++++--
> hw/i8254_common.c | 18 ++++++----------
> hw/i8259.c | 28 ++++++++++---------------
> hw/ide/cmd646.c | 5 +++--
> hw/ide/via.c | 5 +++--
> hw/pc.h | 4 ++++
> hw/vga.c | 37 ++++++++++++++++++++++++++-------
> qemu-options.hx | 27 +++++++++++++++++++++++-
> vl.c | 62 ++++++++++++++++++++++++++++++++++++-------------------
> 10 files changed, 147 insertions(+), 67 deletions(-)
>
> --
> 1.7.10.2.484.gcd07cc5
>
--
Gleb.
next prev parent reply other threads:[~2012-12-11 17:43 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-25 21:51 [Qemu-devel] [PATCH v7 00/10] i8254, i8259 and running Microport UNIX (ca 1987) Matthew Ogilvie
2012-11-25 21:51 ` [Qemu-devel] [PATCH v7 01/10] fix some debug printf format strings Matthew Ogilvie
2012-11-25 21:51 ` [Qemu-devel] [PATCH v7 02/10] vl: fix -hdachs/-hda argument order parsing issues Matthew Ogilvie
2012-11-25 21:51 ` [Qemu-devel] [PATCH v7 03/10] qemu-options.hx: mention retrace= VGA option Matthew Ogilvie
2012-11-25 21:51 ` [Qemu-devel] [PATCH v7 04/10] vga: add some optional CGA compatibility hacks Matthew Ogilvie
2012-11-25 21:51 ` [Qemu-devel] [PATCH v7 05/10] i8259: fix so that dropping IRQ level always clears the interrupt request Matthew Ogilvie
2012-11-25 21:51 ` [Qemu-devel] [PATCH v7 06/10] i8259: refactor pic_set_irq level logic Matthew Ogilvie
2012-11-25 21:51 ` [Qemu-devel] [PATCH v7 07/10] i8254/i8259: workaround to make IRQ0 work like before Matthew Ogilvie
2012-11-25 21:51 ` [Qemu-devel] [PATCH v7 08/10] i8254: add comments about fixing timings Matthew Ogilvie
2012-11-25 21:51 ` [Qemu-devel] [PATCH v7 09/10] i8254: prepare for migration compatibility with future fixes Matthew Ogilvie
2012-11-25 21:51 ` [Qemu-devel] [PATCH v7 10/10] FOR FUTURE: fix i8254/i8259 IRQ0 line logic Matthew Ogilvie
2012-12-10 5:14 ` [Qemu-devel] [PATCH v7 00/10] i8254, i8259 and running Microport UNIX (ca 1987) Matthew Ogilvie
2012-12-10 7:15 ` Jan Kiszka
2012-12-10 16:47 ` Anthony Liguori
2012-12-11 6:10 ` Matthew Ogilvie
2012-12-11 11:20 ` Jamie Lokier
2012-12-12 7:25 ` Matthew Ogilvie
2012-12-11 16:19 ` Gleb Natapov [this message]
2012-12-12 7:46 ` Matthew Ogilvie
2012-12-12 11:36 ` Gleb Natapov
2012-12-12 11:38 ` Jan Kiszka
2012-12-12 11:41 ` Gleb Natapov
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=20121211161955.GG29003@redhat.com \
--to=gleb@redhat.com \
--cc=avi@redhat.com \
--cc=jan.kiszka@web.de \
--cc=macro@linux-mips.org \
--cc=mmogilvi_qemu@miniinfo.net \
--cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).