Messages in this thread | | | Date | Sat, 6 Jan 2007 20:35:10 +0100 | From | Willy Tarreau <> | Subject | Re: [KORG] Re: kernel.org lies about latest -mm kernel |
| |
On Sat, Jan 06, 2007 at 11:18:37AM -0800, H. Peter Anvin wrote: > Randy Dunlap wrote: > > > >>>BTW, yesterday my 2.4 patches were not published, but I noticed that > >>>they were not even signed not bziped on hera. At first I simply thought > >>>it was related, but right now I have a doubt. Maybe the automatic script > >>>has been temporarily been disabled on hera too ? > >>The script that deals with the uploads also deals with the packaging - > >>so yes the problem is related. > > > >and with the finger_banner and version info on www.kernel.org page? > > Yes, they're all connected. > > The load on *both* machines were up above the 300s yesterday, probably > due to the release of a new Knoppix DVD.
I have one trivial idea : would it help to use 2 addresses to server data, one for pure kernel usage (eg: git, rsync) and one with other stuff such as DVDs, but with a low limit on the number of concurrent connections ?
> The most fundamental problem seems to be that I can't tell currnt Linux > kernels that the dcache/icache is precious, and that it's way too eager > to dump dcache and icache in favour of data blocks. If I could do that, > this problem would be much, much smaller.
I often have this problem on some of my machines after slocate runs. Everything is consumed in dcache/icache and no data blocks are cacheable anymore. I never found a way to tell the kernel to assign a higher prio to data than to [di]cache. To remedy this, I wrote this stupid program that I run when I need to free memory. It does simply allocate the memory size I ask, which causes a flush of the [di]caches, and when it exits, this memory is usable again for data blocks.
I'm not sure it would be easy to automatically run such a thing, but maybe it could sometimes help when the [id]caches are too fat.
Willy
#include <stdio.h> main(int argc, char **argv) { unsigned long int i,k=0, max; char *p;
max = (argc>1) ? atol(argv[1]) : 102400; // default to 100 MB printf("Allocating %lu kB...\n",max); while (((p=(char *)malloc(1048576))!=NULL) && (k+1024<=max)) { for (i=0;i<256;p[4096*i++]=0); /* mark block dirty */ k+=1024; fprintf(stderr,"\r%d kB allocated",k); } fprintf(stderr,"\nMemory freed.\n"); exit(0); }
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |