Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 10 of 11 for g_racectx (0.28 sec)

  1. src/runtime/race_ppc64le.s

    // Call a __tsan function from Go code.
    // R8 = tsan function address
    // R3 = *ThreadState a.k.a. g_racectx from g
    // R4 = addr passed to __tsan function
    //
    // Otherwise, setup goroutine context and invoke racecall. Other arguments already set.
    TEXT	racecalladdr<>(SB), NOSPLIT, $0-0
    	MOVD    runtime·tls_g(SB), R10
    	MOVD	0(R10), g
    	MOVD	g_racectx(g), R3	// goroutine context
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:37:29 UTC 2024
    - 17K bytes
    - Viewed (0)
  2. src/runtime/race_s390x.s

    	MOVD	$__tsan_go_ignore_sync_begin(SB), R1
    	MOVD	g_racectx(g), R2		// ThreadState *.
    	BL	racecall<>(SB)
    	MOVD	R6, R1				// Restore target function.
    	MOVD	g_racectx(g), R2		// ThreadState *.
    	MOVD	8(R15), R3			// Caller PC.
    	MOVD	R7, R4				// PC.
    	ADD	$24, R15, R5			// Arguments.
    	BL	racecall<>(SB)
    	MOVD	$__tsan_go_ignore_sync_end(SB), R1
    	MOVD	g_racectx(g), R2		// ThreadState *.
    	BL	racecall<>(SB)
    	RET
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:37:29 UTC 2024
    - 13.1K bytes
    - Viewed (0)
  3. src/runtime/race_amd64.s

    	MOVQ	AX, BX	// remember the original function
    	MOVQ	$__tsan_go_ignore_sync_begin(SB), AX
    	MOVQ	g_racectx(R14), RARG0	// goroutine context
    	CALL	racecall<>(SB)
    	MOVQ	BX, AX	// restore the original function
    	// Call the atomic function.
    	MOVQ	g_racectx(R14), RARG0	// goroutine context
    	MOVQ	8(SP), RARG1	// caller pc
    	MOVQ	(SP), RARG2	// pc
    	LEAQ	16(SP), RARG3	// arguments
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:37:29 UTC 2024
    - 15.1K bytes
    - Viewed (0)
  4. src/runtime/race_arm64.s

    TEXT	racefuncenter<>(SB), NOSPLIT, $0-0
    	load_g
    	MOVD	g_racectx(g), R0	// goroutine racectx
    	MOVD	R9, R1
    	// void __tsan_func_enter(ThreadState *thr, void *pc);
    	MOVD	$__tsan_func_enter(SB), R9
    	BL	racecall<>(SB)
    	RET
    
    // func runtime·racefuncexit()
    // Called from instrumented code.
    TEXT	runtime·racefuncexit<ABIInternal>(SB), NOSPLIT, $0-0
    	load_g
    	MOVD	g_racectx(g), R0	// race context
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:37:29 UTC 2024
    - 15.5K bytes
    - Viewed (0)
  5. src/runtime/race.go

    	} else {
    		spawng = gp
    	}
    
    	var racectx uintptr
    	racecall(&__tsan_go_start, spawng.racectx, uintptr(unsafe.Pointer(&racectx)), pc, 0)
    	return racectx
    }
    
    //go:nosplit
    func racegoend() {
    	racecall(&__tsan_go_end, getg().racectx, 0, 0, 0)
    }
    
    //go:nosplit
    func racectxend(racectx uintptr) {
    	racecall(&__tsan_go_end, racectx, 0, 0, 0)
    }
    
    //go:nosplit
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 18:37:29 UTC 2024
    - 20.4K bytes
    - Viewed (0)
  6. src/runtime/race0.go

    func raceacquire(addr unsafe.Pointer)                                       { throw("race") }
    func raceacquireg(gp *g, addr unsafe.Pointer)                               { throw("race") }
    func raceacquirectx(racectx uintptr, addr unsafe.Pointer)                   { throw("race") }
    func racerelease(addr unsafe.Pointer)                                       { throw("race") }
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu Oct 28 18:17:57 UTC 2021
    - 2.8K bytes
    - Viewed (0)
  7. src/runtime/time.go

    			t.ts.zombies.Add(1)
    		}
    		t.updateHeap()
    	}
    	t.unlock()
    
    	if raceenabled {
    		// Temporarily use the current P's racectx for g0.
    		gp := getg()
    		if gp.racectx != 0 {
    			throw("unexpected racectx")
    		}
    		gp.racectx = gp.m.p.ptr().timers.raceCtx
    	}
    
    	if ts != nil {
    		ts.unlock()
    	}
    
    	async := debug.asynctimerchan.Load() != 0
    	if !async && t.isChan {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri Mar 29 14:36:24 UTC 2024
    - 37.5K bytes
    - Viewed (0)
  8. src/runtime/trace.go

    	if raceenabled {
    		// g0 doesn't have a race context. Borrow the user G's.
    		if getg().racectx != 0 {
    			throw("expected racectx == 0")
    		}
    		getg().racectx = getg().m.curg.racectx
    		// (This defer should get open-coded, which is safe on
    		// the system stack.)
    		defer func() { getg().racectx = 0 }()
    	}
    
    	// This function must not allocate while holding trace.lock:
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 21:17:41 UTC 2024
    - 37.1K bytes
    - Viewed (0)
  9. src/runtime/export_test.go

    	// allocate and skew the stats.
    	metricsLock()
    	initMetrics()
    
    	systemstack(func() {
    		// Donate the racectx to g0. readMetricsLocked calls into the race detector
    		// via map access.
    		getg().racectx = getg().m.curg.racectx
    
    		// Read the metrics once before in case it allocates and skews the metrics.
    		// readMetricsLocked is designed to only allocate the first time it is called
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:50:53 UTC 2024
    - 46.1K bytes
    - Viewed (0)
  10. src/runtime/proc.go

    // Value to use for signal mask for newly created M's.
    var initSigmask sigset
    
    // The main goroutine.
    func main() {
    	mp := getg().m
    
    	// Racectx of m0->g0 is used only as the parent of the main goroutine.
    	// It must not be used for anything else.
    	mp.g0.racectx = 0
    
    	// Max stack size is 1 GB on 64-bit, 250 MB on 32-bit.
    	// Using decimal instead of binary GB and MB because
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 17:58:53 UTC 2024
    - 207.5K bytes
    - Viewed (0)
Back to top