Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2027854ybz; Thu, 30 Apr 2020 09:34:36 -0700 (PDT) X-Google-Smtp-Source: APiQypIGMLrs9AkQIlGAQbCbiDE855yif+EaNszPQVf0h8JDeUgkLNmAJKNc0EwKn2PsRa9diaMz X-Received: by 2002:aa7:c3c2:: with SMTP id l2mr3602701edr.362.1588264476116; Thu, 30 Apr 2020 09:34:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588264476; cv=none; d=google.com; s=arc-20160816; b=lxWv/q17geEw6rRMAh6ZSJMMY5zjzAyd2vQmK/u5ayY/g3NY/KCyOlbG/qOarZtMSB rNeQskDZWOD/1KD42Q14wT7bQ2QjfKpePDLZWrmGcgDZOOXqtW7DOr9dd107cdSaGIIs P52cWYRFu83Dr2GnyWPKMZ7vpjS56NG+zpHcUcabDGOQPqzEXgUtt8ZaRmS6oDrszukH 4cLWXASJhk+v9ZhJC828KigRBpEvIDfyH9+Okqn3wfSXiu9m98eW4o4tQ5ZJPohJvQav zRpjBOaM6KYro69DRQuAX+4doK/aaYHoNqdj2K6QxwQRdfhRE86d1KrkeT70KmZt4x6I SHjQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:subject:cc:to:from:date; bh=UbBslKpJTHuCRM/oX3ESxBYFit1pxKjEJ452facosuM=; b=OG/NHhPS7/xcHmT/As6Lz7cLjROEp4DKrTN64RbXGJ5TEDVzvrKeQnZ1u66ZPtPCCv VxAIqf60HzBQlw8Iguk7dY0YTA/Wy4rAk0avpioEbtTAFTjRd1xj99rPRRE89GsjrIqC CAwzLdOWxiUH2srO9JTS6RkcToTyu6oUrA/hLetzincc80uJKYktgzUYlrsOk70zGYvL LAXNBmZnXHpX+0bhas43hxBYwkmBx+x9weosRu4cof8NSMJ+62LUEemfuy/S4vFx9gcG LCCfTmYEvGsps963u8b/aMeVZgFLLG89lJEElVnxPVvhAt7DTDXn3TOF5X2uifri3WLJ bWEw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y19si71621ejp.397.2020.04.30.09.34.12; Thu, 30 Apr 2020 09:34:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726745AbgD3Qai (ORCPT + 99 others); Thu, 30 Apr 2020 12:30:38 -0400 Received: from mail.kernel.org ([198.145.29.99]:37372 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726130AbgD3Qah (ORCPT ); Thu, 30 Apr 2020 12:30:37 -0400 Received: from gandalf.local.home (cpe-66-24-58-225.stny.res.rr.com [66.24.58.225]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 260F92070B; Thu, 30 Apr 2020 16:30:36 +0000 (UTC) Date: Thu, 30 Apr 2020 12:30:34 -0400 From: Steven Rostedt To: Mathieu Desnoyers Cc: Joerg Roedel , linux-kernel , Ingo Molnar , Thomas Gleixner , Peter Zijlstra , Borislav Petkov , Andrew Morton , Shile Zhang , Andy Lutomirski , "Rafael J. Wysocki" , Dave Hansen , Tzvetomir Stoyanov Subject: Re: [RFC][PATCH] x86/mm: Sync all vmalloc mappings before text_poke() Message-ID: <20200430123034.5705cd47@gandalf.local.home> In-Reply-To: <947455570.77870.1588263502669.JavaMail.zimbra@efficios.com> References: <20200429054857.66e8e333@oasis.local.home> <20200429105941.GQ30814@suse.de> <20200429082854.6e1796b5@oasis.local.home> <20200429100731.201312a9@gandalf.local.home> <20200430141120.GA8135@suse.de> <20200430145057.GB8135@suse.de> <2026887875.77814.1588260015439.JavaMail.zimbra@efficios.com> <20200430121627.682061e2@gandalf.local.home> <947455570.77870.1588263502669.JavaMail.zimbra@efficios.com> X-Mailer: Claws Mail 3.17.3 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 30 Apr 2020 12:18:22 -0400 (EDT) Mathieu Desnoyers wrote: > ----- On Apr 30, 2020, at 12:16 PM, rostedt rostedt@goodmis.org wrote: > > > On Thu, 30 Apr 2020 11:20:15 -0400 (EDT) > > Mathieu Desnoyers wrote: > > > >> > The right fix is to call vmalloc_sync_mappings() right after allocating > >> > tracing or perf buffers via v[zm]alloc(). > >> > >> Either right after allocation, or right before making the vmalloc'd data > >> structure visible to the instrumentation. In the case of the pid filter, > >> that would be the rcu_assign_pointer() which publishes the new pid filter > >> table. > >> > >> As long as vmalloc_sync_mappings() is performed somewhere *between* allocation > >> and publishing the pointer for instrumentation, it's fine. > >> > >> I'll let Steven decide on which approach works best for him. > > > > As stated in the other email, I don't see it having anything to do with > > vmalloc, but with the per_cpu() allocation. I'll test this theory out by > > not even allocating the pid masks and touching the per cpu data at every > > event to see if it crashes. > > As pointed out in my other email, per-cpu allocation uses vmalloc when > size > PAGE_SIZE. And as I replied: buf->data = alloc_percpu(struct trace_array_cpu); struct trace_array_cpu { atomic_t disabled; void *buffer_page; /* ring buffer spare */ unsigned long entries; unsigned long saved_latency; unsigned long critical_start; unsigned long critical_end; unsigned long critical_sequence; unsigned long nice; unsigned long policy; unsigned long rt_priority; unsigned long skipped_entries; u64 preempt_timestamp; pid_t pid; kuid_t uid; char comm[TASK_COMM_LEN]; bool ignore_pid; #ifdef CONFIG_FUNCTION_TRACER bool ftrace_ignore_pid; #endif }; That doesn't look bigger than PAGE_SIZE to me. -- Steve