Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 8 of 8 for g_stackguard0 (0.45 sec)

  1. src/runtime/asm_ppc64x.s

    	// create istack out of the given (operating system) stack.
    	// _cgo_init may update stackguard.
    	MOVD	$runtimeĀ·g0(SB), g
    	BL	runtimeĀ·save_g(SB)
    	MOVD	$(-64*1024), R31
    	ADD	R31, R1, R3
    	MOVD	R3, g_stackguard0(g)
    	MOVD	R3, g_stackguard1(g)
    	MOVD	R3, (g_stack+stack_lo)(g)
    	MOVD	R1, (g_stack+stack_hi)(g)
    
    	// If there is a _cgo_init, call it using the gcc ABI.
    	MOVD	_cgo_init(SB), R12
    	CMP	R12, $0
    	BEQ	nocgo
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 18:17:17 UTC 2024
    - 45.4K bytes
    - Viewed (0)
  2. src/runtime/stack.go

    	thisg.m.morebuf.pc = 0
    	thisg.m.morebuf.lr = 0
    	thisg.m.morebuf.sp = 0
    	thisg.m.morebuf.g = 0
    
    	// NOTE: stackguard0 may change underfoot, if another thread
    	// is about to try to preempt gp. Read it just once and use that same
    	// value now and below.
    	stackguard0 := atomic.Loaduintptr(&gp.stackguard0)
    
    	// Be conservative about where we preempt.
    	// We are interested in preempting user Go code, not runtime code.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 22:31:00 UTC 2024
    - 41.1K bytes
    - Viewed (0)
  3. src/runtime/preempt.go

    			if gp.preemptStop && gp.preempt && gp.stackguard0 == stackPreempt && asyncM == gp.m && asyncM.preemptGen.Load() == asyncGen {
    				break
    			}
    
    			// Temporarily block state transitions.
    			if !castogscanstatus(gp, _Grunning, _Gscanrunning) {
    				break
    			}
    
    			// Request synchronous preemption.
    			gp.preemptStop = true
    			gp.preempt = true
    			gp.stackguard0 = stackPreempt
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Fri May 17 15:41:45 UTC 2024
    - 15.1K bytes
    - Viewed (0)
  4. src/runtime/cgocall.go

    		// Stack is bogus, but reset the bounds anyway so we can print.
    		hi := g0.stack.hi
    		lo := g0.stack.lo
    		g0.stack.hi = sp + 1024
    		g0.stack.lo = sp - 32*1024
    		g0.stackguard0 = g0.stack.lo + stackGuard
    		g0.stackguard1 = g0.stackguard0
    
    		print("M ", mp.id, " procid ", mp.procid, " runtime: cgocallback with sp=", hex(sp), " out of bounds [", hex(lo), ", ", hex(hi), "]")
    		print("\n")
    		exit(2)
    	}
    
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 23 01:16:47 UTC 2024
    - 24.2K bytes
    - Viewed (0)
  5. src/runtime/runtime2.go

    type heldLockInfo struct {
    	lockAddr uintptr
    	rank     lockRank
    }
    
    type g struct {
    	// Stack parameters.
    	// stack describes the actual stack memory: [stack.lo, stack.hi).
    	// stackguard0 is the stack pointer compared in the Go stack growth prologue.
    	// It is stack.lo+StackGuard normally, but can be StackPreempt to trigger a preemption.
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:57:37 UTC 2024
    - 47.9K bytes
    - Viewed (0)
  6. src/runtime/runtime1.go

    	return gp.m
    }
    
    //go:nosplit
    func releasem(mp *m) {
    	gp := getg()
    	mp.locks--
    	if mp.locks == 0 && gp.preempt {
    		// restore the preemption request in case we've cleared it in newstack
    		gp.stackguard0 = stackPreempt
    	}
    }
    
    // reflect_typelinks is meant for package reflect,
    // but widely used packages access it using linkname.
    // Notable members of the hall of shame include:
    //   - gitee.com/quant1x/gox
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:52:17 UTC 2024
    - 19.3K bytes
    - Viewed (0)
  7. src/cmd/internal/obj/ppc64/obj9.go

    	// save entry point, but skipping the two instructions setting R2 in shared mode and maymorestack
    	startPred := p
    
    	// MOVD	g_stackguard(g), R22
    	p = obj.Appendp(p, c.newprog)
    
    	p.As = AMOVD
    	p.From.Type = obj.TYPE_MEM
    	p.From.Reg = REGG
    	p.From.Offset = 2 * int64(c.ctxt.Arch.PtrSize) // G.stackguard0
    	if c.cursym.CFunc() {
    		p.From.Offset = 3 * int64(c.ctxt.Arch.PtrSize) // G.stackguard1
    	}
    	p.To.Type = obj.TYPE_REG
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 18:17:17 UTC 2024
    - 40.8K bytes
    - Viewed (0)
  8. src/runtime/export_test.go

    		// Use an artificially small stack, to trigger a stack overflow
    		// without actually run out of the system stack (which may seg fault).
    		g0.stack.lo = sp - 4096 - stackSystem
    		g0.stackguard0 = g0.stack.lo + stackGuard
    		g0.stackguard1 = g0.stackguard0
    
    		stackOverflow(nil)
    	})
    }
    
    func stackOverflow(x *byte) {
    	var buf [256]byte
    	stackOverflow(&buf[0])
    }
    
    func MapTombstoneCheck(m map[int]int) {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:50:53 UTC 2024
    - 46.1K bytes
    - Viewed (0)
Back to top