Can't kill hung remote CP copy
Shane
shaned173 at gmail.com
Sat Apr 14 20:30:47 UTC 2012
On 04/14/2012 04:11 PM, Alan Cox wrote:
>> Under what circumstance would killing a waiting process
>> be worse than a process that should have waited,
>> but terminated instead?
> When it leaves the system in an unstable state or where corruption could
> follow. Far better then to leave that process stuck unless things sort
> out.
But, drivers can also be reset. And resetting a driver should, in
theory, reset the hardware. So a system should never be left in an
unstable state. But, what if there are other requests pending of that
same hardware? The only alternative is to invalidate those requests and
issue an I/O error. But the app-handlers should catch these and deal
with them reasonably.
Then there's the question of what could require an infinite amount of
time for a driver to return? How long will a human wait? I can't think
of a request that isn't bounded by some physical time limit except for a
requested sleep alarm. And I can't think of a request that I'm willing
to wait on for 3 days. There really shouldn't be a "wait-forever" state
because that just means "wait until the user powers me off". I think
all states should be bounded. At least bounded from the standpoint of
returning to user-level for further action (either re-invocation of the
wait or exiting). Let the app-layer determine what to do if the lower
level can't do something - the app-layer is free to re-invoke the kernel
request.
Shane
More information about the users
mailing list