Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Should not use OS_GetLocalTime() for PSP timebase #266

Closed
jphickey opened this issue Mar 12, 2021 · 0 comments · Fixed by #285 or #289
Closed

Should not use OS_GetLocalTime() for PSP timebase #266

jphickey opened this issue Mar 12, 2021 · 0 comments · Fixed by #285 or #289
Assignees
Labels
enhancement New feature or request

Comments

@jphickey
Copy link
Contributor

Is your feature request related to a problem? Please describe.
The PSP timebase (returned via CFE_PSP_Get_Timebase()) is used by CFE performance monitoring and it is important that this time is stable and does not get reset.

But depending on the implementation of OSAL, it may be possible to reset/change the OSAL "local time". At least there is an OS_SetLocalTime() function defined - whether it works or not depends on what kernel resource was used to implement this.

Describe the solution you'd like
On pc-linux and other POSIX-like systems this should use clock_gettime() with CLOCK_MONOTONIC directly, instead of calling OSAL.

Furthermore this function can be split into a separate module and therefore used on any system that provides clock_gettime()

Additional context
See nasa/osal#844 - OS_GetLocalTime() may be redefined/clarified to indeed refer to "real" time, which would make it less suitable for this purpose used here.

Requester Info
Joseph Hickey, Vantage Systems, Inc.

@jphickey jphickey self-assigned this Mar 12, 2021
@jphickey jphickey added the enhancement New feature or request label Mar 12, 2021
jphickey added a commit to jphickey/PSP that referenced this issue Mar 30, 2021
Clarifies the use case for CFE_PSP_GetTime and CFE_PSP_GetTimeBase.

Moves the implementation of these to separate PSP modules, so MCP750
on VxWorks can use the optimized vxTimeBaseGet() routine while
Linux and RTEMS can use the generic posix CLOCK_MONOTONIC.
jphickey added a commit to jphickey/PSP that referenced this issue Mar 30, 2021
Clarifies the use case for CFE_PSP_GetTime and CFE_PSP_GetTimeBase.

Moves the implementation of these to separate PSP modules, so MCP750
on VxWorks can use the optimized vxTimeBaseGet() routine while
Linux and RTEMS can use the generic posix CLOCK_MONOTONIC.
jphickey added a commit to jphickey/PSP that referenced this issue Mar 30, 2021
Clarifies the use case for CFE_PSP_GetTime and CFE_PSP_GetTimeBase.

Moves the implementation of these to separate PSP modules, so MCP750
on VxWorks can use the optimized vxTimeBaseGet() routine while
Linux and RTEMS can use the generic posix CLOCK_MONOTONIC.
jphickey added a commit to jphickey/PSP that referenced this issue Mar 30, 2021
Clarifies the use case for CFE_PSP_GetTime and CFE_PSP_GetTimeBase.

Moves the implementation of these to separate PSP modules, so MCP750
on VxWorks can use the optimized vxTimeBaseGet() routine while
Linux and RTEMS can use the generic posix CLOCK_MONOTONIC.
jphickey added a commit to jphickey/PSP that referenced this issue Mar 31, 2021
Clarifies the use case for CFE_PSP_GetTime and CFE_PSP_GetTimeBase.

Moves the implementation of these to separate PSP modules, so MCP750
on VxWorks can use the optimized vxTimeBaseGet() routine while
Linux and RTEMS can use the generic posix CLOCK_MONOTONIC.
jphickey added a commit that referenced this issue Apr 7, 2021
Clarifies the use case for CFE_PSP_GetTime and CFE_PSP_GetTimeBase.

Moves the implementation of these to separate PSP modules, so MCP750
on VxWorks can use the optimized vxTimeBaseGet() routine while
Linux and RTEMS can use the generic posix CLOCK_MONOTONIC.
jphickey added a commit that referenced this issue Apr 7, 2021
Fix #266, psp module to implement timebase
jphickey added a commit that referenced this issue Apr 7, 2021
Fix #266, psp module to implement timebase
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
1 participant