Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp452345pxb; Sat, 6 Mar 2021 05:18:41 -0800 (PST) X-Google-Smtp-Source: ABdhPJxd+zXBAHbFr5DkquwT9XhOpQThQONgK5GB+8mbK0cDSGnTQs2fp5HGM9jtVkLE/bHjppyU X-Received: by 2002:a17:906:c1ca:: with SMTP id bw10mr6972005ejb.510.1615036721678; Sat, 06 Mar 2021 05:18:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1615036721; cv=none; d=google.com; s=arc-20160816; b=0yypWuqBycCkt0pJl0dORTIRm42EgWKtDsh/w1aw4Zur/h0nozHsPE4dKeMIs5EOPC 0TLa2D1Fwdt/3jHCyJ7RFGxkEzBm+jI2450klvMkuBalN49jKpLwRt1YXNxAWSNbPI0r N3GUpnrhENMtpI1aipnALpPfcRMCLblcjTToO7+bQY/YGFRILYFDNT2UcBP1zQuGeVPc 44NuPvM14Lgv7yqvg3BnBZ9swJ3uE6RKAjMeG6ta1XUHuE8sKL444b4/fzqwJmK0Ca3V 0XcxA/YgzhQB/O70N8jpXFXKsbcryJ/3ve06gHB6QruV37vZaV7N7hLJVy71O2p7TPve 3qNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:sender:dkim-signature; bh=KFj0L+kuX3w0y3pNrmRfQeddr6KSngxQbB8TpEwmjoQ=; b=rtre9Az2nAWbxzqgtDGpgq+UvtTdz0TOvdnU9VaVVxrQC1GC2cyOF8u0Vd6sU8LU9s oBDB/A6BDPz9YumKNEx8La3k9W983JVf46v36S5MT9N5JWQ3VfbtPSXI4PhDtupnVB9I Qfsr1urEBkZyK4aE18V44264XZsWO7gAybcUN1Nz8K4A61vZIk3nrL6Yiejk1ebrPVaJ UTosrGehIYfmt9/doJrVWN5BjFzUsiSWJ+lXR1rPN625f6iJXGOu9GCgmfCI9lP+8qnY 5RDK617nx7rbwpGUAbNMYb6j5gKijGsfbsgzVQ7W36RG3bXtvNkXw53dsWmMIh6Aexo7 BSJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="Ax/NvCGb"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h20si2879336edb.417.2021.03.06.05.18.18; Sat, 06 Mar 2021 05:18:41 -0800 (PST) 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; dkim=pass header.i=@gmail.com header.s=20161025 header.b="Ax/NvCGb"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230227AbhCFNPS (ORCPT + 99 others); Sat, 6 Mar 2021 08:15:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44210 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229888AbhCFNOq (ORCPT ); Sat, 6 Mar 2021 08:14:46 -0500 Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CDE70C06174A for ; Sat, 6 Mar 2021 05:14:45 -0800 (PST) Received: by mail-ed1-x532.google.com with SMTP id d13so6978635edp.4 for ; Sat, 06 Mar 2021 05:14:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=KFj0L+kuX3w0y3pNrmRfQeddr6KSngxQbB8TpEwmjoQ=; b=Ax/NvCGbY0yonQSHVABoIBQcdkkiG2FNUNUP5ApnUqgfyM9ERleUWqbsW4vEj+y6vt 3979fgQN6G+1uX9AWcbgAepi0jCPV5mkv4FdXdWKE8pMdQK/cpstMprjRGV9fQe51gdJ hIDdHnZmfmFdJKL5vJDBZ3sS55NO1XheSW+L+KiKHWMiQ00NQ6ljZSq5Zw/lTa7fompV LxL+CxIpOS2Wb8696iLDaRiknDgZMYo456h5CZrr8s/Qbnh6y5uDfGAetrv/Q//2436e t43auWw5uR8mqk78b7KVmTC+M7iPHJhfpD0nNqLjL4diluTbahJ7OvqT56evChlqCePW RpvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:date:from:to:cc:subject:message-id :references:mime-version:content-disposition:in-reply-to; bh=KFj0L+kuX3w0y3pNrmRfQeddr6KSngxQbB8TpEwmjoQ=; b=uH9UI2ZZM5hzGpC9JA8uW//cUk9m4kOIjbXhFcGekPONxSuYG2Im44RsPOJY5qDZYa O6Dehg3ALIcHjaU30FeuxchR60s2wVhcWvFO/NwuJMIyMtnh+qCzat/lajsmfM9/w0Lv oLNIpTroc2jiTnq62km07akW4fhQiHs+umffKskZ4L70yHIIwkpzJkO4UA4x8kcuei41 hkmgdm89Y1aHpG/1XV1PyhoCYyTVavrddl69kVcFDk+fmkQfEBePJlflorWLOipaVwZD Z/tl34tEgiljocO1Su6rqIfoPjK4dyUGKt+D1tsyA7s4xmoCiuPufVGJ+jWQWfdJUhZV lMVQ== X-Gm-Message-State: AOAM530qyDvcZCCWfM3mODt/7KHscl5P5mTNdL78lehMtzqpHIkhZKeH 4QqJKQEWWrj3b3FqizE6tAc= X-Received: by 2002:a50:ed90:: with SMTP id h16mr7189109edr.101.1615036484433; Sat, 06 Mar 2021 05:14:44 -0800 (PST) Received: from gmail.com (54033286.catv.pool.telekom.hu. [84.3.50.134]) by smtp.gmail.com with ESMTPSA id i6sm3185499ejz.95.2021.03.06.05.14.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Mar 2021 05:14:44 -0800 (PST) Sender: Ingo Molnar Date: Sat, 6 Mar 2021 14:14:42 +0100 From: Ingo Molnar To: Alexei Starovoitov Cc: Peter Zijlstra , Linus Torvalds , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Linux Kernel Mailing List Subject: Re: "struct perf_sample_data" alignment Message-ID: <20210306131442.GA552533@gmail.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * Alexei Starovoitov wrote: > > This seems to be it... (completely untested) > > > > --- > > diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h > > index 3f7f89ea5e51..918a296d2ca2 100644 > > --- a/include/linux/perf_event.h > > +++ b/include/linux/perf_event.h > > @@ -1032,7 +1032,9 @@ struct perf_sample_data { > > u64 cgroup; > > u64 data_page_size; > > u64 code_page_size; > > -} ____cacheline_aligned; > > +}; > > + > > +typedef struct perf_sample_data perf_sample_data_t ____cacheline_aligned; > > > > /* default value for data source */ > > #define PERF_MEM_NA (PERF_MEM_S(OP, NA) |\ > > diff --git a/kernel/trace/bpf_trace.c b/kernel/trace/bpf_trace.c > > index b0c45d923f0f..f32c623abef6 100644 > > --- a/kernel/trace/bpf_trace.c > > +++ b/kernel/trace/bpf_trace.c > > @@ -923,7 +923,7 @@ __bpf_perf_event_output(struct pt_regs *regs, struct bpf_map *map, > > * bpf_perf_event_output > > */ > > struct bpf_trace_sample_data { > > - struct perf_sample_data sds[3]; > > + perf_sample_data_t sds[3]; > > bpf side doesn't care about about cacheline aligned. > No need to add new typedef just for that. So this structure is not supposed to be exposed to any ABI anywhere. I did a (non-exhaustive) search of tooling, and there doesn't appear to be any accidental exposure. The in-kernel ABI interaction appears to be the following: - In __perf_event_header_size() we only use fields within perf_sample_data to size the header. Alignment won't change any of the output. - Ditto in perf_event__id_header_size(). I.e. I think we should just zap it per the patch below (untested). Thanks, Ingo ============> diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 3f7f89ea5e51..d75e03ff31ea 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -1032,7 +1032,7 @@ struct perf_sample_data { u64 cgroup; u64 data_page_size; u64 code_page_size; -} ____cacheline_aligned; +}; /* default value for data source */ #define PERF_MEM_NA (PERF_MEM_S(OP, NA) |\