From owner-freebsd-hackers@FreeBSD.ORG Thu Feb 13 21:02:42 2014 Return-Path: Delivered-To: hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AB4DB4F5 for ; Thu, 13 Feb 2014 21:02:42 +0000 (UTC) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 9555013B9 for ; Thu, 13 Feb 2014 21:02:42 +0000 (UTC) Received: from Alfreds-MacBook-Pro.local (unknown [50.204.88.5]) by elvis.mu.org (Postfix) with ESMTPSA id 995431A3CCC; Thu, 13 Feb 2014 13:02:36 -0800 (PST) Message-ID: <52FD32FF.70106@mu.org> Date: Thu, 13 Feb 2014 13:02:55 -0800 From: Alfred Perlstein User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: Vijay Singh Subject: Re: Debugging rw lock References: <52FD30D9.6050604@mu.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Feb 2014 21:02:42 -0000 On 2/13/14, 12:59 PM, Vijay Singh wrote: > You're talking about instrumenting the code, right? But which thread? I was > thinking of augmenting the rw lock to record the readers, but wanted to > check if something is possible without instrumentation. If rw locks are implemented using low level atomics then you're going to make the very slow and have a LOT of work to do as opposed to just using a thread specific storage to implement it. You're better off just making use of the fact that only "curthread" can access the per-thread stack and just use that. Or at least that's how it works in my brain. -Alfred > > > On Thu, Feb 13, 2014 at 12:53 PM, Alfred Perlstein wrote: > >> Keep a stack of rwlocks owned in the struct thread. >> >> -Alfred >> >> On 2/13/14, 12:51 PM, Vijay Singh wrote: >> >>> I am running into an issue where an rw lock is read locked and never >>> unlocked, and causes a system to livelock. I was wondering if its possible >>> to figure out which thread owns the read lock? >>> >>> It's the tcp pcbinfo lock. >>> >>> (kgdb-amd64-7.4-08) show_rwlock rw >>> name : tcp >>> class: rw >>> flags: {SLEEP, INITED, WITNESS, RECURSE, UPGRADABLE} >>> state: RLOCK: 1 locks >>> waiters: writers >>> >>> Any help is appreciated. >>> >>> -vijay >>> _______________________________________________ >>> 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 >>> " >>> >>> > _______________________________________________ > 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" >