Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Nov 2014 12:40:52 +0200
From:      Konstantin Belousov <kostikbel@gmail.com>
To:        Mateusz Guzik <mjguzik@gmail.com>, Julian Elischer <julian@freebsd.org>, Tiwei Bie <btw@mail.ustc.edu.cn>, freebsd-hackers@freebsd.org
Subject:   Re: [PATCH] Finish the task 'sysctl reporting current working directory'
Message-ID:  <20141103104052.GL53947@kib.kiev.ua>
In-Reply-To: <20141103102005.GI29497@dft-labs.eu>
References:  <1414987325-23280-1-git-send-email-btw@mail.ustc.edu.cn> <20141103051908.GC29497@dft-labs.eu> <20141103064052.GA1739@freebsd> <5457394E.4050905@freebsd.org> <20141103084129.GF29497@dft-labs.eu> <20141103090940.GI53947@kib.kiev.ua> <20141103102005.GI29497@dft-labs.eu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Nov 03, 2014 at 11:20:05AM +0100, Mateusz Guzik wrote:
> On Mon, Nov 03, 2014 at 11:09:40AM +0200, Konstantin Belousov wrote:
> > On Mon, Nov 03, 2014 at 09:41:29AM +0100, Mateusz Guzik wrote:
> > > On Mon, Nov 03, 2014 at 04:14:06PM +0800, Julian Elischer wrote:
> > > > why are you using a fixed sysctl MIB number?
> > > > I thought we were moving towards dynamic sysctls when we add new ones.
> > > > 
> > > 
> > > We are? KERN_PROC_* seems to be a complete list with SIGTRAMP added last
> > > year.
> > > 
> > > I guess we can do it with OID_AUTO, if there will be any need we can
> > > switch it back to a static var.
> > 
> > I am very curious how would you make kern.proc.cwd auto, while
> > still using kern.proc leaf.  And more important question is, why ?
> 
> Unclear what you mean. I just tested with marking it OID_AUTO and it
> works.
Typical caller of other sysctls from kern.proc family does
(slightly edited code from libunwind):

  int mib[4], error, ret;
  size_t len, len1;

  len = 0;
  mib[0] = CTL_KERN;
  mib[1] = KERN_PROC;
  mib[2] = KERN_PROC_VMMAP;
  mib[3] = pid;

> 
> Userspace code does sysctlbyname to look it up and sysctl + mib[3] = pid to
> call, no problems that I can see.
Yes, but currently userspace does not need to do this dance (for other
kern.proc sysctls).

> 
> I'm not a fan of this because of the need for lookup for what is a
> compiled in and always available sysctl.
> 
> I only said we can do OID_AUTO because of Julian's complaint. Was about
> to do some search for apparent agreement to not add more static sysctls,
> but your reply suggests there was no such thing.
It is reasonable to not manage allocation of oids for things which are
hard or impossible to statically manage, e.g. the leafs from dynamically
loaded modules, or leafs describing the device tree on the machine,
where structure of the tree depends on the local conditions.

Trying to enforce this rule for oids where only static tree is used
only complicates life for consumers without any benefits for code
clarity or extensibility.

> 
> That said, I prefer static version.
Agree.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20141103104052.GL53947>