qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] qemu-kvm: remove "boot=on|off" drive parameter compatib


From: Lucas Meneghel Rodrigues
Subject: Re: [Qemu-devel] qemu-kvm: remove "boot=on|off" drive parameter compatibility
Date: Thu, 04 Oct 2012 14:21:17 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120911 Thunderbird/15.0.1

On 10/04/2012 09:27 AM, Jan Kiszka wrote:
On 2012-10-04 14:10, Lucas Meneghel Rodrigues wrote:
On 10/04/2012 07:48 AM, Jan Kiszka wrote:
On 2012-10-03 15:19, Paolo Bonzini wrote:
Il 03/10/2012 12:57, Lucas Meneghel Rodrigues ha scritto:
Yep, I did send patches with the testdev device present on qemu-kvm.git
to qemu.git a while ago, but there were many comments on the review, I
ended up not implementing everything that was asked and the patches were
archived.

If nobody wants to step up to port it, I'll re-read the original thread
and will spin up new patches (and try to go through the end with it).
Executing the KVM unittests is something that we can't afford to lose,
so I'd say it's important on this last mile effort to get rid of qemu-kvm.

Absolutely, IIRC the problem was that testdev did a little bit of
everything... let's see what's the functionality of testdev:

- write (port 0xf1), can be replaced in autotest with:
-device isa-debugcon,iobase=0xf1,chardev=...

- exit code (port 0xf4), see this series:
http://lists.gnu.org/archive/html/qemu-devel/2012-07/msg00818.html

- ram size (port 0xd1).  If we can also patch kvm-unittests, the memory
is available in the CMOS or in fwcfg.  Here is the SeaBIOS code:

          u32 rs = ((inb_cmos(0x34) << 16) | (inb_cmos(0x35) << 24));
          if (rs)
              rs += 16 * 1024 * 1024;
          else
              rs = (((inb_cmos(0x30) << 10) | (inb_cmos(0x31) << 18))
                    + 1 * 1024 * 1024);

The rest (ports 0xe0..0xe7, 0x2000..0x2017, MMIO) can be left in testdev.

IIRC, one of the biggest problem with testdev was its hack to inject
interrupts.

Jan, I assume this commit helps to fix this, right?

commit b334ec567f1de9a60349991e7b75083d569ddb0a
Author: Jan Kiszka <address@hidden>
Date:   Fri Mar 2 10:30:47 2012 +0100

      qemu-kvm: Use upstream kvm-i8259

      Drop the qemu-kvm version in favor of the equivalent upstream
      implementation. This allows to move the i8259 back into the hwlib.

      Note that this also drops the testdev hack and restores proper
      isa_get_irq. If testdev scripts exist that inject > IRQ15, they need
      fixing. Testing for these interrupts on the PIIX3 makes no practical
      sense anyway as those lines are unused.

      Signed-off-by: Jan Kiszka <address@hidden>
      Signed-off-by: Avi Kivity <address@hidden>

Yes, this improved it a lot as we no longer depend on additional
changes. I'm not sure if there was resistance beyond that.

When cleaning up the code: register_ioport_read must be replaced with
the memory API.

I did look at the MemoryRegionOps/memory_region_init_io and still did not figure out how to port things. I'll send a v2 addressing all the comments made so far but this one, just to see if people are OK with the direction of the full patch, then if you could give me some pointers of how to do this conversion, it'd be great.




reply via email to

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