On Sun, Sep 29, 2013 at 12:20 PM, Michael S. Tsirkin <m...@redhat.com> wrote:
> On Sun, Sep 29, 2013 at 11:25:24AM +0800, liu ping fan wrote:
>> On Sun, Sep 29, 2013 at 3:52 AM, Michael S. Tsirkin <m...@redhat.com> wrote:
>> > On Thu, Sep 12, 2013 at 11:25:14AM +0800, Liu Ping Fan wrote:
>> >> According to hpet spec, hpet irq is high active. But according to
>> >> ICH spec, there is inversion before the input of ioapic. So the OS
>> >> will expect low active on this IRQ line.
>> >
>> >
>> >>(And this is observed on
>> >> bare metal).
>> >
>> > How does one test this on bare metal?
>> >
>> If changing the func hpet_timer_set_irq() in linux's hpet driver,
>> from acpi_register_gsi(NULL, irq, ACPI_LEVEL_SENSITIVE,
>> ACPI_ACTIVE_LOW);  to ACPI_ACTIVE_HIGH,  then run hpet_example.c on
>> bare metal, the modified kernel will complain about spurious irq and
>> disable the irq line.
>
> ok that's useful info for the changelog.
>
Will document them.

>> >>
>> >> We fold the emulation of this inversion inside the hpet logic.
>> >>
>> >> Signed-off-by: Liu Ping Fan <pingf...@linux.vnet.ibm.com>
>> >
>> >
>> > Doesn't this affect cross-version migration?
>> > E.g. imagine that you migrate between systems
>> > with/without this fix.
>> >
>> No. the changing only affect "route >= ISA_NUM_IRQS",  For linux
>> guest, it use IRQ2/8 for hpet0/hpet1 which is reserved by kernel. It
>> work without this fix (I think windows is the same). But the
>> hpet_example.c(in linux) can not work without this fix. So no such
>> run-time instance before this bug fix.
>>
>> Regards,
>> Pingfan
>
> aha so the argument is it's already too broken to even mostly work,
> we don't need to worry about migrating it to/from old qemu.
>
Yes :)

Thanks,
Pingfan

Reply via email to