netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Shailabh Nagar <nagar@watson.ibm.com>
To: Andrew Morton <akpm@osdl.org>
Cc: pj@sgi.com, Valdis.Kletnieks@vt.edu, jlan@engr.sgi.com,
	balbir@in.ibm.com, csturtiv@sgi.com,
	linux-kernel@vger.kernel.org, hadi@cyberus.ca,
	netdev@vger.kernel.org
Subject: Re: [Patch][RFC] Disabling per-tgid stats on task exit in taskstats
Date: Fri, 30 Jun 2006 23:37:10 -0400	[thread overview]
Message-ID: <44A5EDE6.3010605@watson.ibm.com> (raw)
In-Reply-To: <20060630194353.1cc96ce4.akpm@osdl.org>

Andrew Morton wrote:

>On Fri, 30 Jun 2006 22:20:23 -0400
>Shailabh Nagar <nagar@watson.ibm.com> wrote:
>
>  
>
>>>If we're going to abuse nl_pid then how about we design things so that
>>>nl_pid is treated as two 16-bit words - one word is the start CPU and the
>>>other word is the end cpu?
>>>
>>>Or, if a 65536-CPU limit is too scary, make the bottom 8 bits of nl_pid be
>>>the number of CPUS (ie: TASKSTATS_CPUS_PER_SET) and the top 24 bits is the
>>>starting CPU.  
>>>
>>><avoids mentioning nl_pad>
>>>
>>>It'd be better to use a cpumask, of course..
>>> 
>>>
>>>      
>>>
>>All these options mean each listener gets to pick a "custom" range of 
>>cpus to listen on, 
>>rather than choose one of pre-defined ranges (even if the pre-defined 
>>ranges can change
>>by a configurable TASKSTATS_CPUS_PER_SET). Which means the kernel side 
>>has to
>>figure out which of the listeners cpu range includes the currently 
>>exiting task's cpu. To do
>>this, we'll need a callback from the binding of the netlink socket (so 
>>taskstats can maintain
>>the cpu -> nl_pid mappings at any exit).
>>The current genetlink interface doesn't have that kind of flexibility 
>>(though it can be added
>>I'm sure).
>>
>>Seems a bit involved if the primary aim is to restrict the number of 
>>cpus that one listener
>> wants to listen, rather than be able to pick which ones.
>>
>>A configurable range won't suffice ?
>>
>>    
>>
>
>Set aside the implementation details and ask "what is a good design"?
>
>A kernel-wide constant, whether determined at build-time or by a /proc poke
>isn't a nice design.
>
>Can we permit userspace to send in a netlink message describing a cpumask? 
>That's back-compatible.
>  
>
Yes, that should be doable. And passing in a cpumask is much better 
since we no longer
have to maintain mappings.

So the strawman is:
Listener bind()s to genetlink using its real pid.
Sends a separate "registration" message with cpumask to listen to. 
Kernel stores (real) pid and cpumask.
During task exit, kernel goes through each registered listener (small 
list) and decides which
one needs to get this exit data and calls a genetlink_unicast to each 
one that does need it.

If number of listeners is small, the lookups should be swift enough. If 
it grows large, we
can consider a fancier lookup (but there I go again, delving into 
implementation too early :-)


Sounds good to me !

--Shailabh








  reply	other threads:[~2006-07-01  3:37 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <44892610.6040001@watson.ibm.com>
     [not found] ` <20060609042129.ae97018c.akpm@osdl.org>
     [not found]   ` <4489EE7C.3080007@watson.ibm.com>
     [not found]     ` <449999D1.7000403@engr.sgi.com>
     [not found]       ` <44999A98.8030406@engr.sgi.com>
     [not found]         ` <44999F5A.2080809@watson.ibm.com>
     [not found]           ` <4499D7CD.1020303@engr.sgi.com>
     [not found]             ` <449C2181.6000007@watson.ibm.com>
     [not found]               ` <20060623141926.b28a5fc0.akpm@osdl.org>
     [not found]                 ` <449C6620.1020203@engr.sgi.com>
     [not found]                   ` <20060623164743.c894c314.akpm@osdl.org>
     [not found]                     ` <449CAA78.4080902@watson.ibm.com>
     [not found]                       ` <20060623213912.96056b02.akpm@osdl.org>
     [not found]                         ` <449CD4B3.8020300@watson.ibm.com>
     [not found]                           ` <44A01A50.1050403@sgi.com>
     [not found]                             ` <20060626105548.edef4c64.akpm@osdl.org>
     [not found]                               ` <44A020CD.30903@watson.ibm.com>
     [not found]                                 ` <20060626111249.7aece36e.akpm@osdl.org>
     [not found]                                   ` <44A026ED.8080903@sgi.com>
     [not found]                                     ` <20060626113959.839d72bc.akpm@osdl.org>
     [not found]                                       ` <44A2F50D.8030306@engr.sgi.com>
     [not found]                                         ` <20060628145341.529a61ab.akpm@osdl.org>
     [not found]                                           ` <44A2FC72.9090407@engr.sgi.com>
     [not found]                                             ` <20060629014050.d3bf0be4.pj@sgi.com>
     [not found]                                               ` <200606291230.k5TCUg45030710@turing-police.cc.vt.edu>
     [not found]                                               ` <200606291230.k5TCUg45030710@turing-police.cc.vt. edu>
     [not found]                                                 ` <20060629094408.360ac157.pj@sgi.com>
     [not found]                                                   ` <20060629110107.2e56310b.akpm@osdl.org>
2006-06-29 19:10                                                     ` [Patch][RFC] Disabling per-tgid stats on task exit in taskstats Shailabh Nagar
2006-06-29 19:23                                                       ` Paul Jackson
2006-06-29 19:33                                                       ` Andrew Morton
2006-06-29 19:43                                                         ` Shailabh Nagar
2006-06-29 20:00                                                           ` Andrew Morton
2006-06-29 22:13                                                             ` Shailabh Nagar
2006-06-29 23:00                                                               ` jamal
2006-06-29 20:01                                                         ` Shailabh Nagar
2006-06-29 21:22                                                           ` Paul Jackson
2006-06-29 22:54                                                           ` jamal
2006-06-30  0:38                                                             ` Shailabh Nagar
2006-06-30  1:05                                                               ` Andrew Morton
2006-06-30  1:11                                                                 ` Shailabh Nagar
2006-06-30  1:30                                                                   ` jamal
2006-06-30  3:01                                                                     ` Shailabh Nagar
2006-06-30 12:45                                                                       ` jamal
2006-06-30  2:25                                                                 ` Paul Jackson
2006-06-30  2:35                                                                   ` Andrew Morton
2006-06-30  2:43                                                                     ` Paul Jackson
2006-06-30 18:53                                                     ` Shailabh Nagar
2006-06-30 19:10                                                       ` Shailabh Nagar
2006-06-30 19:19                                                         ` Shailabh Nagar
2006-06-30 20:19                                                         ` jamal
2006-06-30 22:50                                                         ` Andrew Morton
2006-07-01  2:20                                                           ` Shailabh Nagar
2006-07-01  2:43                                                             ` Andrew Morton
2006-07-01  3:37                                                               ` Shailabh Nagar [this message]
2006-07-01  3:51                                                                 ` Andrew Morton
2006-07-03 21:11                                                                   ` Shailabh Nagar
2006-07-03 21:41                                                                     ` Andrew Morton
2006-07-04  0:13                                                                       ` Shailabh Nagar
2006-07-04  0:38                                                                         ` Andrew Morton
2006-07-04 20:19                                                                       ` Paul Jackson
2006-07-04 20:22                                                                         ` Paul Jackson
2006-07-04  0:54                                                                     ` Shailabh Nagar
2006-07-04  1:01                                                                       ` Andrew Morton
2006-07-04 13:05                                                                         ` jamal
2006-07-04 15:18                                                                           ` Shailabh Nagar
2006-07-04 16:37                                                                             ` Shailabh Nagar
2006-07-04 19:24                                                                               ` jamal
2006-07-05 14:09                                                                                 ` Shailabh Nagar
2006-07-05 20:25                                                                                   ` Chris Sturtivant
2006-07-05 20:32                                                                                     ` Shailabh Nagar
2006-07-03  4:53                                                                 ` Paul Jackson
2006-07-03 15:02                                                                   ` Shailabh Nagar
2006-07-03 15:55                                                                     ` Paul Jackson
2006-07-03 16:31                                                                     ` Paul Jackson
2006-07-04  0:09                                                                       ` Shailabh Nagar
2006-07-04 19:59                                                                         ` Paul Jackson
2006-07-05 17:20                                                                     ` Jay Lan
2006-07-05 18:18                                                                       ` Shailabh Nagar
2006-06-30 22:56                                                       ` Andrew Morton

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=44A5EDE6.3010605@watson.ibm.com \
    --to=nagar@watson.ibm.com \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=akpm@osdl.org \
    --cc=balbir@in.ibm.com \
    --cc=csturtiv@sgi.com \
    --cc=hadi@cyberus.ca \
    --cc=jlan@engr.sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pj@sgi.com \
    /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).