Search Options

Results per page
Sort
Preferred Languages
Advance

Results 1 - 6 of 6 for gcMarkWorkerMode (0.25 sec)

  1. src/runtime/mgc.go

    }
    
    // gcMarkWorkerMode represents the mode that a concurrent mark worker
    // should operate in.
    //
    // Concurrent marking happens through four different mechanisms. One
    // is mutator assists, which happen in response to allocations and are
    // not scheduled. The other three are variations in the per-P mark
    // workers and are distinguished by gcMarkWorkerMode.
    type gcMarkWorkerMode int
    
    const (
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 29 16:25:21 UTC 2024
    - 62K bytes
    - Viewed (0)
  2. src/runtime/traceruntime.go

    	pp := gp.m.p
    	w := tl.eventWriter(traceGoRunnable, traceProcRunning)
    	w = w.write(traceEvGoStart, traceArg(gp.goid), gp.trace.nextSeq(tl.gen))
    	if pp.ptr().gcMarkWorkerMode != gcMarkWorkerNotWorker {
    		w = w.write(traceEvGoLabel, trace.markWorkerLabels[tl.gen%2][pp.ptr().gcMarkWorkerMode])
    	}
    	w.end()
    }
    
    // GoEnd emits a GoDestroy event.
    //
    // TODO(mknyszek): Rename this to GoDestroy.
    func (tl traceLocker) GoEnd() {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Wed May 22 22:31:00 UTC 2024
    - 25.7K bytes
    - Viewed (0)
  3. src/runtime/runtime2.go

    	limiterEvent limiterEvent
    
    	// gcMarkWorkerMode is the mode for the next mark worker to run in.
    	// That is, this is used to communicate with the worker goroutine
    	// selected for immediate execution by
    	// gcController.findRunnableGCWorker. When scheduling other goroutines,
    	// this field must be set to gcMarkWorkerNotWorker.
    	gcMarkWorkerMode gcMarkWorkerMode
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Thu May 30 17:57:37 UTC 2024
    - 47.9K bytes
    - Viewed (0)
  4. src/runtime/mgcpacer.go

    				return true
    			}
    		}
    	}
    
    	if decIfPositive(&c.dedicatedMarkWorkersNeeded) {
    		// This P is now dedicated to marking until the end of
    		// the concurrent mark phase.
    		pp.gcMarkWorkerMode = gcMarkWorkerDedicatedMode
    	} else if c.fractionalUtilizationGoal == 0 {
    		// No need for fractional workers.
    		gcBgMarkWorkerPool.push(&node.node)
    		return nil, now
    	} else {
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Mar 25 19:53:03 UTC 2024
    - 55.4K bytes
    - Viewed (0)
  5. src/runtime/mgclimit.go

    type limiterEventType uint8
    
    const (
    	limiterEventNone           limiterEventType = iota // None of the following events.
    	limiterEventIdleMarkWork                           // Refers to an idle mark worker (see gcMarkWorkerMode).
    	limiterEventMarkAssist                             // Refers to mark assist (see gcAssistAlloc).
    	limiterEventScavengeAssist                         // Refers to a scavenge assist (see allocSpan).
    Registered: Wed Jun 12 16:32:35 UTC 2024
    - Last Modified: Mon Apr 22 22:07:41 UTC 2024
    - 17.3K bytes
    - Viewed (0)
  6. src/runtime/proc.go

    	if gcBlackenEnabled != 0 && gcMarkWorkAvailable(pp) && gcController.addIdleMarkWorker() {
    		node := (*gcBgMarkWorkerNode)(gcBgMarkWorkerPool.pop())
    		if node != nil {
    			pp.gcMarkWorkerMode = gcMarkWorkerIdleMode
    			gp := node.gp.ptr()
    
    			trace := traceAcquire()
    			casgstatus(gp, _Gwaiting, _Grunnable)
    			if trace.ok() {
    				trace.GoUnpark(gp, 0)
    				traceRelease(trace)
    			}
    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