On Thu, 26 May 2011 09:40:31 +0200, yy wrote:
2011/5/26 erik quanstrom <quans...@quanstro.net>:
9vx uses plan9.ini?  last i checked, that assumption was false.

That depends where you checked. Ron's version (or mine, they are the
same now) has some support for plan9.ini files with the -f flag, as is
documented in the man page:
http://bytebucket.org/yiyus/vx32/wiki/9vx.html. However, although
plan9.ini is used to set some config values (as the root file system
or the memory limit mentioned in this thread), 9vx cannot load a
kernel file. So:

There was a minor inconsistency. There is a comment in 9vx/mmu.c which states that memsize can be overwritten with the '-m' option, but no -m switch was provided in main. The following diff adds that (tested):

--- main.c      2011-05-26 08:34:02.687051389 -0500
+++ main.c      2011-05-26 08:34:10.830709411 -0500
@@ -170,6 +170,9 @@
                username = EARGF(usage());
                break;

+       case 'm':
+               memsize = atoi(EARGF(usage()));
+               break;
        default:
                usage();
        }ARGEND

Also, thanks for the pointer. Setting memsize in a plan9.ini also works.

i think you need to modify the 9vx kernel directly.

is right.

Modifying the 9vx kernel is not funny because of the bad state of the
.ed files in a/. I hope newer versions of gcc with plan9 extensions
make most of these scripts unnecessary, but as far as I know nobody
has tried.

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 is, but will likely take a poke at it again over the weekend. As a note, I need to be able to spawn over 3000 procs to stress test some code. I would like to get this working under 9vx as well...

--- main.c      2011-05-26 08:40:00.286043255 -0500
+++ main.c      2011-05-26 08:43:42.369712636 -0500
@@ -64,6 +64,8 @@

 static char*   getuser(void);

+int nproclimit = 2000; // allow override of the hardlimit set to the number of procs
+
 void
 usage(void)
 {
@@ -173,6 +175,9 @@
        case 'm':
                memsize = atoi(EARGF(usage()));
                break;
+       case 'n':
+               nproclimit = atoi(EARGF(usage()));
+               break;
        default:
                usage();
        }ARGEND
@@ -284,8 +289,8 @@
                conf.npage += conf.mem[i].npage;
        conf.upages = conf.npage;
        conf.nproc = 100 + ((conf.npage*BY2PG)/MB)*5;
-       if(conf.nproc > 2000)
-               conf.nproc = 2000;
+       if(conf.nproc > nproclimit)
+               conf.nproc = nproclimit;
        conf.nimage = 200;
        conf.nswap = 0;
        conf.nswppo = 0;

I do not think I have write access to your 9vx repository, and I do not know if you want the nproc limit hack. Let me know if you find these acceptable.

  EBo --


Reply via email to