search for: critical_exit

Displaying 2 results from an estimated 2 matches for "critical_exit".

2011 Jun 02
0
Debian 6.0 + Xen4.0 + FreeBSD hvm amd64 -> fpudna: fpcurthread == curthread XXXX times
...pu.c +++ b/sys/amd64/amd64/fpu.c @@ -394,14 +394,8 @@ fpudna(void) struct pcb *pcb; critical_enter(); - if (PCPU_GET(fpcurthread) == curthread) { - printf("fpudna: fpcurthread == curthread %d times\n", - ++err_count); - stop_emulating(); - critical_exit(); - return; - } - if (PCPU_GET(fpcurthread) != NULL) { + if (PCPU_GET(fpcurthread) != NULL&& + PCPU_GET(fpcurthread) != curthread) { printf("fpudna: fpcurthread = %p (%d), curthread = %p (%d)\n", PCPU_GET(fpcurthread),...
2013 Oct 28
5
FreeBSD PVH guest support
...struct vcpu_info *vcpu = DPCPU_GET(vcpu_info); src = &vcpu->time; - critical_enter(); do { pre_version = xen_fetch_vcpu_tinfo(&dst, src); barrier(); @@ -266,16 +267,19 @@ xen_fetch_vcpu_time(void) } } while (!atomic_cmpset_64(&xen_timer_last_time, last, now)); - critical_exit(); - return (now); } static uint32_t xentimer_get_timecount(struct timecounter *tc) { + uint32_t xen_time; + + critical_enter(); + xen_time = (uint32_t)xen_fetch_vcpu_time(DPCPU_GET(vcpu_info)) & UINT_MAX; + critical_exit(); - return ((uint32_t)xen_fetch_vcpu_time() & UINT_MAX); +...