[uPatch] Re: Graceful failure?

From: Rik van Riel (riel@conectiva.com.br)
Date: Mon Jun 05 2000 - 11:03:08 EST


On Mon, 5 Jun 2000, Billy Harvey wrote:

> A "make -j" slowly over the course of 5 minutes drives the load
> to about 30. At first the degradation is controlled, with
> sendmail refusing service, but at about 160 process visible in
> top, top quits updating (set a 8 second updates), showing about
> 2 MB swap used. At this point it sounds like the system is
> thrashing.

That probably means you're a lot more in swap now and top
has stopped displaying before you really hit the swap...

> Is this failure process acceptable? I'd think the system should
> react differently to the thrashing, killing off the load
> demanding user process(es), rather than degrading to a point of
> freeze.

Please take into account that the system is quite a bit beyond
where you could take previous kernels ... oh, and the attached
patch should fix the problem somewhat ;)

regards,

Rik

--
The Internet is not a network of computers. It is a network
of people. That is its real strength.

Wanna talk about the kernel? irc.openprojects.net / #kernelnewbies http://www.conectiva.com/ http://www.surriel.com/

--- linux-2.4.0-t1-ac8/include/linux/mm.h.orig Wed May 31 21:00:14 2000 +++ linux-2.4.0-t1-ac8/include/linux/mm.h Sun Jun 4 16:21:31 2000 @@ -202,6 +202,7 @@ #define ClearPageError(page) clear_bit(PG_error, &(page)->flags) #define PageReferenced(page) test_bit(PG_referenced, &(page)->flags) #define SetPageReferenced(page) set_bit(PG_referenced, &(page)->flags) +#define ClearPageReferenced(page) clear_bit(PG_referenced, &(page)->flags) #define PageTestandClearReferenced(page) test_and_clear_bit(PG_referenced, &(page)->flags) #define PageDecrAfter(page) test_bit(PG_decr_after, &(page)->flags) #define SetPageDecrAfter(page) set_bit(PG_decr_after, &(page)->flags) --- linux-2.4.0-t1-ac8/include/linux/swap.h.orig Wed May 31 21:00:06 2000 +++ linux-2.4.0-t1-ac8/include/linux/swap.h Sun Jun 4 16:22:31 2000 @@ -179,6 +179,7 @@ list_add(&(page)->lru, &lru_cache); \ nr_lru_pages++; \ page->age = PG_AGE_START; \ + ClearPageReferenced(page); \ SetPageActive(page); \ spin_unlock(&pagemap_lru_lock); \ } while (0)

- 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 : Wed Jun 07 2000 - 21:00:21 EST