From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26436 invoked by alias); 27 Feb 2006 19:16:16 -0000 Received: (qmail 26428 invoked by uid 22791); 27 Feb 2006 19:16:16 -0000 X-Spam-Status: No, hits=-2.4 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS,SPF_PASS,SUBJ_HAS_UNIQ_ID X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 27 Feb 2006 19:16:15 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11/8.12.11) with ESMTP id k1RJGCSe031885 for ; Mon, 27 Feb 2006 14:16:12 -0500 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id k1RJGC118940; Mon, 27 Feb 2006 14:16:12 -0500 Received: from vpn83-158.boston.redhat.com (vpn83-158.boston.redhat.com [172.16.83.158]) by pobox.corp.redhat.com (8.12.8/8.12.8) with ESMTP id k1RJGANr012405; Mon, 27 Feb 2006 14:16:11 -0500 Subject: Re: disabled interrupts (Was bug #2293 From: Martin Hunt To: "Frank Ch. Eigler" Cc: systemtap@sources.redhat.com In-Reply-To: References: <20060207171449.2293.fche@redhat.com> <20060227173251.10706.qmail@sourceware.org> Content-Type: text/plain Organization: Red Hat Inc. Date: Mon, 27 Feb 2006 19:16:00 -0000 Message-Id: <1141067769.4794.5.camel@dragon> Mime-Version: 1.0 X-Mailer: Evolution 2.2.3 (2.2.3-3.fc4) Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org X-SW-Source: 2006-q1/txt/msg00649.txt.bz2 On Mon, 2006-02-27 at 13:56 -0500, Frank Ch. Eigler wrote: > hunt wrote: > > > [...] You have now disabled interrupts, so the data [produced by end > > probes] fills the buffers but stpd cannot empty them. > > How could stpd have emptied them before, in a reliable way? During an > "end" probe, or when? stpd can't run until the next timeslice; we > never cooperatively schedule out of a probe. The runtime calls probe_end(), and it used to know it was safe to sleep while in probe_end(). So if it attempted to send data and no buffers were available, it would sleep a bit (allowing stpd to precess the data) and retry (up to a limit), thus ensuring 100% of the data got sent. Other solutions require fixed limits on the amount of data that can be sent during probe end.