From owner-svn-src-projects@FreeBSD.ORG Mon Jul 30 20:39:25 2012 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC66F106568B; Mon, 30 Jul 2012 20:39:24 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lpp01m010-f54.google.com (mail-lpp01m010-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id A83CB8FC0A; Mon, 30 Jul 2012 20:39:23 +0000 (UTC) Received: by laai10 with SMTP id i10so4394871laa.13 for ; Mon, 30 Jul 2012 13:39:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type; bh=VYPt6tjdq+dGYfTxjAwPhh+o9xFykuycJs8uCpTHgXg=; b=chIUybnZHXN8YplwWHA8fk5bzx/hfeEeMEOFcx9rJrmrvoLdWK1ezVAVKprUqO/wxY jRxs5MaN8t2XJJ2EufVmbs1K7T9dn0U5vYqvuLcqrZxLohVotMUdiVcHs92eYDkpJ1v5 3MUiFFaZcf6vooKWn8+i9VhvQBYbo2ROKMWvxFkab2O40kAmUh/FNUQE6k3jOYGIO7+h ay6OL0EPTEsOhijhezXVQt/c+dLxn9jUXWfb86gXKIuqzWaUMAK6/a3YLjmX6+a+AD71 NzRxTzAf4f0MDWWXIs0rW9VZpTYRzFOZaGEthDoQv87GEhjx5S5RdkDqdkbHYaTJWM/B IrRA== MIME-Version: 1.0 Received: by 10.112.103.194 with SMTP id fy2mr5782390lbb.64.1343680757173; Mon, 30 Jul 2012 13:39:17 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Mon, 30 Jul 2012 13:39:17 -0700 (PDT) In-Reply-To: <5016A8E4.7070405@FreeBSD.org> References: <201207301350.q6UDobCI099069@svn.freebsd.org> <20120730143943.GY2676@deviant.kiev.zoral.com.ua> <5016A21B.6090409@FreeBSD.org> <5016A8E4.7070405@FreeBSD.org> Date: Mon, 30 Jul 2012 21:39:17 +0100 X-Google-Sender-Auth: fMn3Qkh5P5EqhYKD-5SaHXSC8rc Message-ID: From: Attilio Rao To: Andriy Gapon Content-Type: text/plain; charset=UTF-8 Cc: Konstantin Belousov , Davide Italiano , src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: Re: svn commit: r238907 - projects/calloutng/sys/kern X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Jul 2012 20:39:25 -0000 On Mon, Jul 30, 2012 at 4:31 PM, Andriy Gapon wrote: > on 30/07/2012 18:04 Attilio Rao said the following: >> On 7/30/12, Andriy Gapon wrote: >>> on 30/07/2012 17:56 Attilio Rao said the following: >>>> More explicitly, I think such combination TDP_NOSLEEPING + >>>> TDP_NOBLOCKING (name invented) should be set on entering the interrupt >>>> context, not only related to this part of callouts. This would be a >>>> very good help for catching buggy situations. >>> >>> Something very tangential. I think it would also be nice to check if a >>> thread has >>> any(?) locks held when returning to userland. >> >> This happens already for INVARIANTS case, with td_locks counters. >> In the !INVARIANTS case, this doesn't happen because you don't want to >> add the burden to bump td_locks for the fast case and I think it is a >> good approach. > > Ah, I missed that, thank you. > BTW, it seems that td_locks is checked twice in normal syscallret() path: once in > syscallret() itself and then in userret(). On this note, would it make sense to > move the whole nine yards of asserts from syscallret() to userret()? > I mean it might make sense to have those checks (td_critnest, td_pflags) in other > paths to userland. Nice catch. The checks were added to syscallret() in r208453. While this is fine, I think that putting them in userret() may give them more exposure and cover also cases like traps which are not covered right now. If you want to make a patch that moves these conditions in userret() I'd be in favor of it. Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein