Re: 2.2.16 vm fixes

From: Marcelo Tosatti (marcelo@conectiva.com.br)
Date: Thu Jun 15 2000 - 16:22:03 EST


> With the above change to the free_before_allocate logic _all_ allocations
> will have to first free memory before they're allowed to allocate if
> somebody is blocked freeing memory. This way it can't happen anymore that
> there are 20 tasks all blocked freeing memory and in the meantime somebody

> eats all the free pages they are generating for themself. It can't happen
> because that "somebody" will have first to free the ram for itself before
> it's allowed to eat ram.
Indeed. I assumed try_to_free_pages would return if it find free pages
around. Now your changes makes sense.
My error.

> >Could you please describe your idea which is too intrusive to go into 2.2,
> >please?
>
> Each process unmap pages and free pages putting them in a per-task private
> list, not in the freelist or in the global lru. Then it allocates from the
> private list (if there's no fragemntation issue at least) and then put the
> rest in the freelist. I'm not sure if it worth since I guess the current
> algorithm should do the trick just fine.

Indeed, I think its not needed and adds extra overhead.

2.2.16 is showing problems here with our distro installer on a 64Mb
machine.
I saw lots of "do_try_to_free_pages failed for process XXX" on syslog.
It seems that all processes are trying to swap out stuff agressively but
no one is really being able to progress.
First I thought this behaviour happened because kswapd was being woken up
too late by stock 2.2.16 (because of "(freepages.low + freepages.low) /
2"). I applied the obvious one liner to fix this and the problem still
happens.
Tomorrow I will apply your fix (atomic_read(free_before_allocate) before
checking if nr_free_pages is > freepages.high) and report results.

Ah, one more thing, could you please send me your other VM changes against
2.2.16 ?

Thanks

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Jun 15 2000 - 21:00:36 EST