From: Jesper S. <js...@re...> - 2000-08-16 14:09:24
|
>>>>> "NIIBE" == NIIBE Yutaka <gn...@ch...> writes: NIIBE> Stuart Menefy wrote: >> I've been looking at an odd problem for the last few days, and not >> getting anywhere fast, so I was just wondering if anybody else has >> seen something similar. NIIBE> I don't see IDE problem. I've been tracking cache problem NIIBE> these days. I don't know if it's related or not. After updating to the -test6 changes, I also see a couple of interesting problems. Your cache patches do not seem to make a change. I haven't looked at the changes in detail to figure out what is wrong. I've spent most of the day tracking the bad code. So this is basically a FYI to avoid others losing time over this. I may get around to look at the problems tomorrow, but I may have to just leave out the code if there's other things to do. The problems appear when running pppd under the new kernel. Two separate problems: 1) pppd hangs. Never outputs anything on the serial line. This problem is due to the arch/sh/mm/fault.c TLB changes. Have anybody tested those on SH3? 2) pppd doesn't work properly. It seems to resend some of the compression headers multiple times, confusing the pppd at the other end which eventually drops the connection. This seems cache related in one form or another. This problem stems from these changes in mm/page_alloc.c: diff -urN --exclude-from=/home/jskov/lib/diff-excludes -P /opt/RH-linuxsh/devo/linux/linux-sh/mm/page_alloc.c ./mm/page_alloc.c --- /opt/RH-linuxsh/devo/linux/linux-sh/mm/page_alloc.c Wed Aug 16 10:55:09 2000 +++ ./mm/page_alloc.c Mon Aug 14 11:36:58 2000 @@ -29,7 +29,7 @@ pg_data_t *pgdat_list; static char *zone_names[MAX_NR_ZONES] = { "DMA", "Normal", "HighMem" }; -static int zone_balance_ratio[MAX_NR_ZONES] = { 128, 128, 128, }; +static int zone_balance_ratio[MAX_NR_ZONES] = { 32, 128, 128, }; static int zone_balance_min[MAX_NR_ZONES] = { 10 , 10, 10, }; static int zone_balance_max[MAX_NR_ZONES] = { 255 , 255, 255, }; @@ -385,7 +385,7 @@ zone_t *zone; int i; - sum = nr_lru_pages; + sum = nr_lru_pages / 3; for (i = 0; i < NUMNODES; i++) for (zone = NODE_DATA(i)->node_zones; zone <= NODE_DATA(i)->node_zones+ZONE_NORMAL; zone++) sum += zone->free_pages; Jesper |