NetBSD-Bugs archive

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

Re: port-amd64/55543: PVHVM fails to attach hypervisor bus on Amazon EC2 t2.micro



The following reply was made to PR port-amd64/55543; it has been noted by GNATS.

From: Manuel Bouyer <bouyer%antioche.eu.org@localhost>
To: Jared McNeill <jmcneill%invisible.ca@localhost>
Cc: gnats-bugs%netbsd.org@localhost, port-amd64-maintainer%netbsd.org@localhost,
        gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Subject: Re: port-amd64/55543: PVHVM fails to attach hypervisor bus on Amazon
 EC2 t2.micro
Date: Sat, 5 Sep 2020 18:16:37 +0200

 --1yeeQ81UyVL57Vl7
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 On Sat, Sep 05, 2020 at 09:06:20AM -0300, Jared McNeill wrote:
 > [...]
 > [   1.0000030] ioapic0 at mainbus0 apid 1
 > [   1.0000030] cpu0 at mainbus0 apid 0
 > [   1.0000030] cpu0: Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz, id 0x306f2
 > [   1.0000030] cpu0: node 0, package 0, core 0, smt 0
 > [   1.0000030] cpu0: Xen HVM: can't get VCPU id
 
 OK, this is the cause of the problem.
 Please try the attached patch. It works on Xen 4.13 if I force it to take
 the fallback branch, but I'm not sure ci_acpiid is the right index to use
 here (linux uses smp_processor_id() but I couldn't find where this number comes
 from).
 
 -- 
 Manuel Bouyer <bouyer%antioche.eu.org@localhost>
      NetBSD: 26 ans d'experience feront toujours la difference
 --
 
 --1yeeQ81UyVL57Vl7
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename=diff
 
 Index: xen/xen/hypervisor.c
 ===================================================================
 RCS file: /cvsroot/src/sys/arch/xen/xen/hypervisor.c,v
 retrieving revision 1.86
 diff -u -p -u -r1.86 hypervisor.c
 --- xen/xen/hypervisor.c	26 May 2020 10:37:25 -0000	1.86
 +++ xen/xen/hypervisor.c	5 Sep 2020 16:12:04 -0000
 @@ -456,13 +460,17 @@ xen_hvm_init_cpu(struct cpu_info *ci)
  
  	descs[0] = 0;
  	x86_cpuid(XEN_CPUID_LEAF(4), descs);
 -	if (!(descs[0] & XEN_HVM_CPUID_VCPU_ID_PRESENT)) {
 -		aprint_error_dev(ci->ci_dev, "Xen HVM: can't get VCPU id\n");
 -		vm_guest = VM_GUEST_XENHVM;
 -		return 0;
 +	if (descs[0] & XEN_HVM_CPUID_VCPU_ID_PRESENT) {
 +		ci->ci_vcpuid = descs[1];
 +	} else {
 +		aprint_error_dev(ci->ci_dev,
 +		    "HVM vid %d cpuid %ld acpid %d/%d\n",
 +			descs[1], ci->ci_cpuid, ci->ci_acpiid, ci->ci_initapicid);
 +		aprint_debug_dev(ci->ci_dev,
 +		    "Xen HVM: can't get VCPU id, falling back to ci_acpiid\n");
 +		ci->ci_vcpuid = ci->ci_acpiid;
  	}
  
 -	ci->ci_vcpuid = descs[1];
  	ci->ci_vcpu = &HYPERVISOR_shared_info->vcpu_info[ci->ci_vcpuid];
  
  	/* Register event callback handler. */
 
 --1yeeQ81UyVL57Vl7--
 


Home | Main Index | Thread Index | Old Index