From: ori@eigenstate.org
To: 9front@9front.org
Subject: Re: [9front] Re: [PATCH] devproc: use the correct limit when warning that conf.nproc is too high
Date: Tue, 08 Jun 2021 22:22:03 -0400 [thread overview]
Message-ID: <A6F0F776402E5FD87F239F9E24B9C4C4@eigenstate.org> (raw)
In-Reply-To: <YMAERiTuZ+hrjUzu@alice>
Quoth Anthony Martin <ality@pbrane.org>:
> james palmer <james@biobuf.link> once said:
> > - if(conf.nproc >= (1<<(16-QSHIFT))-1)
> > + if(conf.nproc >= (1<<23)-1)
>
> This change could be better. Skip to the end for the patch or
> continue reading for a stroll down memory lane.
>
> The number of qid types in the proc(3) file system has slowly
> increased over time. The first edition originally had nine:
>
> Qdir, Qctl, Qmem, Qnote, Qnotepg, Qproc, Qsegment, Qstatus,
> and Qtext.
>
> The second edition added two:
>
> Qnoteid, and Qwait.
>
> The third edition added six:
>
> Qfd, Qfpregs, Qkregs, Qns, Qregs, and Qprofile.
>
> The fourth edition added three:
>
> Qargs in 2002, Qtrace in 2003, and Qsyscall in 2010.
>
> And 9front has added two more:
>
> Qppid in 2011, and Qwatchpt in 2017.
>
> The number surpassed 16 in 3ed so QSHIFT was incremented and the
> constants were adjusted but, unfortunately, the comment was not
> updated at that time.
>
> In May 2011, quanstro pointed this out on 9fans and it was corrected.
> The QID and SLOT macros were also changed to calculate the mask based
> on QSHIFT. The guard testing for too many procs in procinit was also
> fixed.
>
> This change happened shortly after the 9front fork happened so it was
> easily missed.
>
> Cheers,
> Anthony
>
> % cd /n/dump/2011
> % diff -c (0526 0527)^/sys/src/9/port/devproc.c
> 0526/sys/src/9/port/devproc.c:132,139 - 0527/sys/src/9/port/devproc.c:132,139
>
> /*
> * Qids are, in path:
> - * 4 bits of file type (qids above)
> - * 23 bits of process slot number + 1
> + * 5 bits of file type (qids above)
> + * 26 bits of process slot number + 1
> * in vers,
> * 32 bits of pid, for consistency checking
> * If notepg, c->pgrpid.path is pgrp slot, .vers is noteid.
> 0526/sys/src/9/port/devproc.c:140,147 - 0527/sys/src/9/port/devproc.c:140,147
> */
> #define QSHIFT 5 /* location in qid of proc slot # */
>
> - #define QID(q) ((((ulong)(q).path)&0x0000001F)>>0)
> - #define SLOT(q) (((((ulong)(q).path)&0x07FFFFFE0)>>QSHIFT)-1)
> + #define QID(q) ((((ulong)(q).path) & ((1<<QSHIFT)-1)) >> 0)
> + #define SLOT(q) (((((ulong)(q).path) & ~(1UL<<31)) >> QSHIFT) - 1)
> #define PID(q) ((q).vers)
> #define NOTEID(q) ((q).vers)
>
> 0526/sys/src/9/port/devproc.c:288,294 - 0527/sys/src/9/port/devproc.c:288,294
> static void
> procinit(void)
> {
> - if(conf.nproc >= (1<<(16-QSHIFT))-1)
> + if(conf.nproc >= (1<<(31-QSHIFT))-1)
> print("warning: too many procs for devproc\n");
> addclock0link((void (*)(void))profclock, 113); /* Relative prime to HZ */
> }
> %
>
Yeah, that looks better. Thanks for digging it up;
applying it by hand.
As a side note, 'diff -u' or 'ape/diff -u' makes for a
patch that can be applied directly from email:
ape/patch -p1 </mail/fs/mbox/51913/body
prev parent reply other threads:[~2021-06-09 21:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-07 8:39 [9front] " james palmer
2021-06-08 23:59 ` [9front] " Anthony Martin
2021-06-09 2:22 ` ori [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=A6F0F776402E5FD87F239F9E24B9C4C4@eigenstate.org \
--to=ori@eigenstate.org \
--cc=9front@9front.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).