Comments (11)
Imported from trac issue 28. Created by jphickey on 2015-03-18T12:45:46, last modified: 2015-11-20T16:22:16
from osal.
Trac comment by jphickey on 2015-03-18 13:28:18:
== Additional issue: Realtime signals ==
In the same realm of signal blocking/unblocking - Linux provides several realtime signals for general purpose use by RT applications. These will never be generated by the kernel and will only be sent to a process if explicitly requested by the user or sent from another process via "kill".
The problem is: the global "unblock" which is done after OS_Application_Startup() also unblocks these RT signals from the main thread. This prevents the intended use of these signals if the OSAL/BSP/application had actually designated a thread to receive these signals.
To allow application use of these "RT" signals, they should be blocked by default for all threads including the main thread, so that the implementation is free to unblock them in a secondary thread if desired.
It is OK to leave these blocked in all threads if nothing uses them - they are not delivered unless asked for.
from osal.
Trac comment by jphickey on 2015-03-18 23:18:29:
This is ready for review, and a relatively straightforward fix.
Branch "trac-28-fix_linux_signal_blocking", commit [changeset:85f586b]
This simply unblocks the hardware-generated signals all the time, and blocks the RT signals all the time so the user-created threads can use them.
from osal.
Trac comment by jphickey on 2015-04-08 17:13:16:
Setting back to in_work, as I found a problem with the signal blocking as done here when running with the posix OS timers; these are now using RT signals rather than SIGALRM as had been done in a prior OSAL version.
from osal.
Trac comment by jphickey on 2015-04-14 13:10:38:
The timer issue described earlier is actually resolved as part of Trac #40 -- see commit [changeset:ad447ab] for the specific fix for this.
This commit has been rebased to the (unapproved) 2015-04-14 baseline which includes the above changeset. With this baseline, all unit tests PASS as they should.
The new commit for review is [changeset:bd89ab0]
In addition to unblocking the signals described in the ticket summary, this also moves the unblocking logic from the BSP and into OS_API_Init(). The signal masking requirements in this case are dictated by the operating system, not the specific board. Putting the code here has the benefit of catching all users; masking does not need to be duplicated in pc-linux, pc-cygwin, mac-osx, or the cFS PSP, and they will all be consistent.
from osal.
Trac comment by glimes on 2015-05-18 20:24:58:
Recommend accept, based on commit [changeset:ef0726a].
from osal.
Trac comment by sduran on 2015-06-01 12:09:26:
Recommend accept. Will need to make the same changes made in bsp/pc-linux/src/bsp_start.c, in the pc-linux PSP cfe_psp_start.c file.
from osal.
Trac comment by acudmore on 2015-06-01 13:58:50:
Recommend accept.
from osal.
Trac comment by jphickey on 2015-06-16 16:45:39:
== CHANGE SET HAS BEEN REBASED ==
To allow this change set to move forward I have rebased it to the latest {{{development}}} branch that was just approved during the 2015-06-16 CCB meeting.
Reviews should be based on commit [changeset:3e05c66]
The prior commit (in [comment:7]) is based off a merge that included #40 but this is still in a state of flux. Please disregard prior commit IDs listed in this thread. Note that the //content// is identical between these commits, the only change is where it lies within the git history.
from osal.
Trac comment by jwilmot on 2015-06-30 11:26:21:
Recommend accept
from osal.
Trac comment by glimes on 2015-06-30 14:40:55:
CCB approved.
from osal.
Related Issues (20)
- Update Versioning System
- Add RTEMS console and timebase task names
- Timebase and console internal tasks don't support OS event handler concept, default flags or other osal task behavior
- Add appendix in user's guide to detail Manual Inspection steps of functional testing
- Streamline Manual Inspection Required (MIR) steps in unit + functional tests
- Add default build/install scripts for regular and test builds.
- Stack size on POSIX needs to account for internal TCB+TLS
- RTEMS `OS_BinSemTimedWait_Impl` and `OS_CountSemTimedWait_Impl` return incorrect status HOT 3
- OS_FileSysAddFixedMap should use the virtual vs physical path name
- OS_GetErrorName Seg Faults HOT 2
- SemGetInfo partial success cases
- Reinstate RTEMS 4.11 build
- count-sem-test, bin-sem-test intermittently fail on POSIX as non-root user HOT 3
- Add generic RTEMS tar file system support HOT 2
- POSIX implementation does not adhere to user-specified stack pointer
- Softsleep is no longer used
- Update OS_TimedRead and OS_TimedWrite to support sub-millisecond timeout resolution
- Static analysis issues JSC 2.1
- Shared workflow scripts need updates for node.js version 20
- Many compilation warnings when compiling under lp64 data model with -Wconversion option HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from osal.