From owner-freebsd-net@FreeBSD.ORG Fri Jan 13 06:43:55 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 54FEE106566B; Fri, 13 Jan 2012 06:43:55 +0000 (UTC) (envelope-from julian@freebsd.org) Received: from vps1.elischer.org (vps1.elischer.org [204.109.63.16]) by mx1.freebsd.org (Postfix) with ESMTP id 1FEEB8FC0A; Fri, 13 Jan 2012 06:43:54 +0000 (UTC) Received: from julian-mac.elischer.org ([12.42.66.130]) (authenticated bits=0) by vps1.elischer.org (8.14.4/8.14.4) with ESMTP id q0D6hmCg048734 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Thu, 12 Jan 2012 22:43:50 -0800 (PST) (envelope-from julian@freebsd.org) Message-ID: <4F0FD2E3.1060607@freebsd.org> Date: Thu, 12 Jan 2012 22:44:51 -0800 From: Julian Elischer User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.4; en-US; rv:1.9.2.25) Gecko/20111213 Thunderbird/3.1.17 MIME-Version: 1.0 To: Oliver Fromme References: <201201121404.q0CE4ItN066102@lurza.secnetix.de> In-Reply-To: <201201121404.q0CE4ItN066102@lurza.secnetix.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org, "Paul A. Procacci" , Oliver Fromme , freebsd-net@freebsd.org Subject: Re: Processes' FIBs X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Jan 2012 06:43:55 -0000 On 1/12/12 6:04 AM, Oliver Fromme wrote: > Bjoern A. Zeeb wrote: > > On 11. Jan 2012, at 15:06 , Oliver Fromme wrote: > > > I'm currently looking at the source code of ps, but adding > > > a field for the FIB isn't as trivial as I thought because > > > ps only sees struct kinfo_proc (via sysctl kern.proc.*) > > > which doesn't contain the FIB. procstat does the same. > > > > > > I'm currently trying to write a patch that copies p_fibnum > > > from struct proc to struct kinfo_proc (just like p_nice, > > > for example). Does that make sense? If so, does the patch > > > below look reasonable? (I've made it on a stable/8 system, > > > but it should apply to 9 and 10, too.) > > > > I am not sure it makes too much sense in ps. It might make sense in > > sockstat maybe? > > Well, every process has a default FIB number (p_fibnum in > struct proc). It is a property of the process, just like > the nice value for example. So I think it makes sense for > ps to be able to display it if the user asks for it. This > is the piece of information that I need. > > On the other hand, sockstat displays open sockets only. > Of course, an internet socket has a FIB number associated > with it, too, so sockstat could display it. But that > would be a completely different piece of information, > and it wouldn't solve the actual problem that I'm currently > facing. > I hadn't considered that a process would want to see the fib of another. but of course it makes sense. I see no problem the the attached patch except that it doesn't fix the man page for ps and setfib(2) or setfib(8) (or is it 1?) etc. if there are no objections, I can add this when it has been polished.. > Best regards > Oliver > > --- ./sys/sys/user.h.orig 2011-07-12 14:23:54.000000000 +0200 > +++ ./sys/sys/user.h 2012-01-11 15:35:50.000000000 +0100 > @@ -83,7 +83,7 @@ > * it in two places: function fill_kinfo_proc in sys/kern/kern_proc.c and > * function kvm_proclist in lib/libkvm/kvm_proc.c . > */ > -#define KI_NSPARE_INT 9 > +#define KI_NSPARE_INT 8 > #define KI_NSPARE_LONG 12 > #define KI_NSPARE_PTR 6 > > @@ -177,6 +177,7 @@ > */ > char ki_sparestrings[68]; /* spare string space */ > int ki_spareints[KI_NSPARE_INT]; /* spare room for growth */ > + int ki_fibnum; /* Default FIB number */ > u_int ki_cr_flags; /* Credential flags */ > int ki_jid; /* Process jail ID */ > int ki_numthreads; /* XXXKSE number of threads in total */ > --- ./sys/kern/kern_proc.c.orig 2011-07-12 14:19:26.000000000 +0200 > +++ ./sys/kern/kern_proc.c 2012-01-11 15:36:22.000000000 +0100 > @@ -775,6 +775,7 @@ > kp->ki_swtime = (ticks - p->p_swtick) / hz; > kp->ki_pid = p->p_pid; > kp->ki_nice = p->p_nice; > + kp->ki_fibnum = p->p_fibnum; > PROC_SLOCK(p); > rufetch(p,&kp->ki_rusage); > kp->ki_runtime = cputick2usec(p->p_rux.rux_runtime); > --- ./bin/ps/keyword.c.orig 2011-07-12 13:42:48.000000000 +0200 > +++ ./bin/ps/keyword.c 2012-01-11 15:44:27.000000000 +0100 > @@ -90,6 +90,7 @@ > NULL, 0}, > {"etime", "ELAPSED", NULL, USER, elapsed, NULL, 12, 0, CHAR, NULL, 0}, > {"f", "F", NULL, 0, kvar, NULL, 8, KOFF(ki_flag), INT, "x", 0}, > + {"fib", "FIB", NULL, 0, kvar, NULL, 2, KOFF(ki_fibnum), INT, "d", 0}, > {"flags", "", "f", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > {"ignored", "", "sigignore", 0, NULL, NULL, 0, 0, CHAR, NULL, 0}, > {"inblk", "INBLK", NULL, USER, rvar, NULL, 4, ROFF(ru_inblock), LONG, > _______________________________________________ > freebsd-hackers@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-hackers > To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" >