mirror of
https://github.com/ii64/sonic.git
synced 2026-06-21 00:46:43 +08:00
feat: add env option SONIC_STOP_PROFILING to stop traceback on demands (#361)
This commit is contained in:
parent
02865de676
commit
fa82a64ce2
2 changed files with 10 additions and 0 deletions
|
|
@ -22,6 +22,8 @@ _stack_grow:
|
||||||
|
|
||||||
TEXT ·StopProf(SB), NOSPLIT, $0-0
|
TEXT ·StopProf(SB), NOSPLIT, $0-0
|
||||||
NO_LOCAL_POINTERS
|
NO_LOCAL_POINTERS
|
||||||
|
CMPB github·com∕bytedance∕sonic∕internal∕rt·StopProfiling(SB), $0
|
||||||
|
JEQ _ret_1
|
||||||
MOVL $1, AX
|
MOVL $1, AX
|
||||||
LEAQ github·com∕bytedance∕sonic∕internal∕rt·yieldCount(SB), CX
|
LEAQ github·com∕bytedance∕sonic∕internal∕rt·yieldCount(SB), CX
|
||||||
LOCK
|
LOCK
|
||||||
|
|
@ -37,6 +39,8 @@ _ret_1:
|
||||||
|
|
||||||
TEXT ·StartProf(SB), NOSPLIT, $0-0
|
TEXT ·StartProf(SB), NOSPLIT, $0-0
|
||||||
NO_LOCAL_POINTERS
|
NO_LOCAL_POINTERS
|
||||||
|
CMPB github·com∕bytedance∕sonic∕internal∕rt·StopProfiling(SB), $0
|
||||||
|
JEQ _ret_2
|
||||||
MOVL $-1, AX
|
MOVL $-1, AX
|
||||||
LEAQ github·com∕bytedance∕sonic∕internal∕rt·yieldCount(SB), CX
|
LEAQ github·com∕bytedance∕sonic∕internal∕rt·yieldCount(SB), CX
|
||||||
LOCK
|
LOCK
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
package rt
|
package rt
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
`os`
|
||||||
`sync/atomic`
|
`sync/atomic`
|
||||||
`unsafe`
|
`unsafe`
|
||||||
|
|
||||||
|
|
@ -75,6 +76,11 @@ func GcwbAddr() uintptr {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// StopProfiling is used to stop traceback introduced by SIGPROF while native code is running.
|
||||||
|
// WARN: this option is only a workaround for traceback issue (https://github.com/bytedance/sonic/issues/310),
|
||||||
|
// and will be dropped when the issue is fixed.
|
||||||
|
var StopProfiling = os.Getenv("SONIC_STOP_PROFILING") != ""
|
||||||
|
|
||||||
// WARN: must be aligned with runtime.Prof
|
// WARN: must be aligned with runtime.Prof
|
||||||
// type Prof struct {
|
// type Prof struct {
|
||||||
// signalLock uint32
|
// signalLock uint32
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue