[coyotos-dev] Hi + some stuff I found researching
Valerio Bellizzomi
devbox at selnet.org
Thu Jul 20 13:41:49 EDT 2006
On 12/07/2006, at 21.21, Haplo wrote:
>> Yes. And I don't really want to discourage you. I think that the right
>> response here is: let's get something that works and then see if (a)
>> there are places where this type of technique would make sense and (b)
>> the risk of introducing it is acceptable.
>
>Indeed, I like to call that "the development process". If I come up
>with or come across anything that might be useful in the future I'll
>be sure to mention it. Even if only one in ten actually turns out to
>be viable it's still a good possibility for improvement. I can only
>do what my ability permits, but at least I'm bouncing it off people
>who are both knowledgeable and willing to listen. That's far better
>than leaving it speculative or wrong on my own and then end up not
>having anything good I find ever put to use.
>
>> Sure, but that wasn't my point. We have a commit rule on the Coyotos
>> code base that is carried forward from EROS: code doesn't go in to the
>> main tree unless the person making the commit is willing to bet their
>> life on it being right.
>>
>> We fail, of course, but it helps explain what the level of confidence
>> needs to be. Coyotos actually *is* about to go into surgical
>> instruments, so it's not just a joke.
>
>Which is a truly good way to go about programming in any case. My
>point, however, was that coyotos isn't necessarily limited to that,
>though. For example, one of your goals is to have it scale to large
>SMP systems. This has nothing to do with a medical usage which is
>likely limited to one single core chip. As long as something that
>gives improvement elsewhere doesn't incur problems for the more
>critical applications, it shouldn't be a problem. However, my lack of
>general knowledge in the field is something you'll have to help with.
>As I'm not to familiar with the specifics, very often I might not be
>able to see such relationships.
>
>> A separate layer isn't needed, this can be done inside the driver
>> without
>> introducing a new layer in the system. With a correctly engineered
>> pre-test
>> cycle, the driver can be slower but it gains robustness.
>> One more reason to avoid drivers written in haste to meet the time
>> schedule. There is nothing better than testing and verifying by hand.
>>
>> val
>
>I suppose so, but if all drivers did that wouldn't it mean a lot of
>redundancy in the system? Drivers would be less efficient than the
>kernel+restart layer in detecting their own crashes, and you'd end up
>with the same code in a lot of drivers and slow them down. The
>healing layer wouldn't require direct observation or even need to run
>during normal operation, so no performance penalty at all. The only
>time it would be run is when invoked by the kernel when hangs are
>detected. You'd still need an alternate driver specification for them
>to be able to respond to the restart layer, but that would require
>much less work than encapsulating every driver individually.
Two points are unclear to me:
1. It would end up with the main driver specification plus the alternate
specification, which requires more work for verification.
2. The healing layer is invoked by the kernel in a critical zone. There is
no performance penalty during the normal run, but there should be a
performance penalty exactly when you are in the critical zone.
val
More information about the coyotos-dev
mailing list