Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.arch.embedded > #30762
| From | Don Y <blockedofcourse@foo.invalid> |
|---|---|
| Newsgroups | comp.arch.embedded |
| Subject | Re: Stack analysis tool that really work? |
| Date | 2021-08-05 04:54 -0700 |
| Organization | A noiseless patient Spider |
| Message-ID | <segjih$e76$1@dont-email.me> (permalink) |
| References | (2 earlier) <seb3fa$82q$1@dont-email.me> <sed0s0$ehl$1@dont-email.me> <see91v$uiq$1@dont-email.me> <seekur$l16$1@dont-email.me> <in1nknFamrvU1@mid.individual.net> |
On 8/5/2021 2:00 AM, Niklas Holsti wrote: > On 2021-08-04 21:06, Don Y wrote: >>> This is the dynamic approach, I was exploring the static approach. >> >> My point is that you still have to perform tests that exercise every path >> through your code. > > That (full path coverage) is almost never done, because it is exponential in > the number of branches. It's impractical for a "whole program" but is relatively easy to accomplish for tasks designed to be small and single-focus. A solution that is implemented in this sort of "decomposed" manner is easier to analyze whereas something "monolithic" is hard to (later) "chop up" to yield testable SMALLER/simpler pieces. > In case the sizes of local variables depend on input data, it may be very hard > to find the input values that lead to the actual worst-case stack-usage path. > Safe upper bounds are easier to find by analysis. > >> What's available is what SOMEONE decided they wanted to develop *and* >> offer up to others. You typically have fewer choices for "free" than >> "for pay". Developing any tool (and maintaining it -- or, providing enough >> information that OTHERS can maintain it without you) isn't a trivial job. > > My experience is that rather few developers favour the static-analysis approach > to resource analysis -- most just instrument and test. There are a few > application domains that require better guarantees -- aerospace, automotive, > nuclear -- and they are also prepared to pay (a bit) for the tools. However, > tools for such domains usually need some kind of formal qualification or > certification, which can be expensive. Ditto medical/pharma/gamiing. In addition to tool qualification, there are also *process* qualification issues. This tends to reduce the number of variants/releases of a "product" as each release requires running through the validation effort, again. [And, a release begs the question: "Do you mean there were things that DID NOT WORK in the prior release? If so, then how comprehensive was the previous validation effort??? Assure me that your process isn't inherently flawed..."] The fact that this effort exists (is required) means you will spend money to lessen it's cost AND increase the apparent integrity of your process to customers/agencies. Esp as you will be doing this repeatedly (for this product or others). Imagine having to *manually* repeat the entire effort from the previous release PLUS the changes brought about by the new release... for EVERY successive release! [No, you can't just *claim* that all of the stuff you validated before STILL WORKS!] > Also, while static analysis is still possible for stack usage, it is becoming > impossible for WCET, because of the complex, dynamic architecture of current > high-end embedded processors (out-of-order execution, complex caches, > multi-core with shared-resource conflicts, and so on and on). The field seems > to be moving towards hybrid analysis methods that combine measured execution > times with static flow analys, for example the tools from Rapita > (https://www.rapitasystems.com/). I've taken a different approach on my current (real-time) project: assume any task can fail to meet it's deadlines and provide mechanisms to handle those overruns. (a "hard" real-time task has a very simple deadline handler: kill the task! :> ) But, that's because the resource load (and resource complement) is not known a priori so you can't make *any* guarantees.
Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Stack analysis tool that really work? pozz <pozzugno@gmail.com> - 2021-07-29 18:22 +0200
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-07-29 19:36 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-02 17:56 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-03 11:43 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-03 02:28 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-04 22:14 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-04 15:43 -0700
Re: Stack analysis tool that really work? pozz <pozzugno@gmail.com> - 2021-08-03 11:49 +0200
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-03 20:17 -0700
Re: Stack analysis tool that really work? pozz <pozzugno@gmail.com> - 2021-08-04 16:43 +0200
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-04 11:06 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-05 12:00 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-05 04:54 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-04 20:00 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-04 10:50 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-04 21:50 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-04 15:46 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-05 13:43 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-05 06:16 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-05 18:39 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-06 01:09 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-06 22:58 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-06 16:04 -0700
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-06 16:06 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-07 14:20 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-07 10:26 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-07 20:46 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-07 15:14 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-07 14:09 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-07 08:09 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-07 19:50 +0300
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-07 20:02 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-07 10:34 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-07 21:10 +0300
Re: Stack analysis tool that really work? George Neuner <gneuner2@comcast.net> - 2021-08-06 22:55 -0400
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-07 13:40 +0300
Re: Stack analysis tool that really work? George Neuner <gneuner2@comcast.net> - 2021-08-08 18:34 -0400
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-09 10:50 +0300
Re: Stack analysis tool that really work? Paul Rubin <no.email@nospam.invalid> - 2021-08-09 11:26 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-09 22:59 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-09 12:04 -0700
Re: Stack analysis tool that really work? Niklas Holsti <niklas.holsti@tidorum.invalid> - 2021-08-05 13:18 +0300
Re: Stack analysis tool that really work? Don Y <blockedofcourse@foo.invalid> - 2021-08-05 04:59 -0700
csiph-web