From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755256Ab2GIPSS (ORCPT ); Mon, 9 Jul 2012 11:18:18 -0400 Received: from mail-pb0-f46.google.com ([209.85.160.46]:42512 "EHLO mail-pb0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755055Ab2GIPSQ (ORCPT ); Mon, 9 Jul 2012 11:18:16 -0400 Message-ID: <4FFAF635.4020808@gmail.com> Date: Mon, 09 Jul 2012 09:18:13 -0600 From: David Ahern User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20120614 Thunderbird/13.0.1 MIME-Version: 1.0 To: Peter Zijlstra CC: Avi Kivity , Gleb Natapov , LKML Subject: Re: perf with precise attribute kills all KVM based VMs References: <4FFAE6D8.5050609@gmail.com> <20120709141904.GC7298@redhat.com> <1341843844.3462.75.camel@twins> <4FFAED16.7050204@redhat.com> <4FFAEF13.7010108@gmail.com> <1341845396.3462.81.camel@twins> <4FFAF042.1050609@gmail.com> <4FFAF19E.70507@gmail.com> In-Reply-To: <4FFAF19E.70507@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 7/9/12 8:58 AM, David Ahern wrote: > On 7/9/12 8:52 AM, David Ahern wrote: >> On 7/9/12 8:49 AM, Peter Zijlstra wrote: >>> On Mon, 2012-07-09 at 08:47 -0600, David Ahern wrote: >>>> >>>> I found this testing changes to perf-kvm, but found the problem extends >>>> to just perf-record. With perf-record exclude_guest defaults to 1. See >>>> tools/perf/util/util.c, event_attr_init(). >>> >>> You lost me there.. so perf-record defaults to exclude_guest=1 (which >>> would make the proposed patch I just send actually possible), but its >>> still going *bang* ? >>> >> >> >> I can do the formality of testing your proposed patch, but yes I think >> so. exclude_guest defaults to 1 because perf_guest defaults to false. > > > Let me dig for a few minutes. exclude_user is getting reset somewhere. > Setting a breakpoint on sys_perf_event_open and dumping the attribute: > > $1 = {type = 0, size = 80, config = 0, {sample_period = 4000, > sample_freq = 4000}, sample_type = 263, read_format = 7, > disabled = 1, inherit = 1, pinned = 0, exclusive = 0, exclude_user = > 0, exclude_kernel = 0, exclude_hv = 0, exclude_idle = > 0, mmap = 1, comm = 1, freq = 1, inherit_stat = 0, enable_on_exec = > 1, task = 0, watermark = 0, precise_ip = 1, > mmap_data = 0, sample_id_all = 1, exclude_host = 0, exclude_guest = > 0, __reserved_1 = 0, {wakeup_events = 0, > wakeup_watermark = 0}, bp_type = 0, {bp_addr = 0, config1 = 0}, > {bp_len = 0, config2 = 0}, branch_sample_type = 0} > > Offending function is parse_events_modifier(). It resets exclude_guest to 0. That's a separate thread/bug. Undoing that (hardcoding exclude_guest to 1) and verifying in gdb that it is set for all cpus: (gdb) p *attr $17 = {type = 0, size = 80, config = 0, {sample_period = 4000, sample_freq = 4000}, sample_type = 423, read_format = 7, disabled = 1, inherit = 1, pinned = 0, exclusive = 0, exclude_user = 0, exclude_kernel = 0, exclude_hv = 0, exclude_idle = 0, mmap = 1, comm = 1, freq = 1, inherit_stat = 0, enable_on_exec = 0, task = 0, watermark = 0, precise_ip = 1, mmap_data = 0, sample_id_all = 1, exclude_host = 0, exclude_guest = 1, __reserved_1 = 0, {wakeup_events = 0, wakeup_watermark = 0}, bp_type = 0, {bp_addr = 0, config1 = 0}, {bp_len = 0, config2 = 0}, branch_sample_type = 0} It still bombs and the VM dies. David