[ trimmed cc to just -devel list] On Thu, Mar 17, 2005 at 08:49:38PM +0100, Blaisorblade wrote: > Paul Warren said that there is a leak in 2.4 UML related to hostfs stuff.. > and > I already saw this message from some 2.4 recent UMLs. I hope Paul Warren can > explain what he saw and help us... > > In case we have confirmation it's hostfs-related, we only need to go back to > the stable 2.4.24-1um hostfs code (i.e. pre-humfs), as I already do in the > 2.4-bs tree.
OK, our setup is that we have a load of distribution mirrors that are NFS mounted onto the host server. The guests then mount these using hostfs. We first noticed that a nightly updatedb was causing the amount of memory that could be malloced to decrease. We found that doing a "find" across the entire hostfs mount also did the trick. I've attached the script and program that we used to meause the maximum amount of memory that can be malloced. We then ran: while : ; do ./maxalloc ; updatedb ; done ... and watched the memory leak away. Please let me know if you want some more info. Paul
#!/bin/sh hi=64 lo=1 while [ $[ $hi - $lo ] -gt 1 ] ; do mid=$[ ($hi + $lo) / 2 ] echo -n "trying $mid MB..." if /tmp/alloc $[ $mid * 1024 * 1024 ] ; then lo=$mid echo "OK" else hi=$mid fi echo "$lo $hi $[ $hi - $lo ]" done echo $hi MB
#include <sys/types.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char *argv[]) { size_t amt; char *a, *p; if (argv[1]) amt = (size_t)atoi(argv[1]); else amt = 1024 * 1024; if (!(a = malloc(amt))) { fprintf(stderr, "failed to malloc %u bytes\n", amt); return 1; } for (p = a; p < a + amt; ++p) *p = (char)p; return 0; }