From patchwork Wed Sep 30 22:49:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Song Liu X-Patchwork-Id: 11810449 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A77086CA for ; Wed, 30 Sep 2020 22:49:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8630D2176B for ; Wed, 30 Sep 2020 22:49:57 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=fb.com header.i=@fb.com header.b="TwnkyQHC" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731838AbgI3Wt4 (ORCPT ); Wed, 30 Sep 2020 18:49:56 -0400 Received: from mx0b-00082601.pphosted.com ([67.231.153.30]:32222 "EHLO mx0b-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731828AbgI3Wtz (ORCPT ); Wed, 30 Sep 2020 18:49:55 -0400 Received: from pps.filterd (m0148460.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 08UMnpX8001668 for ; Wed, 30 Sep 2020 15:49:54 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding : content-type; s=facebook; bh=5xIBFdyzJm/dsFEH5KDFJM344HtZUaE4KWCV2yVaNzQ=; b=TwnkyQHCfUdRADpUYoahv1yURgf8lZ/5spHEzijCtbwaEVDwDUMJjIOP8bY4USWF3AcM jCSe+MYIy39YCKB/lmQUtQwNEppVuciF1p+4OwcL22DxnSEjlYaZEblkRV8iE5Fqx52r EB3nM4Cu+F33kHdZy8SfeN2vxTCNJhDG6j8= Received: from mail.thefacebook.com ([163.114.132.120]) by mx0a-00082601.pphosted.com with ESMTP id 33vvgrjfw3-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Wed, 30 Sep 2020 15:49:54 -0700 Received: from intmgw005.03.ash8.facebook.com (2620:10d:c085:208::f) by mail.thefacebook.com (2620:10d:c085:11d::4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1979.3; Wed, 30 Sep 2020 15:49:52 -0700 Received: by devbig006.ftw2.facebook.com (Postfix, from userid 4523) id 94DEB62E586A; Wed, 30 Sep 2020 15:49:50 -0700 (PDT) From: Song Liu To: , CC: , , , , , Song Liu Subject: [PATCH v5 bpf-next 0/2] introduce BPF_F_PRESERVE_ELEMS Date: Wed, 30 Sep 2020 15:49:25 -0700 Message-ID: <20200930224927.1936644-1-songliubraving@fb.com> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235,18.0.687 definitions=2020-09-30_13:2020-09-30,2020-09-30 signatures=0 X-Proofpoint-Spam-Details: rule=fb_default_notspam policy=fb_default score=0 priorityscore=1501 clxscore=1015 phishscore=0 mlxscore=0 bulkscore=0 spamscore=0 impostorscore=0 lowpriorityscore=0 adultscore=0 mlxlogscore=959 suspectscore=2 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2009300184 X-FB-Internal: deliver Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org This set introduces BPF_F_PRESERVE_ELEMS to perf event array for better sharing of perf event. By default, perf event array removes the perf event when the map fd used to add the event is closed. With BPF_F_PRESERVE_ELEMS set, however, the perf event will stay in the array until it is removed, or the map is closed. --- Changes v3 => v5: 1. Clean up in selftest. (Alexei) Changes v2 => v3: 1. Move perf_event_fd_array_map_free() to avoid unnecessary forward declaration. (Daniel) Changes v1 => v2: 1. Rename the flag as BPF_F_PRESERVE_ELEMS. (Alexei, Daniel) 2. Simplify the code and selftest. (Daniel, Alexei) Song Liu (2): bpf: introduce BPF_F_PRESERVE_ELEMS for perf event array selftests/bpf: add tests for BPF_F_PRESERVE_ELEMS include/uapi/linux/bpf.h | 3 + kernel/bpf/arraymap.c | 19 +++++- tools/include/uapi/linux/bpf.h | 3 + .../bpf/prog_tests/pe_preserve_elems.c | 66 +++++++++++++++++++ .../bpf/progs/test_pe_preserve_elems.c | 42 ++++++++++++ 5 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/pe_preserve_elems.c create mode 100644 tools/testing/selftests/bpf/progs/test_pe_preserve_elems.c -- 2.24.1