Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Nov 2002 03:08:07 -0800 (PST)
From:      Poul-Henning Kamp <phk@FreeBSD.org>
To:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/geom geom_io.c
Message-ID:  <200211021108.gA2B87QO020729@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
phk         2002/11/02 03:08:07 PST

  Modified files:
    sys/geom             geom_io.c 
  Log:
  malloc(9) with M_NOWAIT seems to return NULL a lot more than I would have
  expected under -current.  This is a problem for GEOM because the up/down
  threads cannot sleep waiting for memory to become free.  The reason they
  cannot sleep is that paging things out to disk may be the only way we can
  clear up some RAM.  Nice catch-22 there.
  
  Implement a rudimentary ENOMEM recovery strategy:  If an I/O request
  fails with an error code of ENOMEM, schedule it for a retry, and
  tell the down-thread to sleep hz/10 to get other parts of the system
  a chance to free up some memory, in particular the up-path in GEOM.
  
  All caches should probably start to monitor malloc(9) failures using the new
  malloc_last_fail() function, and release when it indicates congestion.
  
  Sponsored by:   DARPA & NAI Labs.
  
  Revision  Changes    Path
  1.19      +14 -0     src/sys/geom/geom_io.c

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200211021108.gA2B87QO020729>