On 12/8/11 3:53 PM, Mikolaj Golub wrote:

On Thu, 08 Dec 2011 13:30:36 -0500 John Baldwin wrote:

  JB>  On 12/3/11 3:58 PM, Mikolaj Golub wrote:
  >>
  >>  On Mon, 28 Nov 2011 13:30:11 -0500 John Baldwin wrote:
  >>
  >>    JB>   On Thursday, November 24, 2011 3:54:06 pm Mikolaj Golub wrote:
  >>    >>   Author: trociny
  >>    >>   Date: Thu Nov 24 20:54:06 2011
  >>    >>   New Revision: 227956
  >>    >>   URL: http://svn.freebsd.org/changeset/base/227956
  >>    >>
  >>    >>   Log:
  >>    >>     usr.bin/procstat
  >>    >>
  >>    >>     Add -l flag to display resource limits.
  >>    >>
  >>    >>     PR:                bin/161257
  >>    >>     Reviewed by:        kib
  >>    >>     MFC after:        2 weeks
  >>
  >>    JB>   Thanks for doing this!  Did you consider making the procstat -l 
output use
  >>    JB>   "pretty" output similar to the output of /usr/bin/limits?  For 
example,
  >>    JB>   using "infinity" instead of -1 and using humanize_number() for 
finite limits
  >>    JB>   that are in units of bytes?
  >>
  >>  I tried several variants, from one where for rlimit names rlimit_ident
  >>  constants from sys/resource.h are used and units are printed as suffixes:
  >>
  >>     PID COMM             RLIMIT         SOFT       HARD
  >>  46150 zsh              cpu         100000S   infinity
  >>  46150 zsh              fsize      infinity   infinity
  >>  46150 zsh              data       524288kB   524288kB
  >>  46150 zsh              stack       65536kB    65536kB
  >>  46150 zsh              core      9765625kB  9765625kB
  >>  46150 zsh              rss        infinity   infinity
  >>  46150 zsh              memlock    infinity   infinity
  >>  46150 zsh              nproc          5547       5547
  >>  46150 zsh              nofile        11095      11095
  >>  46150 zsh              sbsize     infinity   infinity
  >>  46150 zsh              vmem       infinity   infinity
  >>  46150 zsh              npts       infinity   infinity
  >>  46150 zsh              swap       infinity   infinity
  >>
  >>  to one where rlimit names are the same as in limits(1) and units are 
printed
  >>  in separate column:
  >>
  >>     PID COMM             RLIMIT                 SOFT       HARD   UNIT
  >>  48885 zsh              cputime              100000   infinity   secs
  >>  48885 zsh              filesize           infinity   infinity   bytes
  >>  48885 zsh              datasize            524288k    524288k   bytes
  >>  48885 zsh              stacksize            65536k     65536k   bytes
  >>  48885 zsh              coredumpsize         95367M     95367M   bytes
  >>  48885 zsh              memoryuse          infinity   infinity   bytes
  >>  48885 zsh              memorylocked       infinity   infinity   bytes
  >>  48885 zsh              maxprocesses           5547       5547
  >>  48885 zsh              openfiles             11095      11095
  >>  48885 zsh              sbsize             infinity   infinity   bytes
  >>  48885 zsh              vmemoryuse         infinity   infinity   bytes
  >>  48885 zsh              pseudo-terminals   infinity   infinity
  >>  48885 zsh              swapuse            infinity   infinity   bytes
  >>
  >>  Personally I like the first variant as the most compact and the easiest to
  >>  maintain but would be glad to learn what other think about this or may be 
have
  >>  other suggestions.
  >>
  >>  A couple other variations:
  >>
  >>     PID COMM             RLIMIT         SOFT       HARD   UNIT
  >>  47062 zsh              cpu          100000   infinity   secs
  >>  47062 zsh              fsize      infinity   infinity   bytes
  >>  47062 zsh              data        524288k    524288k   bytes
  >>  47062 zsh              stack      67108864   67108864   bytes
  >>  47062 zsh              core       9765625k   9765625k   bytes
  >>  47062 zsh              rss        infinity   infinity   bytes
  >>  47062 zsh              memlock    infinity   infinity   bytes
  >>  47062 zsh              nproc          5547       5547
  >>  47062 zsh              nofile        11095      11095
  >>  47062 zsh              sbsize     infinity   infinity   bytes
  >>  47062 zsh              vmem       infinity   infinity   bytes
  >>  47062 zsh              npts       infinity   infinity
  >>  47062 zsh              swap       infinity   infinity   bytes
  >>
  >>     PID COMM                       RLIMIT       SOFT       HARD   UNIT
  >>  48798 zsh                       cputime     100000   infinity   secs
  >>  48798 zsh                      filesize   infinity   infinity   bytes
  >>  48798 zsh                      datasize    524288k    524288k   bytes
  >>  48798 zsh                     stacksize     65536k     65536k   bytes
  >>  48798 zsh                  coredumpsize     95367M     95367M   bytes
  >>  48798 zsh                     memoryuse   infinity   infinity   bytes
  >>  48798 zsh                  memorylocked   infinity   infinity   bytes
  >>  48798 zsh                  maxprocesses       5547       5547
  >>  48798 zsh                     openfiles      11095      11095
  >>  48798 zsh                        sbsize   infinity   infinity   bytes
  >>  48798 zsh                    vmemoryuse   infinity   infinity   bytes
  >>  48798 zsh              pseudo-terminals   infinity   infinity
  >>  48798 zsh                       swapuse   infinity   infinity   bytes

  JB>  Hmm, I would stick as close to limits output as possible.  I would
  JB>  consider duplicating the unit field in each of soft and hard, so you
  JB>  end up with something like this:

  JB>    PID  COMM            RLIMIT     SOFT           HARD
  JB>  48798  zsh             cputime      100000 secs  infinity secs
  JB>  48798  zsh             filesize   infinity kb    infinity kb
  JB>  48798  zsh             datasize     524288 kb      524288 kb

  JB>  etc.

Ok.

  JB>  (Things like 'openfiles' is simply more intuitive than 'nofile' (no
  JB>  file?, huh? oh, num open files.. (except not all users will make the
  JB>  last step there).

Then why do we have so non-intuitive rlimit_ident names?

It looks like they are used only in procfs_rlimit.c. Do procfs(5) users always
make that last step with 'nofile'? :-)

Well, I suspect it's best not to change the names in procfs in case
there are existing binaries that parse the output of that file (unfortunately).

Is it possible to change rlimit_ident names? Just to ones that are used by
limit(1) or (if they look too long) to something like below:

Hmm, I have no idea what other things might use rlimit_ident.  Probably
not many.  (Also, for fun, note that the 'ulimit' and 'limit' built-in
commands in sh and csh also have their own sets of names, fun!)  I would
maybe add a rlimit_names[] (just leave rlimit_ident alone), and give that the names from limits(1), and change both procstat and sh's 'ulimit' command to use those.

--
John Baldwin
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to