> The following command line switch (-n) adds an initial hack to
> conf.nproc to override the 2000 hard coded limit. While this allws me
> to now run over 64 threads, running it to high gives me a warning that
> there are to many procs for devproc. I'm providing the patch here as
this is a bug in the warning message.
; diffy -c devproc.c
/n/dump/2011/0526/sys/src/9/port/devproc.c:139,147 - devproc.c:139,149
* If notepg, c->pgrpid.path is pgrp slot, .vers is noteid.
*/
#define QSHIFT 5 /* location in qid of proc slot # */
+ #define SLOTBITS 23 /* number of bits in the slot */
+ #define SLOTMASK ((1<<SLOTBITS)-1 << QSHIFT)
#define QID(q) ((((ulong)(q).path)&0x0000001F)>>0)
- #define SLOT(q) (((((ulong)(q).path)&0x07FFFFFE0)>>QSHIFT)-1)
+ #define SLOT(q) (((((ulong)(q).path)&SLOTMASK)>>QSHIFT)-1)
#define PID(q) ((q).vers)
#define NOTEID(q) ((q).vers)
/n/dump/2011/0526/sys/src/9/port/devproc.c:288,294 - devproc.c:290,296
static void
procinit(void)
{
- if(conf.nproc >= (1<<(16-QSHIFT))-1)
+ if(conf.nproc >= (SLOTMASK>>QSHIFT) - 1)
print("warning: too many procs for devproc\n");
addclock0link((void (*)(void))profclock, 113); /* Relative prime to HZ
*/
}
- erik