[coyotos-dev] Hi + some stuff I found researching
Haplo
starfirex at comcast.net
Wed Jul 12 21:21:50 EDT 2006
> 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.
Yes, there's no substitute for doing it right, but in the real world
people really do have deadlines and so they don't have time to write
self-restarting drivers or even produce drivers that aren't going to
crash. Yes, they may eventually revise it until the driver is stable,
but what defense do you have until then? I think they're probably
much more likely to adhere to a simple specification that works to
help them than they are to suddenly start adhering to a strict
personal coding regiment.
Really, the idea is more of a realistic approach than it is an
idealistic one.
More information about the coyotos-dev
mailing list