nasa / PSP

The Core Flight System (cFS) Platform Support Package (PSP)
Apache License 2.0
67 stars 57 forks source link

Graceful shutdown for VxWorks/MCP750 #216

Open jphickey opened 3 years ago

jphickey commented 3 years ago

Is your feature request related to a problem? Please describe. When the CFE "Restart" command is executed, it calls CFE_PSP_Restart(). In the MCP750 implementation, this ultimately just invokes the reboot() kernel API.

This is rather extreme -- all apps/tasks are still running when this command comes in, and this just suddenly reboots the CPU with no notice. Those tasks could have been doing something important when they suddenly get the carpet ripped out from underneath.

Describe the solution you'd like Should do some sort of graceful shutdown like Linux does with CTRL+C handling. Cancel or suspend all running tasks first so that when the "reboot()" is called there shouldn't be any other activity going on.

Describe alternatives you've considered

Additional context During CFE 6.8 testing there was some occasional spurious exceptions observed when issuing the CFE Restart command - causing it to effectively execute a PROCESSOR restart instead of the intended POWERON Reset.

I was not able to reproduce that with the core framework distro, but my hypothesis is that there were possibly some apps running and doing something when the reboot was initiated and this set the stage for indeterminate behavior.

Requester Info Joseph Hickey, Vantage Systems, Inc.

skliper commented 3 years ago

Ping @wmoleski