Difference between revisions of "System Thread Priorities"

From Nintendo Switch Brew
Jump to navigation Jump to search
(→‎Production devices: psc - math is hard.)
 
(6 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
|-
 
|-
 
! Thread Priority || Thread Name || Owner Process || Notes
 
! Thread Priority || Thread Name || Owner Process || Notes
 +
|-
 +
| 5 || nn.pcv.ImmediateIpcServer || pcv ||
 +
|-
 +
| 16 || nn.bus.MainThread || Bus ||
 +
|-
 +
| 16 || nn.i2c.IpcServer || Bus ||
 +
|-
 +
| 16 || nn.i2c.ForPcvIpcServer || Bus ||
 +
|-
 +
| 16 || nn.gpio.IpcServer || Bus ||
 +
|-
 +
| 16 || nn.gpio.InterruptHandler|| Bus ||
 +
|-
 +
| 16 || nn.pinmux.IpcServer || Bus ||
 +
|-
 +
| 16 || nn.sasbus.IpcServer || Bus ||
 +
|-
 +
| 16 || nn.sasbus.PeriodicReceiveModeThread || Bus ||
 +
|-
 +
| 16 || nn.uart.IpcServer || Bus ||
 +
|-
 +
| 16 || nn.uart.InterruptHandler|| Bus ||
 +
|-
 +
| 16 || nn.usb.MainThread || usb ||
 +
|-
 +
| 16 || nn.usb.DsIpcServer || usb || usb spawns four copies of this thread to handle usb:ds IPC requests.
 +
|-
 +
| 16 || nn.usb.DsProtocol || usb ||
 +
|-
 +
| 16 || nn.usb.DsThread || usb ||
 +
|-
 +
| 16 || nn.usb.HsIpcServer || usb || usb spawns two copies of this thread to handle usb:hs IPC requests.
 +
|-
 +
| 16 || nn.usb.HsThread || usb ||
 +
|-
 +
| 16 || nn.usb.InterruptHandler || usb ||
 +
|-
 +
| 16 || nn.usb.PmIpcServer || usb ||
 +
|-
 +
| 23 || nn.pcv.IpcServer|| pcv ||
 
|-
 
|-
 
| 27 || nn.boot.Main || boot || This is the real name for nn.boot.MainThread.
 
| 27 || nn.boot.Main || boot || This is the real name for nn.boot.MainThread.
Line 11: Line 51:
 
|-
 
|-
 
| 27 || nn.sm.MainThread || sm ||  
 
| 27 || nn.sm.MainThread || sm ||  
 +
|-
 +
| 30 || nn.pcie.Main || pcie || This is the real name for nn.pcie.MainThread.
 +
|-
 +
| 30 || nn.pcie.InterruptHandler || pcie ||
 +
|-
 +
| 32 || nn.bpc.IpcServer || pcv ||
 +
|-
 +
| 32 || nn.bpc.IrqHandler || pcv ||
 +
|-
 +
| 32 || nn.bpc.SleepButtonCounter || pcv ||
 +
|-
 +
| 32 || nn.pcv.EmcDvfsPeriodicCompHandler || pcv ||
 +
|-
 +
| 32 || nn.pcv.Main || pcv || This is the real name for nn.pcv.MainThread.
 +
|-
 +
| 32 || nn.time.IpcServer || pcv ||
 
|-
 
|-
 
| 37 || nn.psc.Main || psc || This is the real name for nn.psc.MainThread.
 
| 37 || nn.psc.Main || psc || This is the real name for nn.psc.MainThread.
Line 19: Line 75:
 
|-
 
|-
 
| 37 || nn.srepo.IpcServer || psc ||  
 
| 37 || nn.srepo.IpcServer || psc ||  
 +
|-
 +
| 37 || nn.pwm.IpcServer || Bus ||
 +
|-
 +
| 37 || nn.usb.PdAlert || usb ||
 +
|-
 +
| 37 || nn.usb.PdExecute || usb ||
 +
|-
 +
| 37 || nn.usb.PdReceiveVdm || usb ||
 +
|-
 +
| 37 || nn.usb.PdServer || usb ||
 +
|-
 +
| 37 || nn.usb.InputNotifier || usb ||
 +
|-
 +
| 38 || nn.tma.MainThread || tma ||
 +
|-
 +
| 38 || nn.usb.PdCradleServer || usb ||
 
|-
 
|-
 
| 39 || nn.gc.DeviceDetector || fs ||  
 
| 39 || nn.gc.DeviceDetector || fs ||  
Line 28: Line 100:
 
| 45 || nn.fs.MainThread || fs ||  
 
| 45 || nn.fs.MainThread || fs ||  
 
|-
 
|-
| 46 || nn.fs.WorkerNormalPriorityAccess0 || fs ||  
+
| 46 || nn.fs.WorkerNormalPriorityAccess || fs || fs spawns five copies of this thread to handle fsp-srv IPC requests
|-
 
| 46 || nn.fs.WorkerNormalPriorityAccess1 || fs ||
 
|-
 
| 46 || nn.fs.WorkerNormalPriorityAccess2 || fs ||
 
|-
 
| 46 || nn.fs.WorkerNormalPriorityAccess3 || fs ||
 
|-
 
| 46 || nn.fs.WorkerNormalPriorityAccess4 || fs ||
 
 
|-
 
|-
 
| 48 || nn.boot2.MainThread || boot2 ||
 
| 48 || nn.boot2.MainThread || boot2 ||
Line 57: Line 121:
 
|-
 
|-
 
| 49 || nn.settings.LazyWriter || settings ||  
 
| 49 || nn.settings.LazyWriter || settings ||  
 +
|-
 +
| 49 || nn.time.Worker || pcv ||
 
|-
 
|-
 
| 58 || nn.fs.PatrolReader || fs ||
 
| 58 || nn.fs.PatrolReader || fs ||
 
|}
 
|}

Latest revision as of 04:54, 2 December 2018

This is a list of threads executing on the system during normal operation.

Production devices

Thread Priority Thread Name Owner Process Notes
5 nn.pcv.ImmediateIpcServer pcv
16 nn.bus.MainThread Bus
16 nn.i2c.IpcServer Bus
16 nn.i2c.ForPcvIpcServer Bus
16 nn.gpio.IpcServer Bus
16 nn.gpio.InterruptHandler Bus
16 nn.pinmux.IpcServer Bus
16 nn.sasbus.IpcServer Bus
16 nn.sasbus.PeriodicReceiveModeThread Bus
16 nn.uart.IpcServer Bus
16 nn.uart.InterruptHandler Bus
16 nn.usb.MainThread usb
16 nn.usb.DsIpcServer usb usb spawns four copies of this thread to handle usb:ds IPC requests.
16 nn.usb.DsProtocol usb
16 nn.usb.DsThread usb
16 nn.usb.HsIpcServer usb usb spawns two copies of this thread to handle usb:hs IPC requests.
16 nn.usb.HsThread usb
16 nn.usb.InterruptHandler usb
16 nn.usb.PmIpcServer usb
23 nn.pcv.IpcServer pcv
27 nn.boot.Main boot This is the real name for nn.boot.MainThread.
27 nn.spl.MainThread spl
27 nn.sm.MainThread sm
30 nn.pcie.Main pcie This is the real name for nn.pcie.MainThread.
30 nn.pcie.InterruptHandler pcie
32 nn.bpc.IpcServer pcv
32 nn.bpc.IrqHandler pcv
32 nn.bpc.SleepButtonCounter pcv
32 nn.pcv.EmcDvfsPeriodicCompHandler pcv
32 nn.pcv.Main pcv This is the real name for nn.pcv.MainThread.
32 nn.time.IpcServer pcv
37 nn.psc.Main psc This is the real name for nn.psc.MainThread.
37 nn.psc.IpcServer psc
37 nn.psc.PmControl psc
37 nn.srepo.IpcServer psc
37 nn.pwm.IpcServer Bus
37 nn.usb.PdAlert usb
37 nn.usb.PdExecute usb
37 nn.usb.PdReceiveVdm usb
37 nn.usb.PdServer usb
37 nn.usb.InputNotifier usb
38 nn.tma.MainThread tma
38 nn.usb.PdCradleServer usb
39 nn.gc.DeviceDetector fs
39 nn.sdmmc.DeviceDetector fs
44 nn.fs.WorkerThreadPool fs
45 nn.fs.MainThread fs
46 nn.fs.WorkerNormalPriorityAccess fs fs spawns five copies of this thread to handle fsp-srv IPC requests
48 nn.boot2.MainThread boot2
49 nn.ncm.MainWaitThreads ncm This is the real name for nn.ncm.MainThread.
49 nn.ncm.ContentManagerServerIpcSession ncm
49 nn.ncm.LocationResolverServerIpcSession ncm
49 nn.Loader.MainThread Loader
49 nn.pm.MainThread pm
49 nn.pm.ProcessTrack pm
49 nn.settings.Main settings This is the real name for nn.settings.MainThread.
49 nn.settings.IpcServer settings
49 nn.settings.LazyWriter settings
49 nn.time.Worker pcv
58 nn.fs.PatrolReader fs