mirror of
https://github.com/nasa/fprime.git
synced 2025-12-10 00:44:37 -06:00
Adjust task priorities to fit within supported platform priority ranges (#4337)
* Adjust task priorities to fit in supported platforms' priority ranges Darwin's task priority range is most restrictive (15-47); adjusted priorities to reside within that range. * Add comment clarifying TASK_PRIORITY_DEFAULT and TASK_DEFAULT * Adjust relative task priorities for uplink and downlink This moves uplink tasks to higher priority than downlink tasks and places consumer tasks at higher priority than producer tasks.
This commit is contained in:
parent
3f25d8b535
commit
bf12f48c27
10
Os/Task.hpp
10
Os/Task.hpp
@ -34,8 +34,18 @@ class TaskHandle {};
|
|||||||
|
|
||||||
class TaskInterface {
|
class TaskInterface {
|
||||||
public:
|
public:
|
||||||
|
//! Sentinel value to use a default value for the task argument to which this is supplied.
|
||||||
|
//!
|
||||||
|
//! Implementations of TaskInterface::start() should make a special case to use some default value that is
|
||||||
|
//! valid for the target platform.
|
||||||
static constexpr FwSizeType TASK_DEFAULT = std::numeric_limits<FwSizeType>::max();
|
static constexpr FwSizeType TASK_DEFAULT = std::numeric_limits<FwSizeType>::max();
|
||||||
|
|
||||||
|
//! Sentinel value to use a default priority for the task.
|
||||||
|
//!
|
||||||
|
//! Implementations of TaskInterface::start() should make a special case to use some default task priority
|
||||||
|
//! that is valid for the target platform.
|
||||||
static constexpr FwTaskPriorityType TASK_PRIORITY_DEFAULT = std::numeric_limits<FwTaskPriorityType>::max();
|
static constexpr FwTaskPriorityType TASK_PRIORITY_DEFAULT = std::numeric_limits<FwTaskPriorityType>::max();
|
||||||
|
|
||||||
enum Status {
|
enum Status {
|
||||||
OP_OK, //!< message sent/received okay
|
OP_OK, //!< message sent/received okay
|
||||||
INVALID_HANDLE, //!< Task handle invalid
|
INVALID_HANDLE, //!< Task handle invalid
|
||||||
|
|||||||
@ -32,7 +32,7 @@ U32 rateGroup2Context[Svc::ActiveRateGroup::CONNECTION_COUNT_MAX] = {};
|
|||||||
U32 rateGroup3Context[Svc::ActiveRateGroup::CONNECTION_COUNT_MAX] = {};
|
U32 rateGroup3Context[Svc::ActiveRateGroup::CONNECTION_COUNT_MAX] = {};
|
||||||
|
|
||||||
enum TopologyConstants {
|
enum TopologyConstants {
|
||||||
COMM_PRIORITY = 100,
|
COMM_PRIORITY = 34,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -29,39 +29,39 @@ module Ref {
|
|||||||
instance blockDrv: Ref.BlockDriver base id 0x10000000 \
|
instance blockDrv: Ref.BlockDriver base id 0x10000000 \
|
||||||
queue size Default.QUEUE_SIZE \
|
queue size Default.QUEUE_SIZE \
|
||||||
stack size Default.STACK_SIZE \
|
stack size Default.STACK_SIZE \
|
||||||
priority 140
|
priority 47
|
||||||
|
|
||||||
instance rateGroup1Comp: Svc.ActiveRateGroup base id 0x10001000 \
|
instance rateGroup1Comp: Svc.ActiveRateGroup base id 0x10001000 \
|
||||||
queue size Default.QUEUE_SIZE \
|
queue size Default.QUEUE_SIZE \
|
||||||
stack size Default.STACK_SIZE \
|
stack size Default.STACK_SIZE \
|
||||||
priority 120
|
priority 43
|
||||||
|
|
||||||
instance rateGroup2Comp: Svc.ActiveRateGroup base id 0x10002000 \
|
instance rateGroup2Comp: Svc.ActiveRateGroup base id 0x10002000 \
|
||||||
queue size Default.QUEUE_SIZE \
|
queue size Default.QUEUE_SIZE \
|
||||||
stack size Default.STACK_SIZE \
|
stack size Default.STACK_SIZE \
|
||||||
priority 119
|
priority 42
|
||||||
|
|
||||||
instance rateGroup3Comp: Svc.ActiveRateGroup base id 0x10003000 \
|
instance rateGroup3Comp: Svc.ActiveRateGroup base id 0x10003000 \
|
||||||
queue size Default.QUEUE_SIZE \
|
queue size Default.QUEUE_SIZE \
|
||||||
stack size Default.STACK_SIZE \
|
stack size Default.STACK_SIZE \
|
||||||
priority 118
|
priority 41
|
||||||
|
|
||||||
instance pingRcvr: Ref.PingReceiver base id 0x10004000 \
|
instance pingRcvr: Ref.PingReceiver base id 0x10004000 \
|
||||||
queue size Default.QUEUE_SIZE \
|
queue size Default.QUEUE_SIZE \
|
||||||
stack size Default.STACK_SIZE \
|
stack size Default.STACK_SIZE \
|
||||||
priority 100
|
priority 23
|
||||||
|
|
||||||
instance typeDemo: Ref.TypeDemo base id 0x10005000
|
instance typeDemo: Ref.TypeDemo base id 0x10005000
|
||||||
|
|
||||||
instance cmdSeq: Svc.CmdSequencer base id 0x10006000 \
|
instance cmdSeq: Svc.CmdSequencer base id 0x10006000 \
|
||||||
queue size Default.QUEUE_SIZE \
|
queue size Default.QUEUE_SIZE \
|
||||||
stack size Default.STACK_SIZE \
|
stack size Default.STACK_SIZE \
|
||||||
priority 97
|
priority 20
|
||||||
|
|
||||||
instance dpDemo: Ref.DpDemo base id 0x0A10 \
|
instance dpDemo: Ref.DpDemo base id 0x0A10 \
|
||||||
queue size Default.QUEUE_SIZE \
|
queue size Default.QUEUE_SIZE \
|
||||||
stack size Default.STACK_SIZE \
|
stack size Default.STACK_SIZE \
|
||||||
priority 96
|
priority 19
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# Queued component instances
|
# Queued component instances
|
||||||
|
|||||||
@ -17,10 +17,10 @@ module CdhCoreConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module Priorities {
|
module Priorities {
|
||||||
constant cmdDisp = 102
|
constant cmdDisp = 35
|
||||||
constant $health = 101
|
constant $health = 24
|
||||||
constant events = 100
|
constant events = 23
|
||||||
constant tlmSend = 99
|
constant tlmSend = 22
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,8 +13,8 @@ module ComCcsdsConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module Priorities {
|
module Priorities {
|
||||||
constant comQueue = 101
|
constant aggregator = 30
|
||||||
constant aggregator = 100
|
constant comQueue = 29
|
||||||
}
|
}
|
||||||
|
|
||||||
# Queue configuration constants
|
# Queue configuration constants
|
||||||
|
|||||||
@ -11,7 +11,7 @@ module ComFprimeConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module Priorities {
|
module Priorities {
|
||||||
constant comQueue = 101
|
constant comQueue = 29
|
||||||
}
|
}
|
||||||
|
|
||||||
# Queue configuration constants
|
# Queue configuration constants
|
||||||
|
|||||||
@ -9,6 +9,6 @@ module ComLoggerTeeConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module Priorities {
|
module Priorities {
|
||||||
constant comLog = 95
|
constant comLog = 18
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -18,10 +18,10 @@ module DataProductsConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module Priorities {
|
module Priorities {
|
||||||
constant dpCat = 101
|
constant dpCat = 24
|
||||||
constant dpMgr = 100
|
constant dpMgr = 23
|
||||||
constant dpWriter = 99
|
constant dpWriter = 22
|
||||||
constant dpBufferManager = 98
|
constant dpBufferManager = 21
|
||||||
}
|
}
|
||||||
|
|
||||||
# Buffer management constants
|
# Buffer management constants
|
||||||
|
|||||||
@ -17,10 +17,10 @@ module FileHandlingConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
module Priorities {
|
module Priorities {
|
||||||
constant fileUplink = 101
|
constant fileUplink = 24
|
||||||
constant fileDownlink = 100
|
constant fileDownlink = 23
|
||||||
constant fileManager = 99
|
constant fileManager = 22
|
||||||
constant prmDb = 98
|
constant prmDb = 21
|
||||||
}
|
}
|
||||||
|
|
||||||
# File downlink configuration constants
|
# File downlink configuration constants
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user