[Xen-devel] FreeBSD PVHVM call for testing
Roger Pau Monné
roger.pau at citrix.com
Wed May 29 17:03:50 UTC 2013
On 28/05/13 23:33, Colin Percival wrote:
> On 05/28/13 12:18, Matt Wilson wrote:
>> VCPUOP_set_singleshot_timer returns -EINVAL when:
>> 1) the specified vCPU ID is out of range (<0 or >MAX_VIRT_CPUS)
>> 2) the specified vCPU ID doesn't match the running vCPU.
>> It seems that there is a confusion between the logical vCPU ID and the
>> local APIC physical ID.
>> (XEN) Domain 1 (vcpu#16) VCPUOP_set_singleshot_timer specified vcpuid 1
>> APIC: CPU 1 has ACPI ID 16
> Thanks Matt! Looks like we need to pass our acpi_id to the Xen hypercall
> instead of our cpuid.
> Roger, changing the line
> int cpu = PCPU_GET(cpuid);
> int cpu = PCPU_GET(acpi_id);
> in xentimer_et_start and xentimer_et_stop fixes this panic and gets me
> slightly further; the following lines are now added to the console output
> prior to the system appearing to hang:
>> ioapic0: routing intpin 1 (ISA IRQ 1) to lapic 1 vector 48
>> ioapic0: routing intpin 4 (ISA IRQ 4) to lapic 2 vector 48
>> ioapic0: routing intpin 9 (ISA IRQ 9) to lapic 3 vector 48
>> ioapic0: routing intpin 12 (ISA IRQ 12) to lapic 4 vector 48
>> ioapic0: routing intpin 14 (ISA IRQ 14) to lapic 5 vector 48
>> ioapic0: routing intpin 15 (ISA IRQ 15) to lapic 6 vector 48
>> ioapic0: routing intpin 28 (PCI IRQ 28) to lapic 7 vector 48
>> TSC timecounter discards lower 1 bit(s)
>> Timecounter "TSC-low" frequency 1300024860 Hz quality -100
>> WARNING: WITNESS option enabled, expect reduced performance.
Thanks Matt and Colin for the testing and help! I've pushed yet another
version, now it's branch pvhvm_v12, which I *think* should solve the
issues with cpuid != acpi_id:
Since I'm not able to reproduce the cpuid != acpi_id case, could you
give it a try and report the results?
> On a cc2.8xlarge EC2 instance, the lines which come after this are
>> GEOM: new disk xbd1
>> GEOM: new disk xbd2
>> GEOM: new disk xbd3
>> GEOM: new disk xbd4
>> Trying to mount root from ufs:/dev/ad0a [rw]...
>> start_init: trying /sbin/init
> and then the userland boot process; have you made any bug fixes after
> your pvhvm_v7 which would explain why tasting disks was hanging?
I'm not sure I follow, did you found a regression from previous
branches? i.e. it used to work with branch pvhvm_v6 and not pvhvm_v7?
More information about the freebsd-virtualization