From owner-freebsd-current Fri Jun 14 0: 8:15 2002 Delivered-To: freebsd-current@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 931) id 72C4837B408; Fri, 14 Jun 2002 00:08:09 -0700 (PDT) Date: Fri, 14 Jun 2002 00:08:09 -0700 From: Juli Mallett To: Julian Elischer Cc: FreeBSD current users Subject: Re: KSE changes to ps Message-ID: <20020614000809.A12237@FreeBSD.ORG> References: Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5.1i In-Reply-To: ; from julian@elischer.org on Thu, Jun 13, 2002 at 11:55:36PM -0700 Organisation: The FreeBSD Project X-Alternate-Addresses: , , , X-Affiliated-Projects: FreeBSD, xMach, ircd-hybrid-7 X-Towel: Yes Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG * Julian Elischer escriurères > So the question is: what information can PS show > for a KSE threaded process? > > I have been thinking of: > > Certainly the first thing to decide it WHAT there is to show.. > threads that are in userspace are not visible to ps, or for that matter > the kernel, as teh Userland thread scheduler may switch between them > without notifying the kernel. Only threads blocked in the kernel can show > any information other than "running" For those in the userland there > is only the information in the associated kse , and priority > info from the thread is available. > > so for a process you can show: > process stuff (e.g. uid, pid, ppid) Hopefully this won't change. > kseg stuff (e.g. nice value, number runnable threads) Nice value and stuff are exported anyway via kproc_info. Maybe we should look at packing an export_thread in there for exported kse interfaces? > kse stuff(e.g. RUNNING @ priority 32 on cpu0) > kse stuff(e.g. RUNNING @ priority 31 on cpu1) > runnable threads > e.g. > thread runnable priority 33 > thread runnable priority 35 > thread runnable priority 37 > sleeping threads > e.g. > thread waiting at Mutex net1 prio 33 > thread sleeping at "biord" prio 31 This all has a simple solution. Export each thread as a process via kinfo_\ proc, and ps(1) will use the existing mtxname interfaces and such.. I don't know how simple this is at a code level. > kseg stuff (for next kseg) > ... > > > > anyone have thoughts? It'd be best to be able to poll the userland schedulers and the KSE stuff via the ptrace(2) interface, I think, or just export things using kinfo_proc and pad out the struct with things pertinent to KSE's. Thanks. -- Juli Mallett FreeBSD: The Power To Serve Perception is prejudice / Don't classify me / Accept me as me / Not what you see To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message