PCR 913 (A-913) - Enable threads to raiseExceptionToOtherThread() and raiseInterrupt()
Summary: Enable threads to raiseExceptionToOtherThread() and raiseInterrupt()
Status: ASSIGNED
Alias: A-913
Product: Kernel
Classification: Deos
Component: Kernel (show other PCRs)
Version: mainline
Hardware: All Deos
: Any Upcoming
: Enhancement
Target Milestone: mainline
Assignee: .Kernel
URL:
Whiteboard:
: 4101 (view as PCR list)
Depends on:
Blocks:
 
Reported: 2003-02-10 00:00 MST by bcronk
Modified: 2024-08-30 06:55 MST (History)
3 users (show)

See Also:
Impact Assessment: ---
Organization: DDC-I, Inc.
bcronk: Requirements? (bcronk)
alarson: Code?
alarson: TestCases?
alarson: TestProcedures?
deosbugs.ccb: Other-


Attachments

Note You need to log in before you can comment on or make changes to this PCR.
Description alarson 2005-09-22 16:56:38 MST
- Add the capability for a thread to raise an exception to a thread in a
separate process (i.e. add the ability for a process to grant "raise exception
privilege" to another process).

- Add the service for a thread to "raise an interrupt", thus causing immediate
scheduling activity (as opposed to raising an exception).


TRACK Comments:

MD20030831: Defer until after Agave certification.  SAS classification -
Enhancement

BC: 20030721: The original requestor of these features where SHARP Component
author considering the creation of a new Transport Layer (i.e. something in
addition to MTL).  While the creation of a new Transport Layer is currently not
being purposed, it was felt that these features were generally useful and should
be considered for inclusion in the Kernel.

CCB20030220: CCB requests author state which external customer has requested
this feature (if there is one).


PCR moved from Track to bugzilla by Aaron.Larson@Honeywell.com 2005-09-22 16:56
Comment 1 alarson 2006-03-03 09:12:58 MST
Elliott.Rachlin@Honeywell.com raised an interesting scenario today that
highlights the need for, at least, one of the services proposed in
this PCR, and has funding to help make it happen.

    The Epic group would like to run various high rate control
    applications at a rate faster than the periodic rate that can
    usefully be assigned on their platform due to Deos overhead
    "taxes".  It turns out that the design naturally is partitioned so
    that a high rate ISR will respond to an interrupt, and that a
    small number of other threads (likely in other processes) *might*
    need to subsequently perform further action, and these threads
    have the same low latency response requirements as the original
    ISR.

Currently there is no means in Deos where a thread can both elevate
its priority above periodic rate, and wait with access to its fixed
budget, other than waitForNextInterrupt().

Using either the "send an exception to thread in other process" (to
abort an interrupt wait) or the "raise interrupt" mechanisms proposed
by this PCR would enable the Epic requested operation, although the
"raise interrupt" proposal seems the cleanest for this particular
application.


Elliott has a work around (using high priority slack consumers) for his
proof of concept.  Current best guess is he would need a prototype
implementation for a demonstration approximately EOY 2006.

Random Implementation Notes:
----------------------------

I can't think of any scheduling or time partitioning issues for "raise
interrupt".  Presumably the time to raise the interrupt would be
charged to the calling thread, and since interrupts are asynchronous,
there would be no special issues on the handler's part.

It is also worth noting that prior to the Agave slack optimizations,
this approach would be highly expensive since any not used ISR budgets
would be allocated to IDLE rather than slack.

Clearly there would have to be access control specified on the event's
part.  This certainly would have been cleaner if interrupts were a
kind of event.
Comment 2 mdiethelm 2006-03-06 13:26:24 MST
Assuming a worst case scenario where we will only be able to perform this work if it is customer funded, CCB will likely want an estimate to complete this change in terms of person-months of effort.  One should include all steps up to and including publishing the SAS.  CCB would also need to know how much funding has been set aside by the customer to pay, and when in '07 the certification work is to be complete.  
Comment 3 alarson 2006-03-17 09:54:37 MST
I spoke with Elliott about this feature request PCR.  For 2006
they can use a non certified release.  My guestimate is that the total
cost to develop and certify this feature is 5-10 months of effort
(which I believe to be conservative).  For a non certified version,
we're probably talking 4-6 weeks (implement, document, and informal
test), which Elliott said they had some funding this year to cover.
If the project is approved, we'd negotiate for the remaining balance
for 2007.
Comment 4 rroffelsen 2006-03-17 13:13:46 MST
I had a thought, what if instead of adding a raise interrupt to other thread we added an additional resource wait type that had interrupt characteristics? (i.e. the waiter was woken immediately and allowed to run if it had fixed budget left.)  This could happen arbitrarily close to the threads period boundary so they would have to deal with the fact that it did not gets it's full budget but the same is true for an ISR thread.  This type a feature would allow threads at any rate to become aperiodic.  This is just an off the wall idea I had.  It defiantly has limitations (for one schedule before threads could not do it).  Before we could implement it we would need to some deep analysis of RMA and Deos's implementation of it.  One thing I think that we would need to push on is why ISR threads must be tick rate.
Comment 5 sb 2006-05-04 12:07:44 MST
Update Target Milestone per 3/2006 Deos ADIRU Final EASA audit.
Comment 6 rroffelsen 2007-01-30 14:54:55 MST
*** Bug 4101 has been marked as a duplicate of this bug. ***
Comment 7 alarson 2007-11-13 14:24:29 MST
I concur with comment #4.  It seems like a very good idea.  If we did that, then it also seems like having a sub-period timer would be very handy.  Basically the ability for a long period thread to wait several MS without needing to suspend for a whole period.  Seems to be poor fit for periodics, but it might make more sense for aperiodics.
Comment 8 deosbugs.ccb 2010-02-03 15:22:10 MST
CCB visited this PCR on 2010-02-03
Comment 9 deosbugs.ccb 2010-02-25 13:35:52 MST
CCB visited this PCR on 2010-02-25.
Comment 10 deosbugs.ccb 2010-03-31 12:11:52 MST
CCB 2 visited this PCR on  2010-03-31
Comment 11 deosbugs.ccb 2010-05-11 15:05:08 MST
CCB visited this PCR on 2010-05-11
Comment 12 deosbugs.ccb 2010-09-30 14:51:05 MST
CCB 2 visited this PCR on 2010-09-30.
Comment 13 deosbugs.ccb 2010-12-17 10:17:03 MST
CCB visited this PCR on 2010-12-17.
Comment 14 deosbugs.ccb 2011-03-07 17:38:43 MST
CCB visited this PCR on 2011-03-07
Comment 15 deosbugs.ccb 2011-04-11 14:37:17 MST
CCB visited this PCR on 2011-04-11
Comment 16 deosbugs.ccb 2011-05-16 15:19:52 MST
CCB2 visited this PCR on 2011-05-16
Comment 17 deosbugs.ccb 2011-08-17 15:10:14 MST
CCB visited this PCR on 2011-08-17
Comment 18 deosbugs.ccb 2011-11-04 15:52:03 MST
CCB 2 visited this PCR on 2011-11-04
Comment 19 deosbugs.ccb 2012-01-31 13:44:59 MST
CCB visited this PCR on 2012-01-31
Comment 20 deosbugs.ccb 2012-05-15 08:39:51 MST
CCB visited this PCR on 2012-05-15
Comment 21 deosbugs.ccb 2012-06-08 13:16:12 MST
CCB 2 visited this PCR on 2012-06-08
Comment 22 deosbugs.ccb 2012-08-24 09:16:56 MST
CCB visited this PCR on 2012-08-24
Comment 23 deosbugs.ccb 2012-09-07 10:38:04 MST
CCB visited this PCR on 2012-09-07
Comment 24 rroffelsen 2012-09-17 15:59:56 MST
CCB visited this PCR on 2012-09-17
Comment 25 deosbugs.ccb 2012-11-19 12:19:13 MST
CCB visited this PCR on 2012-11-19
Comment 26 deosbugs.ccb 2012-11-26 17:45:25 MST
CCB visited this PCR on 2012-11-26
Comment 27 deosbugs.ccb 2013-02-12 21:18:36 MST
CCB visited this PCR on 2013-02-12
Comment 28 deosbugs.ccb 2013-03-18 14:34:54 MST
CCB visited this PCR on 2013-03-18
Comment 29 deosbugs.ccb 2013-05-15 10:11:46 MST
CCB visited this PCR on 2013-05-15
Comment 30 deosbugs.ccb 2013-07-19 11:25:37 MST
CCB visited this PCR on 2013-07-19
Comment 31 deosbugs.ccb 2013-11-15 17:39:52 MST
CCB visited this PCR on 2013-11-15
Comment 32 deosbugs.ccb 2014-05-20 10:13:45 MST
CCB 2 visited this PCR on 2014-05-20
Comment 33 deosbugs.ccb 2014-07-14 15:11:28 MST
CCB visited this PCR on 2014-07-14
Comment 34 deosbugs.ccb 2014-11-11 13:16:24 MST
CCB 2 visited this PCR on 2014-11-11
Comment 35 deosbugs.ccb 2014-11-17 08:57:34 MST
CCB visited this PCR on 2014-11-17
Comment 36 deosbugs.ccb 2016-04-18 12:56:09 MST
CCB visited this PCR on 2016-04-18
Comment 37 deosbugs.ccb 2016-06-20 13:09:02 MST
CCB visited this PCR on 2016-06-20
Comment 38 deosbugs.ccb 2017-02-01 09:35:56 MST
CCB visited this PCR on 2017-02-01-59501
Comment 39 deosbugs.ccb 2017-06-28 12:59:15 MST
CCB visited this PCR on 2017-06-28-69227
Comment 40 deosbugs.ccb 2017-07-06 11:05:34 MST
CCB visited this PCR on 2017-07-06-58325
Comment 41 deosbugs.ccb 2018-03-06 13:09:38 MST
CCB visited this PCR on 2018-03-06-71236
Comment 42 deosbugs.ccb 2021-03-26 09:33:42 MST
CCB visited this PCR on 2021-03-26-57787
Comment 43 deosbugs.ccb 2021-04-05 09:51:17 MST
CCB visited this PCR on 2021-04-05-59141
Comment 44 deosbugs.ccb 2023-08-14 11:04:34 MST
CCB visited this PCR on 2023-08-14-64795
Comment 45 deosbugs.ccb 2023-08-14 11:29:26 MST
This PCR will be required for supporting 653 and posix once the scheduler is updated.  It is being taken off of HOLD for consideration for Kismet.
Comment 46 deosbugs.ccb 2024-04-04 13:19:15 MST
CCB visited this PCR on 2024-04-04-71881
Comment 47 deosbugs.ccb 2024-08-30 06:55:30 MST
CCB visited this PCR on 2024-08-30-49739