From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2072.outbound.protection.outlook.com [40.107.237.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6FCF3221D8E for ; Thu, 19 Dec 2024 10:56:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.72 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734605806; cv=fail; b=vATeCitjGGMp9FPMMgEf34oS3st9M1ERM0Sv/YwfpmRmozAGxHmUTfEjl7rMuiYQtuB/MqJZ+0c4mkskcNANW9OjROGNpzeSavQQC0xbqGYABpQ5T+yAOctEIIySUdR6ZeDPEuCClAF5SUK7GdTXxUFdJBIC95LJoWyThYRTWl8= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734605806; c=relaxed/simple; bh=tgGzBMgfc8WD40YX4Y7umU9VKiDB0dDT52EA1CPkZi0=; h=Content-Type:Message-ID:Date:Subject:To:Cc:References:From: In-Reply-To:MIME-Version; b=WXcORGs2Qi+E5McjH3jBzCWa6xH1qeIvMSWCe7xebDC4ejDdUmbr+YgOn7TGGWG4DlYN5PHqkpuUfue3N5zy99K0z0y2XFQT16w5A8AP9hIVWWmLChPm+H7vAhHwRbd9FlldS/IFYlaq85ZMFVssCf0HvRx6C7mhAKjidDnSMzQ= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com; spf=fail smtp.mailfrom=amd.com; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b=k24F0jg9; arc=fail smtp.client-ip=40.107.237.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=amd.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=amd.com header.i=@amd.com header.b="k24F0jg9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=it8p550y3W/25eEPEUsZJ7vJ6AAdspyqMphgh091HvK5ya4o5g9pP5OhdwWJ+U8wvcVbxXUgBG1ARAg9QiB3QQthj2h8py7l1AKb/dYFFzU5m+YoqTaUEp7gmDt77aTGwJfmRD5FvBtxpCUawkdX71CazK6a+yN1nHJJC/V368wf0woJPwbf2z6ffBGFVlBHXv2k31c/htvlFKvsH6aZIjvzajiBdx7zvDVV3KaFB6/qzSYKz0jfstiGRB5LcXq3EdrsHh7vCuKqB/tVN17V876ZqTpaBzjQCXALQ0ioxC59LmV6Rg+TPKRSBvCJlP5p4okLm9EN7eGH9dwk3GC6ZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=a31BegfpaJIkQtqT2FpHVB9Rk3Bnf8rRK69pQBEJJHc=; b=k7amtzlyWPC/vOtWDqVfwF3dIbM2I5plOpAZwYvtIs62axcNsHbpb5/O3MeaCjmezEP3zVUbKBSuGi0crUdX7ZUyxJcegS3U8N92pUycWhx2U3KnNLHNty4AZUljnn5RiQUmALN+1EiRQHVH4FRAD1ihfa40UgS8Sx/ESi363fKvGzUsH8UQHOxzYsyFuohbyR4ZaS6CumVZBaNNNC9e3ia6MnW8bGJAaV+mYtjivImBYM2cIIHN7aSlIQ3NKOAKwkYPjYYyLYbzW72KZdF0n7aexh+z1w7LY4A8NAE/ucfUUdQYQTGHg9/ZvXut9HDA3/N1mzNyuYyaQDX4tDlMqg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a31BegfpaJIkQtqT2FpHVB9Rk3Bnf8rRK69pQBEJJHc=; b=k24F0jg9JcMA6dSt/0Qh3TyGCQlNnq7ey76VvoaYTTAfprYKF8llVGfvmXFeNRfII/2iRQuh0Z4yK4OR8h4b/A81UShgpNPmytlf8ZSNBnGJzfo7TNIl7DYu6LV9NBJ46qYaLJKHpr8DKl4gQvfdv2t8wm1Q88kttf+Gmx6ymlQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from PH7PR12MB6588.namprd12.prod.outlook.com (2603:10b6:510:210::10) by SJ0PR12MB7083.namprd12.prod.outlook.com (2603:10b6:a03:4ae::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8272.13; Thu, 19 Dec 2024 10:56:41 +0000 Received: from PH7PR12MB6588.namprd12.prod.outlook.com ([fe80::5e9c:4117:b5e0:cf39]) by PH7PR12MB6588.namprd12.prod.outlook.com ([fe80::5e9c:4117:b5e0:cf39%5]) with mapi id 15.20.8272.005; Thu, 19 Dec 2024 10:56:41 +0000 Content-Type: multipart/mixed; boundary="------------5hUKka22XUJYNA5pJHtcFEh4" Message-ID: <9d105236-a591-4f6e-84db-75e5d1d6fe36@amd.com> Date: Thu, 19 Dec 2024 16:26:31 +0530 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 19/19] perf: Make perf_pmu_unregister() useable To: Peter Zijlstra Cc: "mingo@kernel.org" , "lucas.demarchi@intel.com" , "linux-kernel@vger.kernel.org" , "willy@infradead.org" , "acme@kernel.org" , "namhyung@kernel.org" , "mark.rutland@arm.com" , "alexander.shishkin@linux.intel.com" , "jolsa@kernel.org" , "irogers@google.com" , "adrian.hunter@intel.com" , "kan.liang@linux.intel.com" , Ravi Bangoria References: <20241104133909.669111662@infradead.org> <20241104135519.715883982@infradead.org> <20241217091216.GK35539@noisy.programming.kicks-ass.net> <20241217115219.GH12500@noisy.programming.kicks-ass.net> <8c31f7bd-871d-4a38-ad15-a16a116e1f39@amd.com> Content-Language: en-US From: Ravi Bangoria In-Reply-To: <8c31f7bd-871d-4a38-ad15-a16a116e1f39@amd.com> X-ClientProxiedBy: PN3PR01CA0192.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:be::16) To PH7PR12MB6588.namprd12.prod.outlook.com (2603:10b6:510:210::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH7PR12MB6588:EE_|SJ0PR12MB7083:EE_ X-MS-Office365-Filtering-Correlation-Id: c3355a78-e134-439d-d777-08dd201bd193 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?L1hURnc5aVRrUm5kV0JWdUVxT1N3V0tLZW95R3hXYnNiSUU2eTh5L2o2UGFQ?= =?utf-8?B?SDRwQyswREdLL0UyRlpwZnJJaDZCcS82UG9KTWxzbktiYWJuMWQzeW05UUQy?= =?utf-8?B?bzFzRnJmS2hCekNxMFQ2MnF2VmtNMkhvSmpPSVF0NTNKNW40TlhkU2hNNGxQ?= =?utf-8?B?eUk0dVVXTmhiQUhXeUFpc0ljeDNoaitVOWkwMFNqVHhVc2YrU0VnSjE3Sjdz?= =?utf-8?B?b3NOWGFUZmIrOWpLK2JwNmQzZXVDSzVJSjgxM3lUNDJoWXUzZk45cHFoK0gw?= =?utf-8?B?RnVmNHRNUVdvSkNLZWxscWQxb3h6TTRGdzVidjdWMHRpa2hVZFMrWFRqb0hD?= =?utf-8?B?TWV2Mk0zR3hzY2JDRFVHODBhY1VSa09pUFJsOWUyTlZ6Qk52SlJWSTk1NnZV?= =?utf-8?B?dmtZVkdpZmpRUkM4cjR2TjJDbkxreWZzbWpSZHJSTkhSU0Noc1BBQnBUOTlU?= =?utf-8?B?RnNzY2dlalcyQ2h1ekIzWjdZN0preHRCYURmOG1nbkNWOEdOakNnY2FkMU40?= =?utf-8?B?UXBlanh5SUtrWVd2ZnNVVFhFa2NCNzI1Q1RUbS85UWJzekFxdDVySXhXYW56?= =?utf-8?B?djNZdG9ZRTZQZWJVMWZhQWFLOGUrdXlFU0RYdVNsQlQySEZsWTVScHBjdjBW?= =?utf-8?B?S3ZKR2ZMbHRnK3FyQitDdHZjTmE5bUljdGt1d3NzdmVINlBWalN0UnZ0U1RY?= =?utf-8?B?Q3dYallVMkk2NElNUVJZQzFoZHQxYW5WNmE1Qi9VSmV4bjhGbDJud2REclFL?= =?utf-8?B?a3JvYUR0dlI0eTNoNFBFanVxMk45a3Yxb3FmQW5wV092MkNEeitzeTVjWHc4?= =?utf-8?B?MlI4MEg1Nzc2U3JXU3RYM1RmeDU3Mi83NHBEYmM0UDNMVmt0VXFsc1Jhc2h6?= =?utf-8?B?T2JVaTlTTHRBSHk2RDhiTEsvWWUxckJxSmZ4QkluRk1xZmNSTjZwUWYyMGs4?= =?utf-8?B?azVRUmxoOGxqQ1JHbzF1NDRlMlZCeWhZT05nbWtKVG5JRUtqNkh1UGo3cFBZ?= =?utf-8?B?QkxjbGF0Rlp1N1BEZGV5eExWVHlrckR3UDdFQ0JJUlNpcmpIL2JmVTVlby9O?= =?utf-8?B?RlhLQTBreGVtamVrUWF1Vlczek1RN29ZS3lXYmxzYnNpckhiOGt3RGsxaUhv?= =?utf-8?B?VlhiYXAxZVNmTnpJN3l0ZnVCOFJqbnJwcjIwcWdoaWppbVRrSjAvVkFIcHdV?= =?utf-8?B?aERTWTRkK3BOVjV2djVyZUd6Tk16Y2tXWmZUdDJ5dGNKd3UrUjBXUzVCUjkx?= =?utf-8?B?cTVBY2xNTmVHNFoyK2poYVBrakJ5MGdwUy83VVoyZGREUEVaR2VXa0ptcEI4?= =?utf-8?B?YmJGbW4yTVZKQmw3QmFiMzk1N1NZZm83V0l6TDduODlhUFltZW94RlkyYWlI?= =?utf-8?B?VzB4Ykp1azZaNW51MFdkQWdCcTk1MXE3ZTNJVk5GdU1Gb29kWXJDTmtrVW8x?= =?utf-8?B?bmJRc2d4eVFkKzIyb240WVJFeXBjajRQZ3N3MlZxRWUrcEhkM1pwQlpETGFV?= =?utf-8?B?ZldqdzFtYWJ1Ky9yNGpFZ3B3NUJZeVBhemk3SDRIV1BFSHAwbkdzTmFYcmZt?= =?utf-8?B?dkRqWXdmYjRQcmkzK3pRbG42Zk9kQVQzYk9WdkQ2N2JRWmIyNUVwVUVLSXFs?= =?utf-8?B?N2l0U0tFSmJJWXNsSDMxR3pmUEJtRzZFZjhGditFZWptMDhpZm8wcGh1WFFy?= =?utf-8?B?cy8raUU0TkQ2UW1tQjlpQmdrbDdRdGcwaFRVTXJ4dWZYNTR5eUhSNVUyaVNF?= =?utf-8?B?a3dDbWdyakhmeUloUjQzeTdpbHVta1dqT2NIYUdXZWtrYXBnYlhmaFBKaTJJ?= =?utf-8?B?NDRTMnIzangzOWcyeENPSytSczBaMzFSTDVadWMrZDJpaEtzZFFLaHVoU3Ey?= =?utf-8?Q?8+NzXHcTSqgfn?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH7PR12MB6588.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VDMxM0FhTGhPa1VySVdqQXhSUUl6czdvZFVoeXVsNjlLOWZ5czk3aXhjakJ4?= =?utf-8?B?dXpMVDRUNk5oVzN6ZFB6dzFNaWNsUlRXeUVrNGtVN281YUxsTXd3NFp0WUdZ?= =?utf-8?B?VWxIdEtocTNYdEpCRTk3QVZqZUNZOTNxRnZFWE81enhrUkw3UHhtU3VrM25R?= =?utf-8?B?YklEM2FrMUFtYk83bklWQ0kycTJORXJXRlowTHhQQlViRUh3T2RwZkVVNFVH?= =?utf-8?B?V203d29zdG1wTlJUS2lmTUJkM09tREpGNHlSY3hCQ05mSXZtdTJrQkhqSXBx?= =?utf-8?B?cW8rWFhzTjRmTi92QW9telhnek9ZS1Nlc1NSUTJNKzVFOTZBOGFaVzVraEpl?= =?utf-8?B?VGF5QU4rRVY3WjNlSVhMWWJLVGhRZytHRWZ5TzhQZnZ4Z00yM2NZMkwxNU0y?= =?utf-8?B?bVNwTDFGajgwZFMrWHNuMmh1dGJqMnpwR3lSOFRiMGg1V2hIVWxicUNkcFBl?= =?utf-8?B?T0lQWnZQellZT1pmc3BvQnAzeGJseWR5NFNkd2gvMDBYcFpLU0ZoNURpaGJG?= =?utf-8?B?YTF1VXowODhlYUVhQnJhWk5CNzdwZEVZRTdDNm9FR2FqaVlIaVVCYmVTamtl?= =?utf-8?B?NnBNWUpaa2xGQU8yM1IxUm5KUG1ESDYxbmNXQXN3d1lzYnF6czBFbVpEM1Jw?= =?utf-8?B?TjdFbzZvZThKOWNQcTdpWHE3eUppYjROcVB3Sm1VMkJJc3hIaURyWko0VUFE?= =?utf-8?B?UWVLNnRhWktMK0paaVZSeS9OWVlGZXBXZWJ1VzlrUS9rUE5qNEJkQlZIT3py?= =?utf-8?B?c3BvV05TK1F2eTZnVlhyWnpjWTVtalQ2ZFBMZmRzcVRFeVBhcElDU3VUQjI4?= =?utf-8?B?TEhURXI5ZzlkRnA2VVg4T0ZqNUVHTVZScC90bXdRWG5NZTNKeTFYRnRwV294?= =?utf-8?B?U0dCZExjNytRRGtaNWJKaVFnK1BPTEFNc3BWUm5OMDBiMC8zNGh4eWpoSnBm?= =?utf-8?B?NDhKYVJIbWhpakNJOC9jYUk3UnpPN1VmbmpCcEJiaEU1OFJUNUh0T2pkTlNN?= =?utf-8?B?MVR3cHJPR2NET1FRMTE4MnNiMGM3U3I3cDkxaHBWM1lQMWNObEQ4ZU42S2FG?= =?utf-8?B?ZCtoRlVqM0FhVjJ2SUtVd2dwMnhFSjZTWEg2YzlZMHV1S2FoaU9jLzZhUUE3?= =?utf-8?B?RmkvalhMTjZ3TDZPUWhRd1k5VVNWOVNGY0c3Nnd4d056QmVxR3JQMU53Mkxi?= =?utf-8?B?SW1qaExTM0t0NFJSNDVvTVBJb05yakwrT3lRQ2hVMXNnMEt5RnBYYVF6N0RW?= =?utf-8?B?RlFhSmJIcmFpb2pTdDlQaFFScVpHVHNwNEpFZmJrazZJTmNsZTFTVmZXRGpB?= =?utf-8?B?YUVVblV5bE5BclVTdXE5UTZBU0JVNUZYWWFQV3BoVGpZSXlydERua1B0aDRN?= =?utf-8?B?Mm84b2pzSkFyT09ndXF4TE9HSFF3UTEzZVRUcmp5Zy9zcTlDSFBCMSt3ZVIv?= =?utf-8?B?YnRqUGpSeW81WmMxL2dsbVA1M1hnaXQ5VkhDWVFUQnlJRlhxakZncWNtSVJM?= =?utf-8?B?QjRLRUtZRWgrNGVHMWhjWnMzZThSYWtvSVRpREFBbVliVzlELzZGYjFtMVp5?= =?utf-8?B?ajQ5d2hraDcvZTVmcjVVWmdycDRUbHNJWWk5QlRxRW9nR3BKR1g1ZHR3elNl?= =?utf-8?B?OXBtZUFDcUdQSUFDczNsVEdXOWZXSkxHNkRDRmdodjlsdU05Ny8rTVFRbjYw?= =?utf-8?B?OFVudzNORktYdGp5akxLZmNOcW5HOSs2ejhaSlhoVFhCRGcwNWhhenRqZ041?= =?utf-8?B?WXhwUnQwMmVodnhndkVNdkIzVktZYmEvMXJnS1Nzc1NmdWFnby9lYWVsOHow?= =?utf-8?B?aEVXdFpYRWRTeFFtS2FyeGd6a3A3OVdvLytuL25kUVZRbVUrTzcrWHdZcGp6?= =?utf-8?B?ZHl4bjl3RUpKN1lhYmNqdTJWU0Y2eW9VN3orVU85NitFYXVkc241S0ZEQUg0?= =?utf-8?B?Rm15OFVqY0VuYnVSUGtGeEFtQXNPQ3hWZEJERms0ZEE2NUl2ckxMdHBtTlVi?= =?utf-8?B?cHhGeHdDdUJjZlQ5K1gveUUzOSswZnBNK1VzSkszcm9KZXRtT0dvVW5wSDNG?= =?utf-8?B?Q1RlR3VlaWRIR2tDQjdpUjVhOWxKQ3VWckMwSEY2eFV6SXF4K2d3eVZ2Tm9O?= =?utf-8?Q?AFQlI4nILMkmbgnNyNIxU05qO?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3355a78-e134-439d-d777-08dd201bd193 X-MS-Exchange-CrossTenant-AuthSource: PH7PR12MB6588.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2024 10:56:41.0437 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Bd3XSAR3dAdlN7NKjldX2ZiqzNUX7iikgzAuWY4pWbDP3Tn27/gaBy1Uejz+CSjZ9iFdqHZPxLcYjq5wfEpRAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB7083 --------------5hUKka22XUJYNA5pJHtcFEh4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit >> How did you test; perf-fuzzer or something? > > Prepared a simple test that does pmu register(), unregister() and > "perf record" in parallel. It's quite dirty, I'll clean it up and > share it here. Attaching the testsuite here. It contains: - Kernel module that allows user to register and unregister a pmu - Shell script to that runs "perf record" on test pmu - README explains how to run the test Thanks, Ravi --------------5hUKka22XUJYNA5pJHtcFEh4 Content-Type: text/plain; charset=UTF-8; name="_tinypmu-u-register.sh" Content-Disposition: attachment; filename="_tinypmu-u-register.sh" Content-Transfer-Encoding: base64 IyEvYmluL2Jhc2gKIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAojIEF1dGhvcjog UmF2aSBCYW5nb3JpYSA8cmF2aS5iYW5nb3JpYUBhbWQuY29tPgoKIyBNdXN0IG5vdCBydW4gZGly ZWN0bHkuIFJ1biBpdCB2aWEgdGlueXBtdS11LnNoCgppZiBbICIkRVVJRCIgLW5lIDAgXTsgdGhl bgoJZWNobyAiUGxlYXNlIHJ1biBhcyByb290IgoJZXhpdApmaQoKd2hpbGUgdHJ1ZTsgZG8KCWVj aG8gMSA+IC9kZXYvdGlueXBtdV9yZWdpc3Rlcgpkb25lCg== --------------5hUKka22XUJYNA5pJHtcFEh4 Content-Type: text/plain; charset=UTF-8; name="_tinypmu-u-unregister.sh" Content-Disposition: attachment; filename="_tinypmu-u-unregister.sh" Content-Transfer-Encoding: base64 IyEvYmluL2Jhc2gKIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAojIEF1dGhvcjog UmF2aSBCYW5nb3JpYSA8cmF2aS5iYW5nb3JpYUBhbWQuY29tPgoKIyBNdXN0IG5vdCBydW4gZGly ZWN0bHkuIFJ1biBpdCB2aWEgdGlueXBtdS11LnNoCgppZiBbICIkRVVJRCIgLW5lIDAgXTsgdGhl bgoJZWNobyAiUGxlYXNlIHJ1biBhcyByb290IgoJZXhpdApmaQoKd2hpbGUgdHJ1ZTsgZG8KCWVj aG8gMSA+IC9kZXYvdGlueXBtdV91bnJlZ2lzdGVyCmRvbmUK --------------5hUKka22XUJYNA5pJHtcFEh4 Content-Type: text/plain; charset=UTF-8; name="Makefile" Content-Disposition: attachment; filename="Makefile" Content-Transfer-Encoding: base64 IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAojIEF1dGhvcjogUmF2aSBCYW5nb3Jp YSA8cmF2aS5iYW5nb3JpYUBhbWQuY29tPgoKb2JqLW0gOj0gdGlueXBtdS1rLm8KCktESVIgIDo9 IC9saWIvbW9kdWxlcy8kKHNoZWxsIHVuYW1lIC1yKS9idWlsZApQV0QgICA6PSAkKHNoZWxsIHB3 ZCkKCmRlZmF1bHQ6CgkkKE1BS0UpIC1DICQoS0RJUikgTT0kKFBXRCkgbW9kdWxlcwoKY2xlYW46 CglybSAtcmYgKi5vICoubW9kLmMgKi5tb2QgKi5rbyAqLm9yZGVyICouc3ltdmVycyBcLioubyBc Lioua28gXC4qLmNtZCBcLnRtcF92ZXJzaW9ucwo= --------------5hUKka22XUJYNA5pJHtcFEh4 Content-Type: text/plain; charset=UTF-8; name="README" Content-Disposition: attachment; filename="README" Content-Transfer-Encoding: base64 QSBzaW1wbGUgdGVzdHN1aXRlIHRvIHN0cmVzcyB0ZXN0IHBtdSByZWdpc3RlciAvIHVucmVnaXN0 ZXIgY29kZToKaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDI0MTEwNDEzMzkwOS42NjkxMTE2 NjJAaW5mcmFkZWFkLm9yZwoKQnVpbGQ6CgogICQgbWFrZQoKQ2xlYW46CgogICQgbWFrZSBjbGVh bgoKVGVzdCBwZXJmIHBtdSByZWdpc3RlciBhbmQgdW5yZWdpc3RlcjoKCiAgdGVybTF+JCB3aGls ZSB0cnVlOyBkbyBzdWRvIGJhc2ggdGlueXBtdS11LnNoOyBkb25lCgpUZXN0IGV2ZW50IGNyZWF0 aW9uIC8gbW1hcCAvIHVubWFwIC8gZXZlbnQgZGVsZXRpb24gZXRjIGFsb25nIHdpdGgKcG11IHJl Z2lzdGVyIC8gdW5yZWdpc3RlciwgKHJ1biB0aGlzIGluIHBhcmFsbGVsIHRvIGFib3ZlIGNvbW1h bmQpOgoKICB0ZXJtMn4kIHN1ZG8gYmFzaCB0aW55cG11LXUtZXZlbnRzLnNoCg== --------------5hUKka22XUJYNA5pJHtcFEh4 Content-Type: text/plain; charset=UTF-8; name="tinypmu-k.c" Content-Disposition: attachment; filename="tinypmu-k.c" Content-Transfer-Encoding: base64 Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKLyoKICogUHJvdmlkZSBhbiBpbnRl cmZhY2UgL2Rldi90aW55cG11X3JlZ2lzdGVyIGFuZCAvZGV2L3RpbnlwbXVfdW5yZWdpc3RlciB0 bwogKiBzdHJlc3MgdGVzdCBwZXJmX3BtdV9yZWdpc3RlcigpIGFuZCBwZXJmX3BtdV91bnJlZ2lz dGVyKCkgZnVuY3Rpb25zLgogKgogKiBBdXRob3I6IFJhdmkgQmFuZ29yaWEgPHJhdmkuYmFuZ29y aWFAYW1kLmNvbT4KICovCiNkZWZpbmUgcHJfZm10KGZtdCkgInRpbnlwbXU6ICIgZm10CgojaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+CiNpbmNsdWRlIDxsaW51eC9wZXJmX2V2ZW50Lmg+CiNpbmNs dWRlIDxsaW51eC9mcy5oPgojaW5jbHVkZSA8bGludXgvbWlzY2RldmljZS5oPgoKI2RlZmluZSBO Ul9USU5ZUE1VUwkJMQoKc3RhdGljIGludCB0aW55cG11X2V2ZW50X2luaXQoc3RydWN0IHBlcmZf ZXZlbnQgKmV2ZW50KQp7CglyZXR1cm4gMDsKfQoKc3RhdGljIHZvaWQgdGlueXBtdV9kZWwoc3Ry dWN0IHBlcmZfZXZlbnQgKmV2ZW50LCBpbnQgZmxhZ3MpCnsKfQoKc3RhdGljIGludCB0aW55cG11 X2FkZChzdHJ1Y3QgcGVyZl9ldmVudCAqZXZlbnQsIGludCBmbGFncykKewoJcmV0dXJuIDA7Cn0K CnN0YXRpYyB2b2lkIHRpbnlwbXVfc3RhcnQoc3RydWN0IHBlcmZfZXZlbnQgKmV2ZW50LCBpbnQg ZmxhZ3MpCnsKfQoKc3RhdGljIHZvaWQgdGlueXBtdV9zdG9wKHN0cnVjdCBwZXJmX2V2ZW50ICpl dmVudCwgaW50IGZsYWdzKQp7Cn0KCnN0YXRpYyB2b2lkIHRpbnlwbXVfcmVhZChzdHJ1Y3QgcGVy Zl9ldmVudCAqZXZlbnQpCnsKfQoKUE1VX0ZPUk1BVF9BVFRSKGV2ZW50LCAiY29uZmlnOjAtMjAi KTsKc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnRpbnlwbXVfZXZlbnRzX2F0dHJbXSA9IHsKCSZm b3JtYXRfYXR0cl9ldmVudC5hdHRyLAoJTlVMTCwKfTsKCnN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRl X2dyb3VwIHRpbnlwbXVfZXZlbnRzX2dyb3VwID0gewoJLm5hbWUgPSAiZm9ybWF0IiwKCS5hdHRy cyA9IHRpbnlwbXVfZXZlbnRzX2F0dHIsCn07CgpzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0 ZV9ncm91cCAqdGlueXBtdV9hdHRyX2dyb3Vwc1tdID0gewoJJnRpbnlwbXVfZXZlbnRzX2dyb3Vw LAoJTlVMTCwKfTsKCnN0YXRpYyBzdHJ1Y3QgcG11ICphbGxvY190aW55cG11KHZvaWQpCnsKCXN0 cnVjdCBwbXUgKnRpbnlwbXUgPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcG11KSwgR0ZQX0tFUk5F TCk7CglpZiAoIXRpbnlwbXUpCgkJcmV0dXJuIE5VTEw7CgoJdGlueXBtdS0+dGFza19jdHhfbnIg PSBwZXJmX2ludmFsaWRfY29udGV4dDsKCXRpbnlwbXUtPmV2ZW50X2luaXQgID0gdGlueXBtdV9l dmVudF9pbml0OwoJdGlueXBtdS0+YWRkICAgICAgICAgPSB0aW55cG11X2FkZDsKCXRpbnlwbXUt PmRlbCAgICAgICAgID0gdGlueXBtdV9kZWw7Cgl0aW55cG11LT5zdGFydCAgICAgICA9IHRpbnlw bXVfc3RhcnQ7Cgl0aW55cG11LT5zdG9wICAgICAgICA9IHRpbnlwbXVfc3RvcDsKCXRpbnlwbXUt PnJlYWQgICAgICAgID0gdGlueXBtdV9yZWFkOwoJdGlueXBtdS0+YXR0cl9ncm91cHMgPSB0aW55 cG11X2F0dHJfZ3JvdXBzOwoKCXJldHVybiB0aW55cG11Owp9CgpzdGF0aWMgREVGSU5FX01VVEVY KGxvY2spOwpzdGF0aWMgc3RydWN0IHBtdSAqdGlueXBtdXNbTlJfVElOWVBNVVNdOwoKc3RhdGlj IGNoYXIgcG11X25hbWVbTlJfVElOWVBNVVNdWzExXTsKCnN0YXRpYyB2b2lkIHJlZ2lzdGVyX3Bt dSh1bnNpZ25lZCBpbnQgaWR4KQp7CglzdHJ1Y3QgcG11ICp0ZW1wOwoJaW50IHJldDsKCglpZiAo aWR4ID49IE5SX1RJTllQTVVTKQoJCXJldHVybjsKCgl0ZW1wID0gYWxsb2NfdGlueXBtdSgpOwoJ aWYgKCF0ZW1wKSB7CgkJbXV0ZXhfdW5sb2NrKCZsb2NrKTsKCQlyZXR1cm47Cgl9CgoJbXV0ZXhf bG9jaygmbG9jayk7CglpZiAodGlueXBtdXNbaWR4XSkgewoJCW11dGV4X3VubG9jaygmbG9jayk7 CgkJa2ZyZWUodGVtcCk7CgkJcmV0dXJuOwoJfQoKCXJldCA9IHBlcmZfcG11X3JlZ2lzdGVyKHRl bXAsIHBtdV9uYW1lW2lkeF0sIC0xKTsKCWlmICghcmV0KSB7CgkJdGlueXBtdXNbaWR4XSA9IHRl bXA7CgkJbXV0ZXhfdW5sb2NrKCZsb2NrKTsKCQlyZXR1cm47Cgl9CgoJbXV0ZXhfdW5sb2NrKCZs b2NrKTsKCWtmcmVlKHRlbXApOwoJcmV0dXJuOwp9CgpzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyX3Bt dSh1bnNpZ25lZCBpbnQgaWR4KQp7CglzdHJ1Y3QgcG11ICp0ZW1wOwoKCWlmIChpZHggPj0gTlJf VElOWVBNVVMpCgkJcmV0dXJuOwoKCW11dGV4X2xvY2soJmxvY2spOwoJaWYgKCF0aW55cG11c1tp ZHhdKSB7CgkJbXV0ZXhfdW5sb2NrKCZsb2NrKTsKCQlyZXR1cm47Cgl9CgoJLyoKCSAqIE11c3Qg Y2FsbCBwZXJmX3BtdV91bnJlZ2lzdGVyKCkgaW5zaWRlIGF0b21pYyBzZWN0aW9uLiBJZiBJIHRy eQoJICogdG8gcmVkdWNlIGF0b21pYyBzZWN0aW9uIGJ5IHVzaW5nIHRlbXAgdG8gY2FjaGUgdGlu eXBtdXNbaWR4XQoJICogcGx1cyBjbGVhciB0aW55cG11c1tpZHhdIGFuZCBkbyB1bnJlZ2lzdGVy IGFmdGVyIG11dGV4X3VubG9jaygpLAoJICogcmVnaXN0ZXJfcG11KCkgd2lsbCBhc3N1bWUgbm8g cG11IGV4aXN0cyB3aXRoICJ0aW55cG11PGlkeD4iIG5hbWUKCSAqIHNpbmNlIHRpbnlwbXVzW2lk eF0gaXMgTlVMTCBhbmQgdHJ5IHRvIHJlZ2lzdGVyIG5ldyBwbXUgYWx0aG91Z2gKCSAqIHRoaXMg ZnVuY3Rpb24gaXMgeWV0IHRvIHVucmVnaXN0ZXJlZCBwbXUgd2l0aCB0aGUgc2FtZSBuYW1lLgoJ ICovCglwZXJmX3BtdV91bnJlZ2lzdGVyKHRpbnlwbXVzW2lkeF0pOwoKCXRlbXAgPSB0aW55cG11 c1tpZHhdOwoJdGlueXBtdXNbaWR4XSA9IE5VTEw7CgltdXRleF91bmxvY2soJmxvY2spOwoKCWtm cmVlKHRlbXApOwp9CgpzdGF0aWMgc3NpemVfdCByZWdpc3Rlcl93cml0ZShzdHJ1Y3QgZmlsZSAq ZiwgY29uc3QgY2hhciAqZGF0YSwgc2l6ZV90IHNpemUsCgkJCSAgICAgIGxvZmZfdCAqcHBvcykK ewoJdW5zaWduZWQgaW50IGlkeDsKCglnZXRfcmFuZG9tX2J5dGVzKCZpZHgsIHNpemVvZihpZHgp KTsKCWlkeCAlPSBOUl9USU5ZUE1VUzsKCXJlZ2lzdGVyX3BtdShpZHgpOwoJcmV0dXJuIDE7Cn0K CnN0YXRpYyBzc2l6ZV90IHVucmVnaXN0ZXJfd3JpdGUoc3RydWN0IGZpbGUgKmYsIGNvbnN0IGNo YXIgKmRhdGEsIHNpemVfdCBzaXplLAoJCQkgICAgICAgIGxvZmZfdCAqcHBvcykKewoJdW5zaWdu ZWQgaW50IGlkeDsKCglnZXRfcmFuZG9tX2J5dGVzKCZpZHgsIHNpemVvZihpZHgpKTsKCWlkeCAl PSBOUl9USU5ZUE1VUzsKCXVucmVnaXN0ZXJfcG11KGlkeCk7CglyZXR1cm4gMTsKfQoKc3RhdGlj IGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcmVnaXN0ZXJfZm9wcyA9IHsKCS5vd25lciA9 IFRISVNfTU9EVUxFLAoJLndyaXRlID0gcmVnaXN0ZXJfd3JpdGUsCn07CgpzdGF0aWMgY29uc3Qg c3RydWN0IGZpbGVfb3BlcmF0aW9ucyB1bnJlZ2lzdGVyX2ZvcHMgPSB7Cgkub3duZXIgPSBUSElT X01PRFVMRSwKCS53cml0ZSA9IHVucmVnaXN0ZXJfd3JpdGUsCn07CgpzdGF0aWMgc3RydWN0IG1p c2NkZXZpY2UgcmVnaXN0ZXJfZGV2ID0gewoJTUlTQ19EWU5BTUlDX01JTk9SLAoJInRpbnlwbXVf cmVnaXN0ZXIiLAoJJnJlZ2lzdGVyX2ZvcHMsCn07CgpzdGF0aWMgc3RydWN0IG1pc2NkZXZpY2Ug dW5yZWdpc3Rlcl9kZXYgPSB7CglNSVNDX0RZTkFNSUNfTUlOT1IsCgkidGlueXBtdV91bnJlZ2lz dGVyIiwKCSZ1bnJlZ2lzdGVyX2ZvcHMsCn07CgpzdGF0aWMgaW50IF9faW5pdCBoZWxsb19pbml0 KHZvaWQpCnsKCWludCByZXQ7CglpbnQgaTsKCglyZXQgPSBtaXNjX3JlZ2lzdGVyKCZyZWdpc3Rl cl9kZXYpOwoJaWYgKHJldCkgewoJCXByX2VycigiRmFpbGVkIHRvIHJlZ2lzdGVyIHJlZ2lzdGVy X2RldlxuIik7CgkJcmV0dXJuIHJldDsKCX0KCglyZXQgPSBtaXNjX3JlZ2lzdGVyKCZ1bnJlZ2lz dGVyX2Rldik7CglpZiAocmV0KSB7CgkJcHJfZXJyKCJGYWlsZWQgdG8gcmVnaXN0ZXIgdW5yZWdp c3Rlcl9kZXZcbiIpOwoJCW1pc2NfZGVyZWdpc3RlcigmcmVnaXN0ZXJfZGV2KTsKCQlyZXR1cm4g cmV0OwoJfQoKCWZvciAoaSA9IDA7IGkgPCBOUl9USU5ZUE1VUzsgaSsrKQoJCXNwcmludGYocG11 X25hbWVbaV0sICJ0aW55cG11JWQiLCBpKTsKCglmb3IgKGkgPSAwOyBpIDwgTlJfVElOWVBNVVM7 IGkrKykKCQlyZWdpc3Rlcl9wbXUoaSk7CgoJcmV0dXJuIDA7Cn0KCm1vZHVsZV9pbml0KGhlbGxv X2luaXQpOwoKc3RhdGljIHZvaWQgX19leGl0IGhlbGxvX2V4aXQodm9pZCkKewoJaW50IGk7CgoJ Zm9yIChpID0gMDsgaSA8IE5SX1RJTllQTVVTOyBpKyspCgkJdW5yZWdpc3Rlcl9wbXUoaSk7Cglt aXNjX2RlcmVnaXN0ZXIoJnJlZ2lzdGVyX2Rldik7CgltaXNjX2RlcmVnaXN0ZXIoJnVucmVnaXN0 ZXJfZGV2KTsKfQoKbW9kdWxlX2V4aXQoaGVsbG9fZXhpdCk7CgpNT0RVTEVfTElDRU5TRSgiR1BM Iik7Ck1PRFVMRV9BVVRIT1IoIlJhdmkgQmFuZ29yaWEiKTsKTU9EVUxFX0RFU0NSSVBUSU9OKCJQ TVUgcmVnaXN0ZXIvdW5yZWdpc3RlciBzdHJlc3MgdGVzdCIpOwpNT0RVTEVfVkVSU0lPTigiZGV2 Iik7Cg== --------------5hUKka22XUJYNA5pJHtcFEh4 Content-Type: text/plain; charset=UTF-8; name="tinypmu-u.sh" Content-Disposition: attachment; filename="tinypmu-u.sh" Content-Transfer-Encoding: base64 IyEvYmluL2Jhc2gKIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAojIEF1dGhvcjog UmF2aSBCYW5nb3JpYSA8cmF2aS5iYW5nb3JpYUBhbWQuY29tPgoKaWYgWyAiJEVVSUQiIC1uZSAw IF07IHRoZW4KCWVjaG8gIlBsZWFzZSBydW4gYXMgcm9vdCIKCWV4aXQKZmkKCnN1ZG8gaW5zbW9k IHRpbnlwbXUtay5rbwoKY2xlYW51cCgpIHsKCWZvciBpIGluICIkQCI7IGRvCgkJZWNobyAtbiAi JHtpfSAiCgkJa2lsbCAke2l9Cglkb25lCgoJd2FpdAoJcm1tb2QgdGlueXBtdV9rCgoJcm0gLXJm IC9kZXYvdGlueXBtdV9yZWdpc3RlcgoJcm0gLXJmIC9kZXYvdGlueXBtdV91bnJlZ2lzdGVyCgll Y2hvICIiCglleGl0Cn0KCmJhc2ggX3RpbnlwbXUtdS1yZWdpc3Rlci5zaCAmCnJlZ19waWQ9JCEK YmFzaCBfdGlueXBtdS11LXVucmVnaXN0ZXIuc2ggJgp1bnJlZ19waWQ9JCEKCiMgcmVnaXN0ZXIg Q3RybCtDIGNsZWFudXAgaWYgYWJvcnRlZCBpbmJldHdlZW4KI3RyYXAgImNsZWFudXAgJyR7cmVn X3BpZH0nICcke3VucmVnX3BpZH0nICR7ZXZlbnRfcGlkc1tAXX0iIDIKCmVjaG8gJHtyZWdfcGlk fSAke3VucmVnX3BpZH0KCnNsZWVwIDEwCgpjbGVhbnVwICR7cmVnX3BpZH0gJHt1bnJlZ19waWR9 Cgo= --------------5hUKka22XUJYNA5pJHtcFEh4 Content-Type: text/plain; charset=UTF-8; name="tinypmu-u-events.sh" Content-Disposition: attachment; filename="tinypmu-u-events.sh" Content-Transfer-Encoding: base64 IyEvYmluL2Jhc2gKIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAojIEF1dGhvcjog UmF2aSBCYW5nb3JpYSA8cmF2aS5iYW5nb3JpYUBhbWQuY29tPgoKcG11X25yPSR7MX0KCmlmIFsg IiRFVUlEIiAtbmUgMCBdOyB0aGVuCgllY2hvICJQbGVhc2UgcnVuIGFzIHJvb3QiCglleGl0CmZp Cgp3aGlsZSB0cnVlOyBkbwoJcGVyZiByZWNvcmQgLWEgLWUgdGlueXBtdSR7cG11X25yfS8vIC0t IHNsZWVwIDEgPj4gL2Rldi9udWxsIDI+JjEgJgpkb25lCg== --------------5hUKka22XUJYNA5pJHtcFEh4--