From owner-freebsd-hackers@FreeBSD.ORG Wed Sep 1 10:44:36 2010 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EE2B41065675; Wed, 1 Sep 2010 10:44:36 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 46C628FC22; Wed, 1 Sep 2010 10:44:36 +0000 (UTC) Received: by bwz20 with SMTP id 20so6189435bwz.13 for ; Wed, 01 Sep 2010 03:44:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:sender:message-id:date:from :user-agent:mime-version:to:cc:subject:references:in-reply-to :x-enigmail-version:content-type:content-transfer-encoding; bh=WgJPjCVWXQFIX02uszys1SuSN6hSQlybkrsq0uYo+i8=; b=Cs5YwvKVv8rvCjIIBQoA0wUuroG4gwJ3a3XjB0d38YRRp/58AhZdkPMJ8E6W6zV6O6 vngAikdgaJjc6ZFlJIHK3KJUgcK5H0KucbKzZW1WYr6u7zPxuydokfqxYFDQ8nV7+gRT kd5+W/JvFw7H/q/42bxSnp04G1gU/VryQzdaE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; b=MFSRN/JqUGU1nx9ZH9R5d+Fpz3glHaUwFWyAdmLsAvecbY//cODWw296kUL8CDOPNA VPEtEPetDUvl/LmiQ2MDIdY+JVAsTqrwx2EUnvYpeNOD6Paea6/4FHIYOKfjMtgekyqq 1XewSVm4HQVQ8dZXh54dA7PMpyxi2f5UCEtXs= Received: by 10.204.178.67 with SMTP id bl3mr5259532bkb.161.1283337875236; Wed, 01 Sep 2010 03:44:35 -0700 (PDT) Received: from mavbook2.mavhome.dp.ua (pc.mavhome.dp.ua [212.86.226.226]) by mx.google.com with ESMTPS id bq20sm7117521bkb.16.2010.09.01.03.44.34 (version=SSLv3 cipher=RC4-MD5); Wed, 01 Sep 2010 03:44:34 -0700 (PDT) Sender: Alexander Motin Message-ID: <4C7E2E8A.3030709@FreeBSD.org> Date: Wed, 01 Sep 2010 13:44:26 +0300 From: Alexander Motin User-Agent: Thunderbird 2.0.0.23 (X11/20091212) MIME-Version: 1.0 To: gljennjohn@googlemail.com References: <4C7A5C28.1090904@FreeBSD.org> <20100830110932.23425932@ernst.jennejohn.org> <4C7B82EA.2040104@FreeBSD.org> <20100830121148.11926306@ernst.jennejohn.org> <20100831102918.4f5404cc@ernst.jennejohn.org> <4C7CC1DE.1080907@FreeBSD.org> In-Reply-To: <4C7CC1DE.1080907@FreeBSD.org> X-Enigmail-Version: 0.96.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org, FreeBSD-Current Subject: Re: One-shot-oriented event timers management X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Sep 2010 10:44:37 -0000 Alexander Motin wrote: > Gary Jennejohn wrote: >> On Mon, 30 Aug 2010 12:11:48 +0200 >> OK, this is purely anecdotal, but I'll report it anyway. >> >> I was running pretty much all day with the patched kernel and things >> seemed to be working quite well. >> >> Then, after about 7 hours, everything just stopped. >> >> I had gkrellm running and noticed that it updated only when I moved the >> mouse. >> >> This behavior leads me to suspect that the timer interrupts had stopped >> working and the mouse interrupts were causing processes to get scheduled. >> >> Unfortunately, I wasn't able to get a dump and had to hit reset to >> recover. >> >> As I wrote above, this is only anecdotal, but I've never seen anything >> like this before applying the patches. > > One-shot timers have one weak side: if for some reason timer interrupt > getting lost -- there will be nobody to reload the timer. Such cases > probably will require special attention. Same funny situation with > mouse-driven scheduler happens also if LAPIC timer dies when pre-Core-iX > CPU goes to C3 state. I have reproduced the problem locally. It happens more often when ticks are not stopped on idle, like in your original case (or if explicitly enabled by kern.eventtimer.idletick sysctl). I've made some changes to HPET driver, which, I hope, should fix interrupt losses there. Updated patch: http://people.freebsd.org/~mav/timers_oneshot6.patch Patch also includes some optimizations to reduce lock contention. Thanks for testing. -- Alexander Motin