From owner-freebsd-current@FreeBSD.ORG Thu Aug 6 18:59:35 2009 Return-Path: Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A63EA1065675 for ; Thu, 6 Aug 2009 18:59:35 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outU.internet-mail-service.net (outu.internet-mail-service.net [216.240.47.244]) by mx1.freebsd.org (Postfix) with ESMTP id 7FC418FC22 for ; Thu, 6 Aug 2009 18:59:35 +0000 (UTC) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id D4ACAA300F; Thu, 6 Aug 2009 11:59:35 -0700 (PDT) X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (home.elischer.org [216.240.48.38]) by idiom.com (Postfix) with ESMTP id 835DD2D6004; Thu, 6 Aug 2009 11:59:34 -0700 (PDT) Message-ID: <4A7B27DD.20503@elischer.org> Date: Thu, 06 Aug 2009 11:58:37 -0700 From: Julian Elischer User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Rick Macklem References: <20090804225806.GA54680@hub.freebsd.org> <20090805054115.O93661@maildrop.int.zabbadoz.net> <20090805063417.GA10969@doormat.home> <4A7AF25D.40608@elischer.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Robert Watson , jeff@FreeBSD.org, "Bjoern A. Zeeb" , freebsd-current@FreeBSD.org, kib@FreeBSD.org, Navdeep Parhar , Larry Rosenman , lstewart@FreeBSD.org Subject: Re: reproducible panic in netisr X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Aug 2009 18:59:35 -0000 Rick Macklem wrote: > > > On Thu, 6 Aug 2009, Julian Elischer wrote: > >> Rick Macklem wrote: >>> >>> >>> On Thu, 6 Aug 2009, Robert Watson wrote: >>> >>>> other places where we have very strong alignment requirements on >>>> i386/amd64, such as the td_ucred pointer that we check for change on >>>> system calls/traps to see if we need to refresh the thread's >>>> credential from the process credential. >>>> >>> Does this imply that the krpc/nlm/nfs hack of: >>> oldcred = td->td_ucred; >>> td->td_ucred = "some other cred ptr, such as the mount one" >>> ... >>> td->td_ucred = oldcred; >>> >>> could be dangerous? >>> >>> Maybe it should be converted to code that replaces the contents instead >>> of replacing the *cred? (Variants of the above live in a bunch of places >>> in the krpc, nlm and nfs code, due to the fact that the socket functions >>> use td->td_ucred in various places.) >> >> no, creds are read-only .. you never change a cred. >> You alwasy make a new one ans use it, becasue you may be shareing your >> cred with hundreds of other sibling threads or processes. (they are >> refcounted) >> > Righto, yes. So does that imply that the alignment provided by crget() > { which uses malloc() } is sufficient for td->td_ucred or is td->td_ucred > a special case? It should be enough. > > rick > ps: The above hack, which came up in a separate discussion yesterday, > isn't gonna be easy to get rid of, imho. A whole bunch of network > related functions use td->td_ucred and the only fix I can see would > be to add "*cred" arguments to them all, so that the krpc/nlm/nfs > code could pass the correct *cred in. (It is set to the one used at > mount time for network reconnects, etc.) we should probably do the right thign refcount-wise for the ucred but refcount (atomic) ops are expensive. > > _______________________________________________ > freebsd-current@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"