From owner-freebsd-current@FreeBSD.ORG Thu Nov 22 12:27:24 2007 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 D4F0B16A46B for ; Thu, 22 Nov 2007 12:27:24 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from nf-out-0910.google.com (nf-out-0910.google.com [64.233.182.189]) by mx1.freebsd.org (Postfix) with ESMTP id 5A24413C458 for ; Thu, 22 Nov 2007 12:27:24 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: by nf-out-0910.google.com with SMTP id b2so2503537nfb for ; Thu, 22 Nov 2007 04:27:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; bh=6t85WRt0oZBGpEDAJzESpMzJS5v9VpHTQ1Vyf4Czmx0=; b=hdOjtBEI0CZUb9VpYuecXXwG+uBQ2vkw7iqpQtXkOy2jyX7wOctEL5LmQZs7sdmE3ooWiqkmc2IcGuHkxFkjjtRIpNjcuaEp5cExqmyqJvaKjYm1f0hcTW7JeDVSoVLpnroe/Fi0YSfZ9BWzgTVP+KHOAjLIVxF+HtuYr/jMDJw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:sender:to:subject:cc:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references:x-google-sender-auth; b=ccx1h3ou68SCsAWgH+cEQesKcIDU9f2mncombAYleJWE75FIgK6auxW9DeDPNeVCQps5c12DVf8+gmSU7HsZ8Hu2/VHvtTkgAFI/RQVIuD58pPh4j+bH84ZekbbFmqMQ+k/NOkmgOqpQMiX+UsyEt+EqByD5N6AvTJaxO3bF1PU= Received: by 10.86.49.13 with SMTP id w13mr8401683fgw.1195734436196; Thu, 22 Nov 2007 04:27:16 -0800 (PST) Received: by 10.86.28.19 with HTTP; Thu, 22 Nov 2007 04:27:16 -0800 (PST) Message-ID: <3bbf2fe10711220427s38561159k4879d0c792d09694@mail.gmail.com> Date: Thu, 22 Nov 2007 13:27:16 +0100 From: "Attilio Rao" Sender: asmrookie@gmail.com To: "Benjamin Close" In-Reply-To: <3bbf2fe10711220408t30136430s15fdba0ebcbbfa66@mail.gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <4744EBA4.7020209@clearchain.com> <3bbf2fe10711220408t30136430s15fdba0ebcbbfa66@mail.gmail.com> X-Google-Sender-Auth: 5b3a961350231eb8 Cc: Jack F Vogel , freebsd-current@freebsd.org Subject: Re: em0 panic: mutex em0 not owned 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, 22 Nov 2007 12:27:24 -0000 2007/11/22, Attilio Rao : > 2007/11/22, Benjamin Close : > > Hi Folks, > > With a recent current I'm now getting panics when em0 tries to come up: > > > > panic: mutex em0 not owned at ../../../kern/kern_mutex.c:144 > > > > _mtx_assert() + 0xdc > > _callout_stop_safe()+0x5d > > em_stop() + 0x50 (if_em.c:2546) > > em_init_locked()+0x47 (if_em.c:1256) > > em_ioctl()+0x466 > > ifhwioctl() + 0x75f > > ifioctl() +0xb0 > > kern_ioctl() + 0xa3 > > > > This is even after atillos, latest patch. > > Yes, this is a race access to callout_stop() in em driver. > callout_stop() needs to be called with callout-specific lock held > otherwise you can get a race and this seems not happening. I just > inserted this assertions in order to catch bugs like these. > I have no time to double-check it, can you do? Ok, basically em_stop() both wants to stop core callout and tx channel callout but it only holds core lock. It needs to hold both in order to stop both. As I'm not sure about lock ordering there I can't produce a patch now so the ball is in jfv@ court (CC'ed). Thanks, Attilio -- Peace can only be achieved by understanding - A. Einstein