[gugs] kupdate

Manuel A. Fernández Montecelo manuel en sindominio.net
Mie Mar 26 17:44:33 CET 2003


On Qua, 2003-03-26 at 11:18, rx wrote:
> hay cosas que aun no logro entender, son miles de cosas, hay algunas
> muy recurrentes y me obligan a convertirlas en consultar.
> 
> en un servidor que se pasa encendido 24h cada vez que lo visito
> 'fisicamente' leo en su pantalla un mensaje, que se repite mas cuanto
> mas tardo en visitarlo; estoy seguro que no es por celos :-)
> 
> dice asi:
> VM: do_try_to_free_pages failed for kupdate...
> 
> como lo que no entiendo me lo invento he imaginado que 'VM' significa
> memoria virtual y que lo que dice a continuacion es algo asi como:
> intento de liberar paginas de memoria falla para kupdate...

pues me parece que tienes buena imaginación :)


> esta claro que la cosa tiene que ver con el kupdate pero yo no se lo que
> es. He revisado y en la maquina solo me sale como un servicio
> relacionado con la swap y la k evidencia que tambien tendra algo que ver
> con el kernel. En la web hay mucha info pero no logro dar en el clavo y
> seguro que vosotros me podeis sacar de dudas mas rapidamente.

creo que es el sustituto del antiguo daemon updated, que volcaba el
contenido de los buffers a disco cada (default) 5 segundos.

los buffers son importantes, porque permiten a un proceso independencia
del dispositivo: en windoze el PC se congela momentaneamente al acceder
al disquette pej, en linuz puede acabar el proceso al acabar de escribir
en el buffer, y dejar que este gestor escriba realmente a disco después
de que el programa haya acabado. también porque pej en compilaciones
muchos ficheros temporales ni siquiera se llegan a escribir en el disco.
se calcula que en unix se ahorran así el 80% de accesos al disco.

esto apoya lo que digo con respecto a para lo que sirve kupdate, del
fichero 'fs/buffer.c':

        [17:14] <manuel en gada> /usr/src/linux-2.4.20 $ grep -n "kupdate" fs/buffer.c
        
        112:            int interval;   /* jiffies delay between kupdate flushes */
        2871:           /* do_exit directly and let kupdate to do its work alone. */
        2973:int kupdate(void *startup)
        
y esta es la única referencia que encuentro a esa función, en esta
versión del kernel:

        /**
         * kmem_cache_reap - Reclaim memory from caches.
         * @gfp_mask: the type of memory required.
         *
         * Called from do_try_to_free_pages() and __alloc_pages()
         */
        int kmem_cache_reap (int gfp_mask)


supongo que será que necesita liberar memoria pero no puede porque la
utilizada en caché no se puede hacer más pequeña; o quizá sea algún bug
posiblemente de versiones anteriores del kernel, porque ya digo que en
esta 2.4.20 no aparecen referencias a esa función, al menos con el mismo
nombre.


> un*rx

-- 

aburinho!!

________________________________________________________________________
Manuel A. Fernández Montecelo <manuel en sindominio.net>
                                _
Onda do mar de Vigo,           ( )   Nunca mais: Mais nunca!
quê fez o fuel-óleo contigo?    /     http://plataformanuncamais.org/
  E ai Deus, se se irá cedo!   / \     http://burlanegra.vieiros.com/




Más información sobre la lista de distribución Gugs