Low-space signals in production environments
tim Rowledge
tim at rowledge.org
Sun Feb 11 20:42:27 UTC 2007
On 11-Feb-07, at 12:15 PM, Andreas Raab wrote:
> David T. Lewis wrote:
>> On Sun, Feb 11, 2007 at 02:08:29AM -0800, Andreas Raab wrote:
>>> In particular considering that the lowspace semaphore can't
>>> really do anything because it doesn't even know which process got
>>> interrupted!
>> Does your image have the fix from Mantis 1041?
>
> No, but that doesn't really matter. My point was that a low-
> priority process has no chance to ever interrupt a higher-priority
> process. And I doubt your fix changes that.
No, it simply does a somewhat better job of guessing which process
might be the problem.
We could, as I'm pretty sure we have discussed, find some way to
include the oop of the process that caused the allocation problem in
the semaphore more directly, which would improve things a touch more
by avoiding the possibility of race conditions. The real problem with
identifying the *actually* problematic process is that the allocation
request that triggers a lowspace may well not be part of the actual
space hog. Suspending the wrong process and letting others -
including maybe the monster - simply leads to more trouble.
If the lowspace handler suspended all other processes it would
obviate some of the problems. If we wanted to interact with users as
part of the handler we might have to permit some other process to
start or resume, perhaps under some restrictions. If simply doing a
gc solved the space problem then we could simply allow everything
else to resume. And we should remove direct in-vm calls to gc
wherever possible so that in-image code can apply more flexible
policies.
Having a very high priority process to handle low space conditions
seems like a plausible idea to me.
tim
--
tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
A bug in the code is worth two in the documentation.
More information about the Squeak-dev
mailing list
|