PCR 1132 (A-1132) - Add filename to image mapping "File not found" video message
Summary: Add filename to image mapping "File not found" video message
Status: ASSIGNED
Alias: A-1132
Product: Kernel
Classification: Deos
Component: Kernel (show other PCRs)
Version: mainline
Hardware: All Deos
: Any Upcoming
: Enhancement
Target Milestone: mainline
Assignee: .Kernel
URL:
Whiteboard:
Depends on:
Blocks: A-16
  Show dependency treegraph
 
Reported: 2003-10-09 00:00 MST by mdiethelm
Modified: 2024-08-30 06:57 MST (History)
2 users (show)

See Also:
Impact Assessment: ---
Organization: DDC-I, Inc.
rroffelsen: Requirements?
rroffelsen: Code?
rroffelsen: TestCases-
rroffelsen: TestProcedures-
rroffelsen: 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:58:41 MST
Users (Dan Henrichs) have expressed a desire to know precisely which file is
missing when Deos is attempting to load an executable into the process address
space.


TRACK Comments:

09/08/2004 14:08:25 - mattd - changed the title of this PCR from "Add filename
to image mapping "file not found" log message" to "Add filename to image
mapping "file not found" *video* message"
09/08/2004 13:11:36 - mattd - User has asked again for this feature.  After
discussion with Ryan, implementation in the DEBUG kernel would be easy, but it's
utility dubious as kernel only gets four truncated lines of video area.  Better
solution would be to give kernel it's own video memory RAM and have new system
video stream server be able to switch views to this memory area, thus giving
potentially large amounts of debugging information for display.  This feature
would require more time to implement, hence it will likely not be able to fit
within Agave's current development schedule.

05/03/2004 14:32:47 - CCBGreen -  SAS classification Enhancement
MD20031009: Recommend this be set to a priority such that it's considered for
inclusion after the current Agave feature set.


PCR moved from Track to bugzilla by Aaron.Larson@Honeywell.com 2005-09-22 16:58
Comment 1 sb 2006-05-04 12:07:55 MST
Update Target Milestone per 3/2006 Deos ADIRU Final EASA audit.
Comment 2 alarson 2006-10-11 08:06:39 MST
I have a proposed alternate strategy.  Add a new event log API
logProcessMessage() and a execution_history_t ID for "string".  Permit
the event log message to span an even multiple of history entries up
to, say 128 total bytes (which is only 32 words).  For applications
that didn't understand the new message type, they would get some
"bogus" messages, but eventually they'd recover.  

This would be useful not only for logging system messages, but also
for user messages as well.

Sadly, the status monitor GUI would break badly.
Comment 3 alarson 2007-01-04 13:53:08 MST
Alternatives discussed with Ryan:

Provide mechanism to log arbitrary strings so they are retrievable
(via status monitor, or sysvstream, or whatever).

  Use log*Event()
   Problem:
     1. No good way to provide variable sized records
     Alternatives:
       A. Increase size of log messages (make user specifiable?)
       B. Add a new kind of event log, with variable sized records.
        Problems (both A & B):
          1. Need to bound critical sections.  (Make user
             specifiable?).
          2. User specifiable length would affect kernel stack
             usage. (must call strncpyFromUserMode() inside a
             critical). 
          3. Backward compatibility (or maybe just lots of things
             would have to change).  Kernel, integ tool, regcheck,
             status monitor, GUI (probably).
       B. Add stringStart/StringEnd events and use multiple log
          messages.
        Problems:
          1. Expensive runtime
          2. Ugly implementation in status monitor.
       

  Use a videostream like SMO and log strings.
    Advantages:
      Might be able to make available early in boot up process.
      Only sysvstream needs updating.
    Problem:
      1. If not trapping to kernel, then interleaving possible.
      2. If trapping to kernel, then need bound critical sections and
         has kernel stack size issue.
      3. If non debug only, then videostream needs to be in kernel.
         Alternative:
           A. Use only strings.
             Problem:
                1. Probably would need ItoA and some minimal other
                   ANSI functions. 
Comment 4 alarson 2008-05-02 13:09:58 MST
One solution often proposed for this is to just update the image mapping code to use the kernel video stream.  One problem with that solution is that the kernel's video stream is in kernel memory, and thus is not writable by the image mapping code which runs in user mode.
Comment 5 deosbugs.ccb 2010-02-03 15:22:16 MST
CCB visited this PCR on 2010-02-03
Comment 6 deosbugs.ccb 2010-02-25 13:35:57 MST
CCB visited this PCR on 2010-02-25.
Comment 7 deosbugs.ccb 2010-03-31 12:11:57 MST
CCB 2 visited this PCR on  2010-03-31
Comment 8 deosbugs.ccb 2010-05-11 15:05:12 MST
CCB visited this PCR on 2010-05-11
Comment 9 deosbugs.ccb 2010-09-30 14:51:10 MST
CCB 2 visited this PCR on 2010-09-30.
Comment 10 deosbugs.ccb 2010-12-17 10:17:07 MST
CCB visited this PCR on 2010-12-17.
Comment 11 deosbugs.ccb 2011-03-07 17:38:47 MST
CCB visited this PCR on 2011-03-07
Comment 12 deosbugs.ccb 2011-04-11 14:37:21 MST
CCB visited this PCR on 2011-04-11
Comment 13 deosbugs.ccb 2011-05-16 15:19:56 MST
CCB2 visited this PCR on 2011-05-16
Comment 14 deosbugs.ccb 2011-08-17 15:10:18 MST
CCB visited this PCR on 2011-08-17
Comment 15 deosbugs.ccb 2011-11-04 15:52:06 MST
CCB 2 visited this PCR on 2011-11-04
Comment 16 deosbugs.ccb 2012-01-31 13:45:03 MST
CCB visited this PCR on 2012-01-31
Comment 17 deosbugs.ccb 2012-05-15 08:39:56 MST
CCB visited this PCR on 2012-05-15
Comment 18 deosbugs.ccb 2012-06-08 13:16:18 MST
CCB 2 visited this PCR on 2012-06-08
Comment 19 deosbugs.ccb 2012-08-24 09:16:23 MST
CCB visited this PCR on 2012-08-24
Comment 20 deosbugs.ccb 2012-09-07 10:38:08 MST
CCB visited this PCR on 2012-09-07
Comment 21 rroffelsen 2012-09-17 16:00:00 MST
CCB visited this PCR on 2012-09-17
Comment 22 deosbugs.ccb 2012-11-19 12:19:17 MST
CCB visited this PCR on 2012-11-19
Comment 23 deosbugs.ccb 2012-11-26 17:45:30 MST
CCB visited this PCR on 2012-11-26
Comment 24 deosbugs.ccb 2013-02-12 21:18:36 MST
CCB visited this PCR on 2013-02-12
Comment 25 deosbugs.ccb 2013-03-18 14:34:58 MST
CCB visited this PCR on 2013-03-18
Comment 26 deosbugs.ccb 2013-05-15 10:11:50 MST
CCB visited this PCR on 2013-05-15
Comment 27 deosbugs.ccb 2013-07-19 11:25:40 MST
CCB visited this PCR on 2013-07-19
Comment 28 deosbugs.ccb 2013-11-15 17:39:56 MST
CCB visited this PCR on 2013-11-15
Comment 29 deosbugs.ccb 2014-05-20 10:13:49 MST
CCB 2 visited this PCR on 2014-05-20
Comment 30 deosbugs.ccb 2014-07-14 15:11:32 MST
CCB visited this PCR on 2014-07-14
Comment 31 deosbugs.ccb 2014-11-11 13:16:29 MST
CCB 2 visited this PCR on 2014-11-11
Comment 32 deosbugs.ccb 2014-11-17 08:57:38 MST
CCB visited this PCR on 2014-11-17
Comment 33 deosbugs.ccb 2016-04-18 12:56:12 MST
CCB visited this PCR on 2016-04-18
Comment 34 deosbugs.ccb 2016-06-20 13:09:06 MST
CCB visited this PCR on 2016-06-20
Comment 35 deosbugs.ccb 2017-02-01 09:39:25 MST
CCB visited this PCR on 2017-02-01-59501
Comment 36 alarson 2017-02-02 16:18:44 MST
(In reply to alarson from comment #3)
> ...
>        B. Add stringStart/StringEnd events and use multiple log
>           messages.
>         Problems:
>           1. Expensive runtime
>           2. Ugly implementation in status monitor.

I'm warming to "B".  A slight variation would be to have a new event
type binary_data and new API:


  logProcessEventData(void *data, size_t size)
    for each word "i" of data
      1. System::processHistory()->logEvent(binary_data, data[i]).

Since MAX_KERNEL_FILE_NAME_LENGTH is 32 bytes, this is only 8 event
log entries for the "file not found" file name.

Note that "process" in logProcessEvent() means "system wide event log
for process creation/deletion".  This means that the thread handle
logging the binary data would be unavailable unless we combine the
thread handle's index with the exception id, or the core index.
Having the thread handle of the thread logging a process event would
be a good enhancement either way.

Adding a similar capability to the system event log (i.e., the
"scheduler" log) would be harder because it has 3 word entries, so I'm
proposing we NOT add a logSystemEventData(), or if we did, we'd expand
the log to four words.

The image code would change from:

  logProcessEvent(no_such_partition);

to:

  logProcessEvent(no_such_partition);
  logProcessEventData(filename, strlen(filename);
Comment 37 deosbugs.ccb 2017-06-28 13:02:21 MST
CCB visited this PCR on 2017-06-28-69227
Comment 38 deosbugs.ccb 2017-07-06 11:08:11 MST
CCB visited this PCR on 2017-07-06-58325
Comment 39 deosbugs.ccb 2021-03-26 09:38:07 MST
CCB visited this PCR on 2021-03-26-57787
Comment 40 deosbugs.ccb 2021-04-05 09:54:59 MST
CCB visited this PCR on 2021-04-05-59141
Comment 41 deosbugs.ccb 2023-08-14 11:07:25 MST
CCB visited this PCR on 2023-08-14-64795
Comment 42 deosbugs.ccb 2023-08-14 11:36:53 MST
This is a desired feature that should be included in an upcoming release if time allows.  It is being taken off of HOLD for consideration for Kismet.
Comment 43 deosbugs.ccb 2024-08-30 06:57:57 MST
CCB visited this PCR on 2024-08-30-49739