[BACK]Return to cpu.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / arch / x86 / x86

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/arch/x86/x86/cpu.c between version 1.188 and 1.189

version 1.188, 2020/04/29 22:03:09 version 1.189, 2020/05/02 16:44:36
Line 447  cpu_attach(device_t parent, device_t sel
Line 447  cpu_attach(device_t parent, device_t sel
                         /* Enable lapic. */                          /* Enable lapic. */
                         lapic_enable();                          lapic_enable();
                         lapic_set_lvt();                          lapic_set_lvt();
                         if (vm_guest != VM_GUEST_XENPVHVM)                          if (!vm_guest_is_xenpvh_or_pvhvm())
                                 lapic_calibrate_timer(ci);                                  lapic_calibrate_timer(ci);
                 }                  }
 #endif  #endif
Line 824  cpu_start_secondary(struct cpu_info *ci)
Line 824  cpu_start_secondary(struct cpu_info *ci)
         KASSERT(cpu_starting == NULL);          KASSERT(cpu_starting == NULL);
         cpu_starting = ci;          cpu_starting = ci;
         for (i = 100000; (!(ci->ci_flags & CPUF_PRESENT)) && i > 0; i--) {          for (i = 100000; (!(ci->ci_flags & CPUF_PRESENT)) && i > 0; i--) {
                 x86_delay(10);                  delay_func(10);
         }          }
   
         if ((ci->ci_flags & CPUF_PRESENT) == 0) {          if ((ci->ci_flags & CPUF_PRESENT) == 0) {
Line 860  cpu_boot_secondary(struct cpu_info *ci)
Line 860  cpu_boot_secondary(struct cpu_info *ci)
   
         atomic_or_32(&ci->ci_flags, CPUF_GO);          atomic_or_32(&ci->ci_flags, CPUF_GO);
         for (i = 100000; (!(ci->ci_flags & CPUF_RUNNING)) && i > 0; i--) {          for (i = 100000; (!(ci->ci_flags & CPUF_RUNNING)) && i > 0; i--) {
                 x86_delay(10);                  delay_func(10);
         }          }
         if ((ci->ci_flags & CPUF_RUNNING) == 0) {          if ((ci->ci_flags & CPUF_RUNNING) == 0) {
                 aprint_error_dev(ci->ci_dev, "failed to start\n");                  aprint_error_dev(ci->ci_dev, "failed to start\n");
Line 1143  mp_cpu_start(struct cpu_info *ci, paddr_
Line 1143  mp_cpu_start(struct cpu_info *ci, paddr_
                             __func__);                              __func__);
                         return error;                          return error;
                 }                  }
                 x86_delay(10000);                  delay_func(10000);
   
                 error = x86_ipi_startup(ci->ci_cpuid, target / PAGE_SIZE);                  error = x86_ipi_startup(ci->ci_cpuid, target / PAGE_SIZE);
                 if (error != 0) {                  if (error != 0) {
Line 1151  mp_cpu_start(struct cpu_info *ci, paddr_
Line 1151  mp_cpu_start(struct cpu_info *ci, paddr_
                             __func__);                              __func__);
                         return error;                          return error;
                 }                  }
                 x86_delay(200);                  delay_func(200);
   
                 error = x86_ipi_startup(ci->ci_cpuid, target / PAGE_SIZE);                  error = x86_ipi_startup(ci->ci_cpuid, target / PAGE_SIZE);
                 if (error != 0) {                  if (error != 0) {
Line 1159  mp_cpu_start(struct cpu_info *ci, paddr_
Line 1159  mp_cpu_start(struct cpu_info *ci, paddr_
                             __func__);                              __func__);
                         return error;                          return error;
                 }                  }
                 x86_delay(200);                  delay_func(200);
         }          }
   
         return 0;          return 0;
Line 1321  cpu_get_tsc_freq(struct cpu_info *ci)
Line 1321  cpu_get_tsc_freq(struct cpu_info *ci)
         } else {          } else {
                 /* Calibrate TSC frequency. */                  /* Calibrate TSC frequency. */
                 last_tsc = cpu_counter_serializing();                  last_tsc = cpu_counter_serializing();
                 x86_delay(100000);                  delay_func(100000);
                 ci->ci_data.cpu_cc_freq =                  ci->ci_data.cpu_cc_freq =
                     (cpu_counter_serializing() - last_tsc) * 10;                      (cpu_counter_serializing() - last_tsc) * 10;
         }          }

Legend:
Removed from v.1.188  
changed lines
  Added in v.1.189

CVSweb <webmaster@jp.NetBSD.org>