From owner-freebsd-stable@FreeBSD.ORG Wed Aug 1 14:05:05 2012 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B22C4106566C; Wed, 1 Aug 2012 14:05:05 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-lb0-f182.google.com (mail-lb0-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id C895C8FC0A; Wed, 1 Aug 2012 14:05:04 +0000 (UTC) Received: by lbbgm13 with SMTP id gm13so58555lbb.13 for ; Wed, 01 Aug 2012 07:05:03 -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=mur4RyXZr7Zk5aTrmbQbhMXD7InMXZi3LnlmFAXexcg=; b=hBO02DQE1UeGJnIDoPhszjym9qK0We3w0bCX//yub/SfByWm+OuziMY0T7NkPUKnRK Cy4mNRP92wd5D/F0PV7AdwHtidXKo1YuNAsteJLt0okFKkITixnOZl6jgh8wIkniel9Q pfjMXlwm3rrSrj4ZkdwoGiIe6oK8F6z09p+jp8H2B02DKJ/VVWn/TtykyaC9z5KcAmlj 5s628YBqP53jgMBAMUOb+F7/ekSqTP7I4LvJV0UsXVPDTbRzpchRUDAbcpUmH7ogbvfr pHZRyn14aOuv5opToJmug3dQHFPomJDaWwd+xyAgNl17X7sdcxoqtF3GdwfEGZSLDCNA TCvg== MIME-Version: 1.0 Received: by 10.152.103.11 with SMTP id fs11mr2301245lab.23.1343829903431; Wed, 01 Aug 2012 07:05:03 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.112.27.65 with HTTP; Wed, 1 Aug 2012 07:05:03 -0700 (PDT) In-Reply-To: <201208010853.11447.jhb@freebsd.org> References: <1342742294.2656.24.camel@powernoodle.corp.yahoo.com> <201207311634.24169.jhb@freebsd.org> <201208010853.11447.jhb@freebsd.org> Date: Wed, 1 Aug 2012 15:05:03 +0100 X-Google-Sender-Auth: ni_DUFxOPz4B8kR1t3M4qROMhQI Message-ID: From: Attilio Rao To: John Baldwin Content-Type: text/plain; charset=UTF-8 Cc: freebsd-stable@freebsd.org Subject: Re: [stable 9] panic on reboot: ipmi_wd_event() X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: attilio@FreeBSD.org List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Aug 2012 14:05:05 -0000 On 8/1/12, John Baldwin wrote: > On Tuesday, July 31, 2012 4:51:19 pm Attilio Rao wrote: >> On 7/31/12, John Baldwin wrote: >> > On Thursday, July 19, 2012 7:58:14 pm Sean Bruno wrote: >> >> Working on the Dell R420 today, got most of it working, even the >> >> broadcom ethernet cards! However, I get the following when I reboot >> >> the >> >> system: >> >> >> >> Syncing disks, vnodes remaining...4 Sleeping thread (tid 100107, pid >> >> 9) >> >> owns a non-sleepable lock >> >> KDB: stack backtrace of thread 100107: >> >> sched_switch() at sched_switch+0x19f >> >> mi_switch() at mi_switch+0x208 >> >> sleepq_switch() at sleepq_switch+0xfc >> >> sleepq_wait() at sleepq_wait+0x4d >> >> _sleep() at _sleep+0x3f6 >> >> ipmi_submit_driver_request() at ipmi_submit_driver_request+0x97 >> >> ipmi_set_watchdog() at ipmi_set_watchdog+0xb1 >> >> ipmi_wd_event() at ipmi_wd_event+0x8f >> >> kern_do_pat() at kern_do_pat+0x10f >> >> sched_sync() at sched_sync+0x1ea >> >> fork_exit() at fork_exit+0x135 >> >> fork_trampoline() at fork_trampoline+0xe >> > >> > Hmmm, the watchdog pat should probably happen without holding locks if >> > possible. This is related to the IPMI watchdog being special and >> > wanting >> > to schedule a thread to work. >> >> The watchdog pat without the locks is not easy to do because we >> register the watchdog callbacks in eventhandlers, which are indeed >> locked (and you may also end up racing against watchdog detach, if you >> don't use any lock at all). > > No, eventhandlers go through several hoops to not hold any locks while > the eventhandler functions are running. It seems in this case that a > lock is held in a higher layer (sched_sync()) and that is what I was > talking about. Yes, it is the 'sync_mtx' that is held. Something like this No, EVENTHANDLER_INVOKE() acquires eventhandler internal locks. Look at eventhandler_find_list() for details. Attilio -- Peace can only be achieved by understanding - A. Einstein