From owner-freebsd-stable@FreeBSD.ORG Thu Oct 18 09:45:08 2012 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D6D67A5E for ; Thu, 18 Oct 2012 09:45:08 +0000 (UTC) (envelope-from citrin@citrin.ru) Received: from mail-chaos.rambler.ru (mail-chaos.rambler.ru [81.19.68.130]) by mx1.freebsd.org (Postfix) with ESMTP id 84FFB8FC0C for ; Thu, 18 Oct 2012 09:45:07 +0000 (UTC) Received: from citrin.office.vega.ru (office-nat.spylog.net [193.169.234.6]) (Authenticated sender: citrin@citrin.ru) by mail-chaos.rambler.ru (Postfix) with ESMTPSA id 72C0017026 for ; Thu, 18 Oct 2012 13:44:59 +0400 (MSD) Message-ID: <507FCF9B.9080104@citrin.ru> Date: Thu, 18 Oct 2012 13:44:59 +0400 From: Anton Yuzhaninov User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:6.0.2) Gecko/20110922 Thunderbird/6.0.2 MIME-Version: 1.0 To: freebsd-stable@freebsd.org Subject: Re: Problem with IPMI KCS driver References: <503DE2AB.6030702@citrin.ru> <201208290825.44198.jhb@freebsd.org> <506573DD.2030808@citrin.ru> <201209280848.35380.jhb@freebsd.org> In-Reply-To: <201209280848.35380.jhb@freebsd.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Oct 2012 09:45:08 -0000 On 28.09.2012 16:48, John Baldwin wrote: >> kcs_wait_for_obf() at kcs_wait_for_obf+0xb6 point to >> > /usr/src/sys/dev/ipmi/ipmi_kcs.c:94 >> > >> > 91 while (ticks - start< MAX_TIMEOUT&& >> > 92 !(status& KCS_STATUS_OBF)) { >> > 93 DELAY(100); >> > 94 status = INB(sc, KCS_CTL_STS); >> > 95 } > Hummm. I'm a bit out of ideas then. Even the volatile change is a bug that > could have been confirmed (to see if volatile was preventing the compiler > from caching the value of 'ticks') by examining the assembly. > > Well, maybe this. This just avoids using 'ticks' altogether and depends on > DELAY(100) doing what it says: New patch also don't solve my problem. My guess was wrong. Loop in kcs_wait_for_obf() is not endless, at least with last patch. Whole function called in some loop, but because loop in kcs_wait_for_obf() takes much CPU time, backtrace always point to loop kcs_wait_for_obf(). This problem need further investigation. -- Anton Yuzhaninov