From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.1 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B702AC4743C for ; Wed, 23 Jun 2021 08:41:50 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 843C161026 for ; Wed, 23 Jun 2021 08:41:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 843C161026 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E909C6E88A; Wed, 23 Jun 2021 08:41:46 +0000 (UTC) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08on2051.outbound.protection.outlook.com [40.107.101.51]) by gabe.freedesktop.org (Postfix) with ESMTPS id AA0806E884; Wed, 23 Jun 2021 08:41:44 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GYbnYTJFO+T6KA7blgMgo25w7Fgv/An7d64xEbDgbyJ/iBuFerucmaCVGp7i17igccAf0GapvgsbsAJk4kJLxkWE8fiHZoDm6OOqZOEAjBLZ9ctDkUQdKFMa9ZKnhvdd4AjOtG1LHA4SUZ92m05J6bYuQsQa48ihlnwbQCkjiAlt/llsbTTctOpRjFwTMx+YmjbsOJMZzgocRSKevoTn3VLWUny9SkBdeO2RggmGaq6lb+cxR8ULqHuqUb5VGgNI/o1ZYQYdPAc95NrMEr8c2mrX+acxvpWEyh+ABTyP9HiyvE47Wz0sjFCm9/DtXozl1xlASPkE0LBk5xVh/ecBzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cRWxGvUUg8QU8zipaNP5hsOJMZE9GtX7yzzg69y+RzE=; b=n4eYlKZGJQVfbmV6koHrvLmLJMHC+PQt0gXICugA8w8IkjJq7ssx+/kz5sIyDdsm4zEv/sAPXbpYEcRd+aL0GCRoiaf0bj4327+mPksIbwsYJ9GMsRjxd1v5X1Htv8M/bFkB+EvRKJguKEcoRBOuEZHwHtnFGw4lmvq9eTxwjHDaJsmEmRgQBT0JlhBqO61cjztgk9vpIcgq0SyaHoZIXTmpTZEVKKvBB0J0daw39IF4A2ZL1zdVcHFg5mVHf9agy4TkuAOkFR8y2/WcC4ixA7s1cH/rDF/EU9dfMZFJMaOi2THjrUgpdg1Uk1YTikFJqLBiX8kmx6zVdjJ7hI63/g== 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=cRWxGvUUg8QU8zipaNP5hsOJMZE9GtX7yzzg69y+RzE=; b=11wjgAXv2LGNb/YFFgV3myrR6a3wFRWjl0cvCEj0guiNTFMGzLylRvHVX9izx+JePdCN3zuZdYxd6QXn5oRytwGI57FtyvlvRTy8mjaGjNmHbeI78r/MkFhrAOifVS8PzYno3KsH6aJkMkX5Gu934BtjqdF5hwsqdU1boROflGk= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (10.255.86.19) by MN2PR12MB4239.namprd12.prod.outlook.com (52.135.48.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.18; Wed, 23 Jun 2021 08:41:41 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6c9e:1e08:7617:f756]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6c9e:1e08:7617:f756%5]) with mapi id 15.20.4242.024; Wed, 23 Jun 2021 08:41:41 +0000 To: Daniel Vetter , DRI Development References: <20210622165511.3169559-1-daniel.vetter@ffwll.ch> <20210622165511.3169559-4-daniel.vetter@ffwll.ch> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Wed, 23 Jun 2021 10:41:33 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: <20210622165511.3169559-4-daniel.vetter@ffwll.ch> Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:69e4:a619:aa86:4e9c] X-ClientProxiedBy: FR3P281CA0009.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::8) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:69e4:a619:aa86:4e9c] (2a02:908:1252:fb60:69e4:a619:aa86:4e9c) by FR3P281CA0009.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.7 via Frontend Transport; Wed, 23 Jun 2021 08:41:38 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a051efd1-3e09-41ba-fd67-08d93622b89f X-MS-TrafficTypeDiagnostic: MN2PR12MB4239: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8GXNFTqpDbzvFQHi+Djcw2G2tGPWhKiWEXjVWMiLzfTSBH8s4oDPsF1M971fPQRDuB5wshsIqrflOQtvCxxP2jE9F+vPxuaXJPR0Nl7CTVrwnUhhOulnwtwVWSxiFvz+V7HCSkf+iOHoDa+OQBPF5SNhJwuLoG6rjih3cWp5Ayc467TQHwLlSgBzcRhWY8kCrfZCf6rtUF1ylTtusuKScSJxUDzkowVvCuZHVWqBVcaCKjWKHJaXLXIicw/fe3SRKjl5asw68A8qEXWva0DhJIzmQVZpI/DDeXoUeK0bJkBfczsky2/X9nVX02+sfErAhN3CISBkS+MwkYYZj2EjBT7J+n7+uQE+bV3UDTL5JIge5Pnux5JBkf3GAZU5ki56N7oJByYhTfZJkmiKuo56WZQQLnMyXxsm6iAMc63nkh+lkKRl1r8gRL+pyTHoBsHwpqqrKZAs4tGiIPR6z3ihThtKjVgRbbRFSETRIUMZ0Qt7VdB6sPntZiG3DR59KuoVXMok9DeruqiCbVDvgRfjeOrNXuWrQnCVkEiRMULky2SftfeIkCQR9l4dk7VSVUE9ErMO0gUT9NqfDovfGRY/p8aOQg0r/tckp+12AvgzED9d6axC5eJq66ZQWROhrIHAnijb1SSnMhrINJOivwpx5zi9dFDzrHsxSvJSXMVkjPiIDEqy6rII0+eD5c+Z1agCvgi3hsqwT/64C8cm6cfjv9omFAxTVjtdJdQmPLj/26WQm07nUKWKp+psqK/CrQpDqoyuNZqsn2bVsgaljiSmqof7OZUIaLHM2S+165uRZfcojf+7AOFDqDQmpm1K5KnHYR5oP/JGBzLMTrb+f+qwJsw6Qfq9qfv3iLlXN7yU+6v4MtaB59LAsoUuQfj4yiKG0LhmTLY3yeiLuq0dW1GOVg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(39860400002)(396003)(346002)(376002)(136003)(8676002)(66556008)(6486002)(66476007)(2616005)(36756003)(8936002)(66946007)(45080400002)(316002)(186003)(16526019)(86362001)(478600001)(966005)(31696002)(66574015)(6666004)(30864003)(110136005)(83380400001)(31686004)(4326008)(7416002)(54906003)(38100700002)(5660300002)(2906002)(21314003)(45980500001)(43740500002)(309714004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VkR1M3NhamlIYVdsY01rb2daUDdKeUtZaUJUK3V2WG14UTk4ZEdaRXNTbGc2?= =?utf-8?B?SHVMdGw2NzRPOG1VS1g3U3hvWEtaM2xocU9zUXhXQU1BN3VwblRkSTdyWGJB?= =?utf-8?B?dGxqV0RRaEVqanZDdlZWMG1XYjVZazc1RUhzS1NjWVBGZWxTbVUxcEw0M2Fn?= =?utf-8?B?N1E2SWQrK2JDemNIcjkrWDF1Rmtid3NKOStuZ2NGVDBQbDA5cStZVWlIczFP?= =?utf-8?B?clFsazNtaEpaT3VIVnNXNnQ3cTBvMGNmbENjUWNBTURwMUk0VEpncHBWOFE0?= =?utf-8?B?dHNpRnhXbkZhdGpucHBOM1hmRVRCcTB0cnVDSEJoZFBTRkEyRjBLSEo3TmNl?= =?utf-8?B?TnFxYVh5elhpK2RzdnFKOUc1aFA5VmZtSklWeTJlYjk2akorODFhcGY1MVYv?= =?utf-8?B?dStGSHhjMlcwdjdxSmRqd1pXdlNmZXVkWENIcnNvUjRYdFk3b2M2b21CL29z?= =?utf-8?B?eFVCeXpaeGRFaGJXbm0zL1ZHQ3Bzd2hJWEZPTzRpc20vWS8yN0lGaFF4NGZM?= =?utf-8?B?dTZpODZmc3NpRXRQWms0Y3AvckhHV3JneU42eTkvZ3p5Mmo1WGpHY3hWbW1O?= =?utf-8?B?bVlUVFFjbjNaaHpvbzUzT2VEVDdwVFgzQ0p3Rm0yKytXTisvZlRyRlZEclpo?= =?utf-8?B?clRSWm9XYjZSL0tzL1ZCUkpsY0NUYWR2TFk4cTU3bUsyajZ2UG0zU1pmalpP?= =?utf-8?B?cGhodVhDbUN5bUlMSFhoMHFNUnIzVUR5M2ZqVURmSTRNckVTa1NMUzg5bHFJ?= =?utf-8?B?bEFHbC9GQS9sanlYTlZIS3Fsd1VTeHBCWG94TTNLRVpYMCtGQjNWUTdCalQy?= =?utf-8?B?N0NBdFl2YUk1Y0FaenRBczNwdEZoeFRWSE1BY2FJZUdxN1pPQ2pHYjdUYlZS?= =?utf-8?B?N2dNbFdZaHduQm02U0JybldPQzAxZFhNUXRTUTQxcm11NTFrQTYxV3BFNGgv?= =?utf-8?B?a1dHMTdPTS9NTnBGYXFiNzdLODJFZTIyTXUvcUNrRjBLQjBFc2d3SXdGMVU4?= =?utf-8?B?ZUhJNkhVcWF1MG9GYjgvSVFuWXN0OUZ4aHBueWtzcVFBdHEyOVFiTEJVbEFL?= =?utf-8?B?dmxidGQ5dDZVbjJsOThqQVh6akJnU3d4WHFvVUtCSDQweDBKOHdoUm1WdWRE?= =?utf-8?B?VUZ1K0hSeEYvRXhZaWpWcnBBMFpjQmY2WElveGEzWVFMdy9WSEpRQkZWQ2xG?= =?utf-8?B?d1VQaDlBRFJuTVh5VHZJMnd0WHQ4cmgxamVwb3lreDVNcUxHUHRhMC9iaG5U?= =?utf-8?B?ZWU3VVNqZWJHcHJURnVOdUljRm1LcjQzN3h2U2l0bG5Uc252RzFDZ2MrSmpu?= =?utf-8?B?KzBERkhSeTZUSjB4NFErTDRDbFJLYVEweWJJOVltQzQvcXdKRlBaNWhuSmJa?= =?utf-8?B?QXgwb2lvS1AxRS84VmZhMHhYQjN6MzV3YTgrRTNRSVFCUWVUSHBCMjEwQThu?= =?utf-8?B?SFFzZjJ1bkYrR1BrSk5XYUp5QUVreVpCTWw4NEZ1YkJoMEc3UExVZVdQeUVx?= =?utf-8?B?ZG5vZDhBa3JIckZYdW15N1FVQkxYZ3lNcXJiNFNzaGVyaldzTFVabzJGcWpP?= =?utf-8?B?U2hwaW9HMjBNMDR6T3luM3NsdEZRSHRENm1TVGQvcXJIRnVLWXdPQ2FZVk14?= =?utf-8?B?Um1QY1h3MjdPS2VrQnRNTER1b1RrdjBIZGFGclBpSm9PWk4renNjSXk2U0RD?= =?utf-8?B?VGNUMTM2bTZqOWMwbG10KzUxeVhPbjRYdkhacjZ5U2xkZS96a0Y3eE5DMTF0?= =?utf-8?B?RDkySHI0YzZPVUlDMjlaRmdUd0tMc1JWb1VIVDNCOXhVWVZJM3RzcjdVSXBC?= =?utf-8?B?UlF2TFQ3REVKeDQyYnJlRVJ4c20vK1AvdEg2UWZzdlRmUTFmREpob1NkemYx?= =?utf-8?Q?a5ymKO3tt2Kg6?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: a051efd1-3e09-41ba-fd67-08d93622b89f X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2021 08:41:40.9353 (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: kkOIee4zUf4mM/LcN7UGNGZUV1cb3otk9kLStUGHIavFCtBO0OdoYQtuZM+QvxC8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4239 Subject: Re: [Intel-gfx] [PATCH 03/15] dma-buf: Document dma-buf implicit fencing/resv fencing rules X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Clark , Daniel Stone , Daniel Vetter , Intel Graphics Development , Kevin Wang , Sumit Semwal , linaro-mm-sig@lists.linaro.org, Luben Tuikov , "Kristian H . Kristensen" , Chen Li , Bas Nieuwenhuizen , Alex Deucher , mesa-dev@lists.freedesktop.org, =?UTF-8?Q?Michel_D=c3=a4nzer?= , Dennis Li , Deepak R Varma Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" QW0gMjIuMDYuMjEgdW0gMTg6NTQgc2NocmllYiBEYW5pZWwgVmV0dGVyOgo+IERvY3MgZm9yIHN0 cnVjdCBkbWFfcmVzdiBhcmUgZmFpcmx5IGNsZWFyOgo+Cj4gIkEgcmVzZXJ2YXRpb24gb2JqZWN0 IGNhbiBoYXZlIGF0dGFjaGVkIG9uZSBleGNsdXNpdmUgZmVuY2UgKG5vcm1hbGx5Cj4gYXNzb2Np YXRlZCB3aXRoIHdyaXRlIG9wZXJhdGlvbnMpIG9yIE4gc2hhcmVkIGZlbmNlcyAocmVhZAo+IG9w ZXJhdGlvbnMpLiIKPgo+IGh0dHBzOi8vbmFtMTEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9v ay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmRyaS5mcmVlZGVza3RvcC5vcmclMkZkb2NzJTJGZHJt JTJGZHJpdmVyLWFwaSUyRmRtYS1idWYuaHRtbCUyM3Jlc2VydmF0aW9uLW9iamVjdHMmYW1wO2Rh dGE9MDQlN0MwMSU3Q2NocmlzdGlhbi5rb2VuaWclNDBhbWQuY29tJTdDNDJkOGM3MGI2MjA4NGE4 NDZlOTUwOGQ5MzU5ZTg2MjklN0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAl N0MwJTdDNjM3NTk5Nzc3MjY0MTA0NDQ5JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9p TUM0d0xqQXdNREFpTENKUUlqb2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUz RCU3QzEwMDAmYW1wO3NkYXRhPXJjZDRpMFZwSzNCaHdGTHpzeGQ2Nk9oc2hkSkpoM3loUm8yTU9x bENFQm8lM0QmYW1wO3Jlc2VydmVkPTAKPgo+IEZ1cnRoZXJtb3JlIGEgcmV2aWV3IGFjcm9zcyBh bGwgb2YgdXBzdHJlYW0uCj4KPiBGaXJzdCBvZiByZW5kZXIgZHJpdmVycyBhbmQgaG93IHRoZXkg c2V0IGltcGxpY2l0IGZlbmNlczoKPgo+IC0gbm91dmVhdSBmb2xsb3dzIHRoaXMgY29udHJhY3Qs IHNlZSBpbiB2YWxpZGF0ZV9maW5pX25vX3RpY2tldCgpCj4KPiAJCQlub3V2ZWF1X2JvX2ZlbmNl KG52Ym8sIGZlbmNlLCAhIWItPndyaXRlX2RvbWFpbnMpOwo+Cj4gICAgYW5kIHRoYXQgbGFzdCBi b29sZWFuIGNvbnRyb2xzIHdoZXRoZXIgdGhlIGV4Y2x1c2l2ZSBvciBzaGFyZWQgZmVuY2UKPiAg ICBzbG90IGlzIHVzZWQuCj4KPiAtIHJhZGVvbiBmb2xsb3dzIHRoaXMgY29udHJhY3QgYnkgc2V0 dGluZwo+Cj4gCQlwLT5yZWxvY3NbaV0udHYubnVtX3NoYXJlZCA9ICFyLT53cml0ZV9kb21haW47 Cj4KPiAgICBpbiByYWRlb25fY3NfcGFyc2VyX3JlbG9jcygpLCB3aGljaCBlbnN1cmVzIHRoYXQg dGhlIGNhbGwgdG8KPiAgICB0dG1fZXVfZmVuY2VfYnVmZmVyX29iamVjdHMoKSBpbiByYWRlb25f Y3NfcGFyc2VyX2ZpbmkoKSB3aWxsIGRvIHRoZQo+ICAgIHJpZ2h0IHRoaW5nLgo+Cj4gLSB2bXdn Znggc2VlbXMgdG8gZm9sbG93IHRoaXMgY29udHJhY3Qgd2l0aCB0aGUgc2hvdGd1biBhcHByb2Fj aCBvZgo+ICAgIGFsd2F5cyBzZXR0aW5nIHR0bV92YWxfYnVmLT5udW1fc2hhcmVkID0gMCwgd2hp Y2ggbWVhbnMKPiAgICB0dG1fZXVfZmVuY2VfYnVmZmVyX29iamVjdHMoKSB3aWxsIG9ubHkgdXNl IHRoZSBleGNsdXNpdmUgc2xvdC4KPgo+IC0gZXRuYXZpdiBmb2xsb3dzIHRoaXMgY29udHJhY3Qs IGFzIGNhbiBiZSB0cml2aWFsbHkgc2VlbiBieSBsb29raW5nCj4gICAgYXQgc3VibWl0X2F0dGFj aF9vYmplY3RfZmVuY2VzKCkKPgo+IC0gaTkxNSBpcyBhIGJpdCBhIGNvbnZvbHV0ZWQgbWF6ZSB3 aXRoIG11bHRpcGxlIHBhdGhzIGxlYWRpbmcgdG8KPiAgICBpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2 ZSgpLiBXaGljaCBzZXRzIHRoZSBleGNsdXNpdmUgZmxhZyBpZgo+ICAgIEVYRUNfT0JKRUNUX1dS SVRFIGlzIHNldC4gVGhpcyBjYW4gZWl0aGVyIGNvbWUgYXMgYSBidWZmZXIgZmxhZyBmb3IKPiAg ICBzb2Z0cGluIG1vZGUsIG9yIHRocm91Z2ggdGhlIHdyaXRlX2RvbWFpbiB3aGVuIHVzaW5nIHJl bG9jYXRpb25zLiBJdAo+ICAgIGZvbGxvd3MgdGhpcyBjb250cmFjdC4KPgo+IC0gbGltYSBmb2xs b3dzIHRoaXMgY29udHJhY3QsIHNlZSBsaW1hX2dlbV9zdWJtaXQoKSB3aGljaCBzZXRzIHRoZQo+ ICAgIGV4Y2x1c2l2ZSBmZW5jZSB3aGVuIHRoZSBMSU1BX1NVQk1JVF9CT19XUklURSBmbGFnIGlz IHNldCBmb3IgdGhhdAo+ICAgIGJvCj4KPiAtIG1zbSBmb2xsb3dzIHRoaXMgY29udHJhY3QsIHNl ZSBtc21fZ3B1X3N1Ym1pdCgpIHdoaWNoIHNldHMgdGhlCj4gICAgZXhjbHVzaXZlIGZsYWcgd2hl biB0aGUgTVNNX1NVQk1JVF9CT19XUklURSBpcyBzZXQgZm9yIHRoYXQgYnVmZmVyCj4KPiAtIHBh bmZyb3N0IGZvbGxvd3MgdGhpcyBjb250cmFjdCB3aXRoIHRoZSBzaG90Z3VuIGFwcHJvYWNoIG9m IGp1c3QKPiAgICBhbHdheXMgc2V0dGluZyB0aGUgZXhjbHVzaXZlIGZlbmNlLCBzZWUKPiAgICBw YW5mcm9zdF9hdHRhY2hfb2JqZWN0X2ZlbmNlcygpLiBCZW5lZml0cyBvZiBhIHNpbmdsZSBlbmdp bmUgSSBndWVzcwo+Cj4gLSB2M2QgZm9sbG93cyB0aGlzIGNvbnRyYWN0IHdpdGggdGhlIHNhbWUg c2hvdGd1biBhcHByb2FjaCBpbgo+ICAgIHYzZF9hdHRhY2hfZmVuY2VzX2FuZF91bmxvY2tfcmVz ZXJ2YXRpb24oKSwgYnV0IGl0IGhhcyBhdCBsZWFzdCBhbgo+ICAgIFhYWCBjb21tZW50IHRoYXQg bWF5YmUgdGhpcyBzaG91bGQgYmUgaW1wcm92ZWQKPgo+IC0gdjRjIHVzZXMgdGhlIHNhbWUgc2hv dGd1biBhcHByb2FjaCBvZiBhbHdheXMgc2V0dGluZyBhbiBleGNsdXNpdmUKPiAgICBmZW5jZSwg c2VlIHZjNF91cGRhdGVfYm9fc2Vxbm9zKCkKPgo+IC0gdmdlbSBhbHNvIGZvbGxvd3MgdGhpcyBj b250cmFjdCwgc2VlIHZnZW1fZmVuY2VfYXR0YWNoX2lvY3RsKCkgYW5kCj4gICAgdGhlIFZHRU1f RkVOQ0VfV1JJVEUuIFRoaXMgaXMgdXNlZCBpbiBzb21lIGlndHMgdG8gdmFsaWRhdGUgcHJpbWUK PiAgICBzaGFyaW5nIHdpdGggaTkxNS5rbyB3aXRob3V0IHRoZSBuZWVkIG9mIGEgMm5kIGdwdQo+ Cj4gLSB2cml0aW8gZm9sbG93cyB0aGlzIGNvbnRyYWN0IGFnYWluIHdpdGggdGhlIHNob3RndW4g YXBwcm9hY2ggb2YKPiAgICBhbHdheXMgc2V0dGluZyBhbiBleGNsdXNpdmUgZmVuY2UsIHNlZSB2 aXJ0aW9fZ3B1X2FycmF5X2FkZF9mZW5jZSgpCj4KPiBUaGlzIGNvdmVycyB0aGUgc2V0dGluZyBv ZiB0aGUgZXhjbHVzaXZlIGZlbmNlcyB3aGVuIHdyaXRpbmcuCj4KPiBTeW5jaHJvbml6aW5nIGFn YWluc3QgdGhlIGV4Y2x1c2l2ZSBmZW5jZSBpcyBhIGxvdCBtb3JlIHRyaWNreSwgYW5kIEkKPiBv bmx5IHNwb3QgY2hlY2tlZCBhIGZldzoKPgo+IC0gaTkxNSBkb2VzIGl0LCB3aXRoIHRoZSBvcHRp b25hbCBFWEVDX09CSkVDVF9BU1lOQyB0byBza2lwIGFsbAo+ICAgIGltcGxpY2l0IGRlcGVuZGVu Y2llcyAod2hpY2ggaXMgdXNlZCBieSB2dWxrYW4pCj4KPiAtIGV0bmF2aXYgZG9lcyB0aGlzLiBJ bXBsaWNpdCBkZXBlbmRlbmNpZXMgYXJlIGNvbGxlY3RlZCBpbgo+ICAgIHN1Ym1pdF9mZW5jZV9z eW5jKCksIGFnYWluIHdpdGggYW4gb3B0LW91dCBmbGFnCj4gICAgRVROQV9TVUJNSVRfTk9fSU1Q TElDSVQuIFRoZXNlIGFyZSB0aGVuIHBpY2tlZCB1cCBpbgo+ICAgIGV0bmF2aXZfc2NoZWRfZGVw ZW5kZW5jeSB3aGljaCBpcyB0aGUKPiAgICBkcm1fc2NoZWRfYmFja2VuZF9vcHMtPmRlcGVuZGVu Y3kgY2FsbGJhY2suCj4KPiAtIHY0YyBzZWVtcyB0byBub3QgZG8gbXVjaCBoZXJlLCBtYXliZSBn ZXRzIGF3YXkgd2l0aCBpdCBieSBub3QgaGF2aW5nCj4gICAgYSBzY2hlZHVsZXIgYW5kIG9ubHkg YSBzaW5nbGUgZW5naW5lLiBTaW5jZSBhbGwgbmV3ZXIgYnJvYWRjb20gY2hpcHMgdGhhbgo+ICAg IHRoZSBPRyB2YzQgdXNlIHYzZCBmb3IgcmVuZGVyaW5nLCB3aGljaCBmb2xsb3dzIHRoaXMgY29u dHJhY3QsIHRoZQo+ICAgIGltcGFjdCBvZiB0aGlzIGlzc3VlIGlzIGZhaXJseSBzbWFsbC4KPgo+ IC0gdjNkIGRvZXMgdGhpcyB1c2luZyB0aGUgZHJtX2dlbV9mZW5jZV9hcnJheV9hZGRfaW1wbGlj aXQoKSBoZWxwZXIsCj4gICAgd2hpY2ggdGhlbiBpdCdzIGRybV9zY2hlZF9iYWNrZW5kX29wcy0+ ZGVwZW5kZW5jeSBjYWxsYmFjawo+ICAgIHYzZF9qb2JfZGVwZW5kZW5jeSgpIHBpY2tzIHVwLgo+ Cj4gLSBwYW5mcm9zdCBpcyBuaWNlIGhlcmUgYW5kIHRyYWNrcyB0aGUgaW1wbGljaXQgZmVuY2Vz IGluCj4gICAgcGFuZnJvc3Rfam9iLT5pbXBsaWNpdF9mZW5jZXMsIHdoaWNoIGFnYWluIHRoZQo+ ICAgIGRybV9zY2hlZF9iYWNrZW5kX29wcy0+ZGVwZW5kZW5jeSBjYWxsYmFjayBwYW5mcm9zdF9q b2JfZGVwZW5kZW5jeSgpCj4gICAgcGlja3MgdXAuIEl0IGlzIG1pbGRseSBxdWVzdGlvbmFibGUg dGhvdWdoIHNpbmNlIGl0IG9ubHkgcGlja3MgdXAKPiAgICBleGNsdXNpdmUgZmVuY2VzIGluIHBh bmZyb3N0X2FjcXVpcmVfb2JqZWN0X2ZlbmNlcygpLCBidXQgbm90IGJ1Z2d5Cj4gICAgaW4gcHJh Y3RpY2UgYmVjYXVzZSBpdCBhbHNvIGFsd2F5cyBzZXRzIHRoZSBleGNsdXNpdmUgZmVuY2UuIEl0 Cj4gICAgc2hvdWxkIHBpY2sgdXAgYm90aCBzZXRzIG9mIGZlbmNlcywganVzdCBpbiBjYXNlIHRo ZXJlJ3MgZXZlciBnb2luZwo+ICAgIHRvIGJlIGEgMm5kIGdwdSBpbiBhIFNvQyB3aXRoIGEgbWFs aSBncHUuIE9yIG1heWJlIGEgbWFsaSBTb0Mgd2l0aCBhCj4gICAgcGNpZSBwb3J0IGFuZCBhIHJl YWwgZ3B1LCB3aGljaCBtaWdodCBhY3R1YWxseSBoYXBwZW4gZXZlbnR1YWxseS4gQQo+ICAgIGJ1 ZywgYnV0IGVhc3kgdG8gZml4LiBTaG91bGQgcHJvYmFibHkgdXNlIHRoZQo+ICAgIGRybV9nZW1f ZmVuY2VfYXJyYXlfYWRkX2ltcGxpY2l0KCkgaGVscGVyLgo+Cj4gLSBsaW1hIGlzIG5pY2UgYW4g ZWFzeSwgdXNlcyBkcm1fZ2VtX2ZlbmNlX2FycmF5X2FkZF9pbXBsaWNpdCgpIGFuZAo+ICAgIHRo ZSBzYW1lIHNjaGVtYSBhcyB2M2QuCj4KPiAtIG1zbSBpcyBtaWxkbHkgZW50ZXJ0YWluaW5nLiBJ dCBhbHNvIHN1cHBvcnRzIE1TTV9TVUJNSVRfTk9fSU1QTElDSVQsCj4gICAgYnV0IGJlY2F1c2Ug aXQgZG9lc24ndCB1c2UgdGhlIGRybS9zY2hlZHVsZXIgaXQgaGFuZGxlcyBmZW5jZXMgZnJvbQo+ ICAgIHRoZSB3cm9uZyBjb250ZXh0IHdpdGggYSBzeW5jaHJvbm91cyBkbWFfZmVuY2Vfd2FpdC4g U2VlCj4gICAgc3VibWl0X2ZlbmNlX3N5bmMoKSBsZWFkaW5nIHRvIG1zbV9nZW1fc3luY19vYmpl Y3QoKS4gSW52ZXN0aW5nIGludG8KPiAgICBhIHNjaGVkdWxlciBtaWdodCBiZSBhIGdvb2QgaWRl YS4KPgo+IC0gYWxsIHRoZSByZW1haW5pbmcgZHJpdmVycyBhcmUgdHRtIGJhc2VkLCB3aGVyZSBJ IGhvcGUgdGhleSBkbwo+ICAgIGFwcHJvcHJpYXRlbHkgb2JleSBpbXBsaWNpdCBmZW5jZXMgYWxy ZWFkeS4gSSBkaWRuJ3QgZG8gdGhlIGZ1bGwKPiAgICBhdWRpdCB0aGVyZSBiZWNhdXNlIGEpIG5v dCBmb2xsb3cgdGhlIGNvbnRyYWN0IHdvdWxkIGNvbmZ1c2UgdHRtCj4gICAgcXVpdGUgd2VsbCBh bmQgYikgcmVhZGluZyBub24tc3RhbmRhcmQgc2NoZWR1bGVyIGFuZCBzdWJtaXQgY29kZQo+ICAg IHdoaWNoIGlzbid0IGJhc2VkIG9uIGRybS9zY2hlZHVsZXIgaXMgYSBwYWluLgo+Cj4gT253YXJk cyB0byB0aGUgZGlzcGxheSBzaWRlLgo+Cj4gLSBBbnkgZHJpdmVyIHVzaW5nIHRoZSBkcm1fZ2Vt X3BsYW5lX2hlbHBlcl9wcmVwYXJlX2ZiKCkgaGVscGVyIHdpbGwKPiAgICBjb3JyZWN0bHkuIE92 ZXJ3aGVsbWluZ2x5IG1vc3QgZHJpdmVycyBnZXQgdGhpcyByaWdodCwgZXhjZXB0IGEgZmV3Cj4g ICAgdG90YWxseSBkb250LiBJJ2xsIGZvbGxvdyB1cCB3aXRoIGEgcGF0Y2ggdG8gbWFrZSB0aGlz IHRoZSBkZWZhdWx0Cj4gICAgYW5kIGF2b2lkIGEgYnVuY2ggb2YgYnVncy4KPgo+IC0gSSBkaWRu J3QgYXVkaXQgdGhlIHR0bSBkcml2ZXJzLCBidXQgZ2l2ZW4gdGhhdCBkbWFfcmVzdiBzdGFydGVk Cj4gICAgdGhlcmUgSSBob3BlIHRoZXkgZ2V0IHRoaXMgcmlnaHQuCj4KPiBJbiBjb25jbHVzaW9u IHRoaXMgSVMgdGhlIGNvbnRyYWN0LCBib3RoIGFzIGRvY3VtZW50ZWQgYW5kCj4gb3ZlcndoZWxt aW5nbHkgaW1wbGVtZW50ZWQsIHNwZWNpY2FsbHkgYXMgaW1wbGVtZW50ZWQgYnkgYWxsIHJlbmRl cgo+IGRyaXZlcnMgZXhjZXB0IGFtZGdwdS4KPgo+IEFtZGdwdSB0cmllZCB0byBmaXggdGhpcyBh bHJlYWR5IGluCj4KPiBjb21taXQgMDQ5YWNhNDM2M2Q4YWY4N2NhYjhkNTNkZTU0MDE2MDJkYjNi OTk5OQo+IEF1dGhvcjogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29t Pgo+IERhdGU6ICAgV2VkIFNlcCAxOSAxNjo1NDozNSAyMDE4ICswMjAwCj4KPiAgICAgIGRybS9h bWRncHU6IGZpeCB1c2luZyBzaGFyZWQgZmVuY2UgZm9yIGV4cG9ydGVkIEJPcyB2Mgo+Cj4gYnV0 IHRoaXMgZml4IGZhbGxzIHNob3J0IG9uIGEgbnVtYmVyIG9mIGFyZWFzOgo+Cj4gLSBJdCdzIHJh Y3ksIGJ5IHRoZSB0aW1lIHRoZSBidWZmZXIgaXMgc2hhcmVkIGl0IG1pZ2h0IGJlIHRvbyBsYXRl LiBUbwo+ICAgIG1ha2Ugc3VyZSB0aGVyZSdzIGRlZmluaXRlbHkgbmV2ZXIgYSBwcm9ibGVtIHdl IG5lZWQgdG8gc2V0IHRoZQo+ICAgIGZlbmNlcyBjb3JyZWN0bHkgZm9yIGFueSBidWZmZXIgdGhh dCdzIHBvdGVudGlhbGx5IGV4cG9ydGFibGUuCj4KPiAtIEl0J3MgYnJlYWtpbmcgdWFwaSwgZG1h LWJ1ZiBmZHMgc3VwcG9ydCBwb2xsKCkgYW5kIGRpZmZlcmVudGl0aWF0ZQo+ICAgIGJldHdlZW4s IHdoaWNoIHdhcyBpbnRyb2R1Y2VkIGluCj4KPiAJY29tbWl0IDliNDk1YTU4ODc5OTRhNmQ3NGQ1 YzI2MWQwMTIwODNhOTJiOTQ3MzgKPiAJQXV0aG9yOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRl bi5sYW5raG9yc3RAY2Fub25pY2FsLmNvbT4KPiAJRGF0ZTogICBUdWUgSnVsIDEgMTI6NTc6NDMg MjAxNCArMDIwMAo+Cj4gCSAgICBkbWEtYnVmOiBhZGQgcG9sbCBzdXBwb3J0LCB2Mwo+Cj4gLSBD aHJpc3RpYW4gS8O2bmlnIHdhbnRzIHRvIG5hY2sgbmV3IHVhcGkgYnVpbGRpbmcgZnVydGhlciBv biB0aGlzCj4gICAgZG1hX3Jlc3YgY29udHJhY3QgYmVjYXVzZSBpdCBicmVha3MgYW1kZ3B1LCBx dW90aW5nCj4KPiAgICAiWWVhaCwgYW5kIHRoYXQgaXMgZXhhY3RseSB0aGUgcmVhc29uIHdoeSBJ IHdpbGwgTkFLIHRoaXMgdUFQSSBjaGFuZ2UuCj4KPiAgICAiVGhpcyBkb2Vzbid0IHdvcmtzIGZv ciBhbWRncHUgYXQgYWxsIGZvciB0aGUgcmVhc29ucyBvdXRsaW5lZCBhYm92ZS4iCj4KPiAgICBo dHRwczovL25hbTExLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cHMl M0ElMkYlMkZsb3JlLmtlcm5lbC5vcmclMkZkcmktZGV2ZWwlMkZmMmViNjc1MS0yZjgyLTliMjMt ZjU3ZS01NDhkZTViNzI5ZGUlNDBnbWFpbC5jb20lMkYmYW1wO2RhdGE9MDQlN0MwMSU3Q2Nocmlz dGlhbi5rb2VuaWclNDBhbWQuY29tJTdDNDJkOGM3MGI2MjA4NGE4NDZlOTUwOGQ5MzU5ZTg2Mjkl N0MzZGQ4OTYxZmU0ODg0ZTYwOGUxMWE4MmQ5OTRlMTgzZCU3QzAlN0MwJTdDNjM3NTk5Nzc3MjY0 MTE0NDM2JTdDVW5rbm93biU3Q1RXRnBiR1pzYjNkOGV5SldJam9pTUM0d0xqQXdNREFpTENKUUlq b2lWMmx1TXpJaUxDSkJUaUk2SWsxaGFXd2lMQ0pYVkNJNk1uMCUzRCU3QzEwMDAmYW1wO3NkYXRh PUNib2ljRXFaYXUxJTJGbEVnRU0zdzRZZTJOcTZ3VUxqZVBJZWh4YU1xVzNGZyUzRCZhbXA7cmVz ZXJ2ZWQ9MAo+Cj4gICAgUmVqZWN0aW5nIG5ldyBkZXZlbG9wbWVudCBiZWNhdXNlIHlvdXIgb3du IGRyaXZlciBpcyBicm9rZW4gYW5kCj4gICAgdmlvbGF0ZXMgZXN0YWJsaXNoZWQgY3Jvc3MgZHJp dmVyIGNvbnRyYWN0cyBhbmQgdWFwaSBpcyByZWFsbHkgbm90Cj4gICAgaG93IHVwc3RyZWFtIHdv cmtzLgo+Cj4gTm93IHRoaXMgcGF0Y2ggd2lsbCBoYXZlIGEgc2V2ZXJlIHBlcmZvcm1hbmNlIGlt cGFjdCBvbiBhbnl0aGluZyB0aGF0Cj4gcnVucyBvbiBtdWx0aXBsZSBlbmdpbmVzLiBTbyB3ZSBj YW4ndCBqdXN0IG1lcmdlIGl0IG91dHJpZ2h0LCBidXQgbmVlZAo+IGEgYml0IGEgcGxhbjoKPgo+ IC0gYW1kZ3B1IG5lZWRzIGEgcHJvcGVyIHVhcGkgZm9yIGhhbmRsaW5nIGltcGxpY2l0IGZlbmNp bmcuIFRoZSBmdW5ueQo+ICAgIHRoaW5nIGlzIHRoYXQgdG8gZG8gaXQgY29ycmVjdGx5LCBpbXBs aWNpdCBmZW5jaW5nIG11c3QgYmUgdHJlYXRlZAo+ICAgIGFzIGEgdmVyeSBzdHJhbmdlIElQQyBt ZWNoYW5pc20gZm9yIHRyYW5zcG9ydGluZyBmZW5jZXMsIHdoZXJlIGJvdGgKPiAgICBzZXR0aW5n IHRoZSBmZW5jZSBhbmQgZGVwZW5kZW5jeSBpbnRlcmNlcHRzIG11c3QgYmUgaGFuZGxlZAo+ICAg IGV4cGxpY2l0bHkuIEN1cnJlbnQgYmVzdCBwcmFjdGljZXMgaXMgYSBwZXItYm8gZmxhZyB0byBp bmRpY2F0ZQo+ICAgIHdyaXRlcywgYW5kIGEgcGVyLWJvIGZsYWcgdG8gdG8gc2tpcCBpbXBsaWNp dCBmZW5jaW5nIGluIHRoZSBDUwo+ICAgIGlvY3RsIGFzIGEgbmV3IGNodW5rLgo+Cj4gLSBTaW5j ZSBhbWRncHUgaGFzIGJlZW4gc2hpcHBpbmcgd2l0aCBicm9rZW4gYmVoYXZpb3VyIHdlIG5lZWQg YW4KPiAgICBvcHQtb3V0IGZsYWcgZnJvbSB0aGUgYnV0Y2hlcmVkIGltcGxpY2l0IGZlbmNpbmcg bW9kZWwgdG8gZW5hYmxlIHRoZQo+ICAgIHByb3BlciBleHBsaWNpdCBpbXBsaWNpdCBmZW5jaW5n IG1vZGVsLgo+Cj4gLSBmb3Iga2VybmVsIG1lbW9yeSBmZW5jZXMgZHVlIHRvIGJvIG1vdmVzIGF0 IGxlYXN0IHRoZSBpOTE1IGlkZWEgaXMKPiAgICB0byB1c2UgdHRtX2JvLT5tb3ZpbmcuIGFtZGdw dSBwcm9iYWJseSBuZWVkcyB0aGUgc2FtZS4KPgo+IC0gc2luY2UgdGhlIGN1cnJlbnQgcDJwIGRt YS1idWYgaW50ZXJmYWNlIGFzc3VtZXMgdGhlIGtlcm5lbCBtZW1vcnkKPiAgICBmZW5jZSBpcyBp biB0aGUgZXhjbHVzaXZlIGRtYV9yZXN2IGZlbmNlIHNsb3Qgd2UgbmVlZCB0byBhZGQgYSBuZXcK PiAgICBmZW5jZSBzbG90IGZvciBrZXJuZWwgZmVuY2VzLCB3aGljaCBtdXN0IG5ldmVyIGJlIGln bm9yZWQuIFNpbmNlCj4gICAgY3VycmVudGx5IG9ubHkgYW1kZ3B1IHN1cHBvcnRzIHRoaXMgdGhl cmUncyBubyByZWFsIHByb2JsZW0gaGVyZQo+ICAgIHlldCwgdW50aWwgYW1kZ3B1IGdhaW5zIGEg Tk9fSU1QTElDSVQgQ1MgZmxhZy4KPgo+IC0gTmV3IHVzZXJzcGFjZSBuZWVkcyB0byBzaGlwIGlu IGVub3VnaCBkZXNrdG9wIGRpc3Ryb3Mgc28gdGhhdCB1c2Vycwo+ICAgIHdvbnQgbm90aWNlIHRo ZSBwZXJmIGltcGFjdC4gSSB0aGluayB3ZSBjYW4gaWdub3JlIExUUyBkaXN0cm9zIHdobwo+ICAg IHVwZ3JhZGUgdGhlaXIga2VybmVscyBidXQgbm90IHRoZWlyIG1lc2EzZCBzbmFwc2hvdC4KPgo+ IC0gVGhlbiB3aGVuIHRoaXMgaXMgYWxsIGluIHBsYWNlIHdlIGNhbiBtZXJnZSB0aGlzIHBhdGNo IGhlcmUuCj4KPiBXaGF0IGlzIG5vdCBhIHNvbHV0aW9uIHRvIHRoaXMgcHJvYmxlbSBoZXJlIGlz IHRyeWluZyB0byBtYWtlIHRoZQo+IGRtYV9yZXN2IHJ1bGVzIGluIHRoZSBrZXJuZWwgbW9yZSBj bGV2ZXIuIFRoZSBmdW5kYW1lbnRhbCBpc3N1ZSBoZXJlCj4gaXMgdGhhdCB0aGUgYW1kZ3B1IENT IHVhcGkgaXMgdGhlIGxlYXN0IGV4cHJlc3NpdmUgb25lIGFjcm9zcyBhbGwKPiBkcml2ZXJzIChv bmx5IGVxdWFsbGVkIGJ5IHBhbmZyb3N0LCB3aGljaCBoYXMgYW4gYWN0dWFsIGV4Y3VzZSkgYnkg bm90Cj4gYWxsb3dpbmcgYW55IHVzZXJzcGFjZSBjb250cm9sIG92ZXIgaG93IGltcGxpY2l0IHN5 bmMgaXMgY29uZHVjdGVkLgo+Cj4gVW50aWwgdGhpcyBpcyBmaXhlZCBpdCdzIGNvbXBsZXRlbHkg cG9pbnRsZXNzIHRvIG1ha2UgdGhlIGtlcm5lbCBtb3JlCj4gY2xldmVyIHRvIGltcHJvdmUgYW1k Z3B1LCBiZWNhdXNlIGFsbCB3ZSdyZSBkb2luZyBpcyBwYXBlcmluZyBvdmVyCj4gdGhpcyB1YXBp IGRlc2lnbiBpc3N1ZS4gYW1kZ3B1IG5lZWRzIHRvIGF0dGFpbiB0aGUgc3RhdHVzIHF1bwo+IGVz dGFibGlzaGVkIGJ5IG90aGVyIGRyaXZlcnMgZmlyc3QsIG9uY2UgdGhhdCdzIGFjaGlldmVkIHdl IGNhbiB0YWNrbGUKPiB0aGUgcmVtYWluaW5nIGlzc3VlcyBpbiBhIGNvbnNpc3RlbnQgd2F5IGFj cm9zcyBkcml2ZXJzLgo+Cj4gdjI6IEJhcyBwb2ludGVkIG1lIGF0IEFNREdQVV9HRU1fQ1JFQVRF X0VYUExJQ0lUX1NZTkMsIHdoaWNoIEkKPiBlbnRpcmVseSBtaXNzZWQuCj4KPiBUaGlzIGlzIGdy ZWF0IGJlY2F1c2UgaXQgbWVhbnMgdGhlIGFtZGdwdSBzcGVjaWZpYyBwaWVjZSBmb3IgcHJvcGVy Cj4gaW1wbGljaXQgZmVuY2UgaGFuZGxpbmcgZXhpc3RzIGFscmVhZHksIGFuZCB0aGF0IHNpbmNl IGEgd2hpbGUuIFRoZQo+IG9ubHkgdGhpbmcgdGhhdCdzIG5vdyBtaXNzaW5nIGlzCj4gLSBmaXNo aW5nIHRoZSBpbXBsaWNpdCBmZW5jZXMgb3V0IG9mIGEgc2hhcmVkIG9iamVjdCBhdCB0aGUgcmln aHQgdGltZQo+IC0gc2V0dGluZyB0aGUgZXhjbHVzaXZlIGltcGxpY2l0IGZlbmNlIHNsb3QgYXQg dGhlIHJpZ2h0IHRpbWUuCj4KPiBKYXNvbiBoYXMgYSBwYXRjaCBzZXJpZXMgdG8gZmlsbCB0aGF0 IGdhcCB3aXRoIGEgYnVuY2ggb2YgZ2VuZXJpYwo+IGlvY3RsIG9uIHRoZSBkbWEtYnVmIGZkOgo+ Cj4gaHR0cHM6Ly9uYW0xMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0 dHBzJTNBJTJGJTJGbG9yZS5rZXJuZWwub3JnJTJGZHJpLWRldmVsJTJGMjAyMTA1MjAxOTAwMDcu NTM0MDQ2LTEtamFzb24lNDBqbGVrc3RyYW5kLm5ldCUyRiZhbXA7ZGF0YT0wNCU3QzAxJTdDY2hy aXN0aWFuLmtvZW5pZyU0MGFtZC5jb20lN0M0MmQ4YzcwYjYyMDg0YTg0NmU5NTA4ZDkzNTllODYy OSU3QzNkZDg5NjFmZTQ4ODRlNjA4ZTExYTgyZDk5NGUxODNkJTdDMCU3QzAlN0M2Mzc1OTk3Nzcy NjQxMTQ0MzYlN0NVbmtub3duJTdDVFdGcGJHWnNiM2Q4ZXlKV0lqb2lNQzR3TGpBd01EQWlMQ0pR SWpvaVYybHVNeklpTENKQlRpSTZJazFoYVd3aUxDSlhWQ0k2TW4wJTNEJTdDMTAwMCZhbXA7c2Rh dGE9JTJGWEw5OCUyRjIlMkYxR1pPSUN4Q1RQVHpmSXZjU20xNDR2UEJqVURNMjlhZXlGOCUzRCZh bXA7cmVzZXJ2ZWQ9MAo+Cj4gdjM6IFNpbmNlIENocmlzdGlhbiBoYXMgZml4ZWQgYW1kZ3B1IG5v dyBpbgo+Cj4gY29tbWl0IDhjNTA1YmRjOWM4Yjk1NTIyM2IwNTRlMzRhMGJlOWMzZDg0MWNkMjAg KGRybS1taXNjL2RybS1taXNjLW5leHQpCj4gQXV0aG9yOiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJp c3RpYW4ua29lbmlnQGFtZC5jb20+Cj4gRGF0ZTogICBXZWQgSnVuIDkgMTM6NTE6MzYgMjAyMSAr MDIwMAo+Cj4gICAgICBkcm0vYW1kZ3B1OiByZXdvcmsgZG1hX3Jlc3YgaGFuZGxpbmcgdjMKPgo+ IFVzZSB0aGUgYXVkaXQgY292ZXJlZCBpbiB0aGlzIGNvbW1pdCBtZXNzYWdlIGFzIHRoZSBleGN1 c2UgdG8gdXBkYXRlCj4gdGhlIGRtYS1idWYgZG9jcyBhcm91bmQgZG1hX2J1Zi5yZXN2IHVzYWdl IGFjcm9zcyBkcml2ZXJzLgo+Cj4gU2luY2UgZHluYW1pYyBpbXBvcnRlcnMgaGF2ZSBkaWZmZXJl bnQgcnVsZXMgYWxzbyBoYW1tZXIgdGhlc2UgaW4KPiBhZ2FpbiB3aGlsZSB3ZSdyZSBhdCBpdC4K Pgo+IENjOiBtZXNhLWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBDYzogQmFzIE5pZXV3ZW5o dWl6ZW4gPGJhc0BiYXNuaWV1d2VuaHVpemVuLm5sPgo+IENjOiBEYXZlIEFpcmxpZSA8YWlybGll ZEBnbWFpbC5jb20+Cj4gQ2M6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGNocm9taXVtLm9yZz4KPiBD YzogS3Jpc3RpYW4gSC4gS3Jpc3RlbnNlbiA8aG9lZ3NiZXJnQGdvb2dsZS5jb20+Cj4gQ2M6IE1p Y2hlbCBEw6RuemVyIDxtaWNoZWxAZGFlbnplci5uZXQ+Cj4gQ2M6IERhbmllbCBTdG9uZSA8ZGFu aWVsc0Bjb2xsYWJvcmEuY29tPgo+IENjOiBTdW1pdCBTZW13YWwgPHN1bWl0LnNlbXdhbEBsaW5h cm8ub3JnPgo+IENjOiAiQ2hyaXN0aWFuIEvDtm5pZyIgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNv bT4KPiBDYzogQWxleCBEZXVjaGVyIDxhbGV4YW5kZXIuZGV1Y2hlckBhbWQuY29tPgo+IENjOiBE YW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IENjOiBEZWVwYWsgUiBWYXJt YSA8bWgxMmd4MjgyNUBnbWFpbC5jb20+Cj4gQ2M6IENoZW4gTGkgPGNoZW5saUB1bmlvbnRlY2gu Y29tPgo+IENjOiBLZXZpbiBXYW5nIDxrZXZpbjEud2FuZ0BhbWQuY29tPgo+IENjOiBEZW5uaXMg TGkgPERlbm5pcy5MaUBhbWQuY29tPgo+IENjOiBMdWJlbiBUdWlrb3YgPGx1YmVuLnR1aWtvdkBh bWQuY29tPgo+IENjOiBsaW5hcm8tbW0tc2lnQGxpc3RzLmxpbmFyby5vcmcKPiBTaWduZWQtb2Zm LWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KClJldmlld2VkLWJ5 OiBDaHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cgo+IC0tLQo+ICAg aW5jbHVkZS9saW51eC9kbWEtYnVmLmggfCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKPiAgIDEgZmlsZSBjaGFuZ2VkLCAzOSBpbnNlcnRpb25zKCspCj4KPiBkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9kbWEtYnVmLmggYi9pbmNsdWRlL2xpbnV4L2RtYS1idWYu aAo+IGluZGV4IDZkMThiOWU0NDhiOS4uNDgwN2NlZmU4MWY1IDEwMDY0NAo+IC0tLSBhL2luY2x1 ZGUvbGludXgvZG1hLWJ1Zi5oCj4gKysrIGIvaW5jbHVkZS9saW51eC9kbWEtYnVmLmgKPiBAQCAt Mzg4LDYgKzM4OCw0NSBAQCBzdHJ1Y3QgZG1hX2J1ZiB7Cj4gICAJICogQHJlc3Y6Cj4gICAJICoK PiAgIAkgKiBSZXNlcnZhdGlvbiBvYmplY3QgbGlua2VkIHRvIHRoaXMgZG1hLWJ1Zi4KPiArCSAq Cj4gKwkgKiBJTVBMSUNJVCBTWU5DSFJPTklaQVRJT04gUlVMRVM6Cj4gKwkgKgo+ICsJICogRHJp dmVycyB3aGljaCBzdXBwb3J0IGltcGxpY2l0IHN5bmNocm9uaXphdGlvbiBvZiBidWZmZXIgYWNj ZXNzIGFzCj4gKwkgKiBlLmcuIGV4cG9zZWQgaW4gYEltcGxpY2l0IEZlbmNlIFBvbGwgU3VwcG9y dGBfIHNob3VsZCBmb2xsb3cgdGhlCj4gKwkgKiBiZWxvdyBydWxlcy4KPiArCSAqCj4gKwkgKiAt IERyaXZlcnMgc2hvdWxkIGFkZCBhIHNoYXJlZCBmZW5jZSB0aHJvdWdoCj4gKwkgKiAgIGRtYV9y ZXN2X2FkZF9zaGFyZWRfZmVuY2UoKSBmb3IgYW55dGhpbmcgdGhlIHVzZXJzcGFjZSBBUEkKPiAr CSAqICAgY29uc2lkZXJzIGEgcmVhZCBhY2Nlc3MuIFRoaXMgaGlnaGx5IGRlcGVuZHMgdXBvbiB0 aGUgQVBJIGFuZAo+ICsJICogICB3aW5kb3cgc3lzdGVtOiBFLmcuIE9wZW5HTCBpcyBnZW5lcmFs bHkgaW1wbGljaXRseSBzeW5jaHJvbml6ZWQgb24KPiArCSAqICAgTGludXgsIGJ1dCBleHBsaWNp dGx5IHN5bmNocm9uaXplZCBvbiBBbmRyb2lkLiBXaGVyZWFzIFZ1bGthbiBpcwo+ICsJICogICBn ZW5lcmFsbHkgZXhwbGljaXRseSBzeW5jaHJvbml6ZWQgZm9yIGV2ZXJ5dGhpbmcsIGFuZCB3aW5k b3cgc3lzdGVtCj4gKwkgKiAgIGJ1ZmZlcnMgaGF2ZSBleHBsaWNpdCBBUEkgY2FsbHMgKHdoaWNo IHRoZW4gbmVlZCB0byBtYWtlIHN1cmUgdGhlCj4gKwkgKiAgIGltcGxpY2l0IGZlbmNlcyBzdG9y ZSBoZXJlIGluIEByZXN2IGFyZSB1cGRhdGVkIGNvcnJlY3RseSkuCj4gKwkgKgo+ICsJICogLSBT aW1pbGFybHkgZHJpdmVycyBzaG91bGQgc2V0IHRoZSBleGNsdXNpdmUgZmVuY2UgdGhyb3VnaAo+ ICsJICogICBkbWFfcmVzdl9hZGRfZXhjbF9mZW5jZSgpIGZvciBhbnl0aGluZyB0aGUgdXNlcnNw YWNlIEFQSSBjb25zaWRlcnMKPiArCSAqICAgd3JpdGUgYWNjZXNzLgo+ICsJICoKPiArCSAqIC0g RHJpdmVycyBtYXkganVzdCBhbHdheXMgc2V0IHRoZSBleGNsdXNpdmUgZmVuY2UsIHNpbmNlIHRo YXQgb25seQo+ICsJICogICBjYXVzZXMgdW5lY2Vzc2FyaWx5IHN5bmNocm9uaXphdGlvbiwgYnV0 IG5vIGNvcnJlY3RuZXNzIGlzc3Vlcy4KPiArCSAqCj4gKwkgKiAtIFNvbWUgZHJpdmVycyBvbmx5 IGV4cG9zZSBhIHN5bmNocm9ub3VzIHVzZXJzcGFjZSBBUEkgd2l0aCBubwo+ICsJICogICBwaXBl bGluaW5nIGFjcm9zcyBkcml2ZXJzLiBUaGVzZSBkbyBub3Qgc2V0IGFueSBmZW5jZXMgZm9yIHRo ZWlyCj4gKwkgKiAgIGFjY2Vzcy4gQW4gZXhhbXBsZSBoZXJlIGlzIHY0bC4KPiArCSAqCj4gKwkg KiBEWU5BTUlDIElNUE9SVEVSIFJVTEVTOgo+ICsJICoKPiArCSAqIER5bmFtaWMgaW1wb3J0ZXJz LCBzZWUgZG1hX2J1Zl9hdHRhY2htZW50X2lzX2R5bmFtaWMoKSwgaGF2ZQo+ICsJICogYWRkaXRp b25hbCBjb25zdHJhaW50cyBvbiBob3cgdGhleSBzZXQgdXAgZmVuY2VzOgo+ICsJICoKPiArCSAq IC0gRHluYW1pYyBpbXBvcnRlcnMgbXVzdCBvYmV5IHRoZSBleGNsdXNpdmUgZmVuY2UgYW5kIHdh aXQgZm9yIGl0IHRvCj4gKwkgKiAgIHNpZ25hbCBiZWZvcmUgYWxsb3dpbmcgYWNjZXNzIHRvIHRo ZSBidWZmZXIncyB1bmRlcmx5aW5nIHN0b3JhZ2UKPiArCSAqICAgdGhyb3VnaC4KPiArCSAqCj4g KwkgKiAtIER5bmFtaWMgaW1wb3J0ZXJzIHNob3VsZCBzZXQgZmVuY2VzIGZvciBhbnkgYWNjZXNz IHRoYXQgdGhleSBjYW4ndAo+ICsJICogICBkaXNhYmxlIGltbWVkaWF0ZWx5IGZyb20gdGhlaXIg QGRtYV9idWZfYXR0YWNoX29wcy5tb3ZlX25vdGlmeQo+ICsJICogICBjYWxsYmFjay4KPiAgIAkg Ki8KPiAgIAlzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3Y7Cj4gICAKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id ACD08C4743C for ; Wed, 23 Jun 2021 08:41:46 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6A5A961026 for ; Wed, 23 Jun 2021 08:41:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6A5A961026 Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 986C76E884; Wed, 23 Jun 2021 08:41:45 +0000 (UTC) Received: from NAM04-MW2-obe.outbound.protection.outlook.com (mail-mw2nam08on2051.outbound.protection.outlook.com [40.107.101.51]) by gabe.freedesktop.org (Postfix) with ESMTPS id AA0806E884; Wed, 23 Jun 2021 08:41:44 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GYbnYTJFO+T6KA7blgMgo25w7Fgv/An7d64xEbDgbyJ/iBuFerucmaCVGp7i17igccAf0GapvgsbsAJk4kJLxkWE8fiHZoDm6OOqZOEAjBLZ9ctDkUQdKFMa9ZKnhvdd4AjOtG1LHA4SUZ92m05J6bYuQsQa48ihlnwbQCkjiAlt/llsbTTctOpRjFwTMx+YmjbsOJMZzgocRSKevoTn3VLWUny9SkBdeO2RggmGaq6lb+cxR8ULqHuqUb5VGgNI/o1ZYQYdPAc95NrMEr8c2mrX+acxvpWEyh+ABTyP9HiyvE47Wz0sjFCm9/DtXozl1xlASPkE0LBk5xVh/ecBzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cRWxGvUUg8QU8zipaNP5hsOJMZE9GtX7yzzg69y+RzE=; b=n4eYlKZGJQVfbmV6koHrvLmLJMHC+PQt0gXICugA8w8IkjJq7ssx+/kz5sIyDdsm4zEv/sAPXbpYEcRd+aL0GCRoiaf0bj4327+mPksIbwsYJ9GMsRjxd1v5X1Htv8M/bFkB+EvRKJguKEcoRBOuEZHwHtnFGw4lmvq9eTxwjHDaJsmEmRgQBT0JlhBqO61cjztgk9vpIcgq0SyaHoZIXTmpTZEVKKvBB0J0daw39IF4A2ZL1zdVcHFg5mVHf9agy4TkuAOkFR8y2/WcC4ixA7s1cH/rDF/EU9dfMZFJMaOi2THjrUgpdg1Uk1YTikFJqLBiX8kmx6zVdjJ7hI63/g== 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=cRWxGvUUg8QU8zipaNP5hsOJMZE9GtX7yzzg69y+RzE=; b=11wjgAXv2LGNb/YFFgV3myrR6a3wFRWjl0cvCEj0guiNTFMGzLylRvHVX9izx+JePdCN3zuZdYxd6QXn5oRytwGI57FtyvlvRTy8mjaGjNmHbeI78r/MkFhrAOifVS8PzYno3KsH6aJkMkX5Gu934BtjqdF5hwsqdU1boROflGk= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=amd.com; Received: from MN2PR12MB3775.namprd12.prod.outlook.com (10.255.86.19) by MN2PR12MB4239.namprd12.prod.outlook.com (52.135.48.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.18; Wed, 23 Jun 2021 08:41:41 +0000 Received: from MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6c9e:1e08:7617:f756]) by MN2PR12MB3775.namprd12.prod.outlook.com ([fe80::6c9e:1e08:7617:f756%5]) with mapi id 15.20.4242.024; Wed, 23 Jun 2021 08:41:41 +0000 Subject: Re: [PATCH 03/15] dma-buf: Document dma-buf implicit fencing/resv fencing rules To: Daniel Vetter , DRI Development References: <20210622165511.3169559-1-daniel.vetter@ffwll.ch> <20210622165511.3169559-4-daniel.vetter@ffwll.ch> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: Date: Wed, 23 Jun 2021 10:41:33 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: <20210622165511.3169559-4-daniel.vetter@ffwll.ch> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-US X-Originating-IP: [2a02:908:1252:fb60:69e4:a619:aa86:4e9c] X-ClientProxiedBy: FR3P281CA0009.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::8) To MN2PR12MB3775.namprd12.prod.outlook.com (2603:10b6:208:159::19) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2a02:908:1252:fb60:69e4:a619:aa86:4e9c] (2a02:908:1252:fb60:69e4:a619:aa86:4e9c) by FR3P281CA0009.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.7 via Frontend Transport; Wed, 23 Jun 2021 08:41:38 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a051efd1-3e09-41ba-fd67-08d93622b89f X-MS-TrafficTypeDiagnostic: MN2PR12MB4239: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8882; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8GXNFTqpDbzvFQHi+Djcw2G2tGPWhKiWEXjVWMiLzfTSBH8s4oDPsF1M971fPQRDuB5wshsIqrflOQtvCxxP2jE9F+vPxuaXJPR0Nl7CTVrwnUhhOulnwtwVWSxiFvz+V7HCSkf+iOHoDa+OQBPF5SNhJwuLoG6rjih3cWp5Ayc467TQHwLlSgBzcRhWY8kCrfZCf6rtUF1ylTtusuKScSJxUDzkowVvCuZHVWqBVcaCKjWKHJaXLXIicw/fe3SRKjl5asw68A8qEXWva0DhJIzmQVZpI/DDeXoUeK0bJkBfczsky2/X9nVX02+sfErAhN3CISBkS+MwkYYZj2EjBT7J+n7+uQE+bV3UDTL5JIge5Pnux5JBkf3GAZU5ki56N7oJByYhTfZJkmiKuo56WZQQLnMyXxsm6iAMc63nkh+lkKRl1r8gRL+pyTHoBsHwpqqrKZAs4tGiIPR6z3ihThtKjVgRbbRFSETRIUMZ0Qt7VdB6sPntZiG3DR59KuoVXMok9DeruqiCbVDvgRfjeOrNXuWrQnCVkEiRMULky2SftfeIkCQR9l4dk7VSVUE9ErMO0gUT9NqfDovfGRY/p8aOQg0r/tckp+12AvgzED9d6axC5eJq66ZQWROhrIHAnijb1SSnMhrINJOivwpx5zi9dFDzrHsxSvJSXMVkjPiIDEqy6rII0+eD5c+Z1agCvgi3hsqwT/64C8cm6cfjv9omFAxTVjtdJdQmPLj/26WQm07nUKWKp+psqK/CrQpDqoyuNZqsn2bVsgaljiSmqof7OZUIaLHM2S+165uRZfcojf+7AOFDqDQmpm1K5KnHYR5oP/JGBzLMTrb+f+qwJsw6Qfq9qfv3iLlXN7yU+6v4MtaB59LAsoUuQfj4yiKG0LhmTLY3yeiLuq0dW1GOVg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR12MB3775.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(39860400002)(396003)(346002)(376002)(136003)(8676002)(66556008)(6486002)(66476007)(2616005)(36756003)(8936002)(66946007)(45080400002)(316002)(186003)(16526019)(86362001)(478600001)(966005)(31696002)(66574015)(6666004)(30864003)(110136005)(83380400001)(31686004)(4326008)(7416002)(54906003)(38100700002)(5660300002)(2906002)(21314003)(45980500001)(43740500002)(309714004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VkR1M3NhamlIYVdsY01rb2daUDdKeUtZaUJUK3V2WG14UTk4ZEdaRXNTbGc2?= =?utf-8?B?SHVMdGw2NzRPOG1VS1g3U3hvWEtaM2xocU9zUXhXQU1BN3VwblRkSTdyWGJB?= =?utf-8?B?dGxqV0RRaEVqanZDdlZWMG1XYjVZazc1RUhzS1NjWVBGZWxTbVUxcEw0M2Fn?= =?utf-8?B?N1E2SWQrK2JDemNIcjkrWDF1Rmtid3NKOStuZ2NGVDBQbDA5cStZVWlIczFP?= =?utf-8?B?clFsazNtaEpaT3VIVnNXNnQ3cTBvMGNmbENjUWNBTURwMUk0VEpncHBWOFE0?= =?utf-8?B?dHNpRnhXbkZhdGpucHBOM1hmRVRCcTB0cnVDSEJoZFBTRkEyRjBLSEo3TmNl?= =?utf-8?B?TnFxYVh5elhpK2RzdnFKOUc1aFA5VmZtSklWeTJlYjk2akorODFhcGY1MVYv?= =?utf-8?B?dStGSHhjMlcwdjdxSmRqd1pXdlNmZXVkWENIcnNvUjRYdFk3b2M2b21CL29z?= =?utf-8?B?eFVCeXpaeGRFaGJXbm0zL1ZHQ3Bzd2hJWEZPTzRpc20vWS8yN0lGaFF4NGZM?= =?utf-8?B?dTZpODZmc3NpRXRQWms0Y3AvckhHV3JneU42eTkvZ3p5Mmo1WGpHY3hWbW1O?= =?utf-8?B?bVlUVFFjbjNaaHpvbzUzT2VEVDdwVFgzQ0p3Rm0yKytXTisvZlRyRlZEclpo?= =?utf-8?B?clRSWm9XYjZSL0tzL1ZCUkpsY0NUYWR2TFk4cTU3bUsyajZ2UG0zU1pmalpP?= =?utf-8?B?cGhodVhDbUN5bUlMSFhoMHFNUnIzVUR5M2ZqVURmSTRNckVTa1NMUzg5bHFJ?= =?utf-8?B?bEFHbC9GQS9sanlYTlZIS3Fsd1VTeHBCWG94TTNLRVpYMCtGQjNWUTdCalQy?= =?utf-8?B?N0NBdFl2YUk1Y0FaenRBczNwdEZoeFRWSE1BY2FJZUdxN1pPQ2pHYjdUYlZS?= =?utf-8?B?N2dNbFdZaHduQm02U0JybldPQzAxZFhNUXRTUTQxcm11NTFrQTYxV3BFNGgv?= =?utf-8?B?a1dHMTdPTS9NTnBGYXFiNzdLODJFZTIyTXUvcUNrRjBLQjBFc2d3SXdGMVU4?= =?utf-8?B?ZUhJNkhVcWF1MG9GYjgvSVFuWXN0OUZ4aHBueWtzcVFBdHEyOVFiTEJVbEFL?= =?utf-8?B?dmxidGQ5dDZVbjJsOThqQVh6akJnU3d4WHFvVUtCSDQweDBKOHdoUm1WdWRE?= =?utf-8?B?VUZ1K0hSeEYvRXhZaWpWcnBBMFpjQmY2WElveGEzWVFMdy9WSEpRQkZWQ2xG?= =?utf-8?B?d1VQaDlBRFJuTVh5VHZJMnd0WHQ4cmgxamVwb3lreDVNcUxHUHRhMC9iaG5U?= =?utf-8?B?ZWU3VVNqZWJHcHJURnVOdUljRm1LcjQzN3h2U2l0bG5Uc252RzFDZ2MrSmpu?= =?utf-8?B?KzBERkhSeTZUSjB4NFErTDRDbFJLYVEweWJJOVltQzQvcXdKRlBaNWhuSmJa?= =?utf-8?B?QXgwb2lvS1AxRS84VmZhMHhYQjN6MzV3YTgrRTNRSVFCUWVUSHBCMjEwQThu?= =?utf-8?B?SFFzZjJ1bkYrR1BrSk5XYUp5QUVreVpCTWw4NEZ1YkJoMEc3UExVZVdQeUVx?= =?utf-8?B?ZG5vZDhBa3JIckZYdW15N1FVQkxYZ3lNcXJiNFNzaGVyaldzTFVabzJGcWpP?= =?utf-8?B?U2hwaW9HMjBNMDR6T3luM3NsdEZRSHRENm1TVGQvcXJIRnVLWXdPQ2FZVk14?= =?utf-8?B?Um1QY1h3MjdPS2VrQnRNTER1b1RrdjBIZGFGclBpSm9PWk4renNjSXk2U0RD?= =?utf-8?B?VGNUMTM2bTZqOWMwbG10KzUxeVhPbjRYdkhacjZ5U2xkZS96a0Y3eE5DMTF0?= =?utf-8?B?RDkySHI0YzZPVUlDMjlaRmdUd0tMc1JWb1VIVDNCOXhVWVZJM3RzcjdVSXBC?= =?utf-8?B?UlF2TFQ3REVKeDQyYnJlRVJ4c20vK1AvdEg2UWZzdlRmUTFmREpob1NkemYx?= =?utf-8?Q?a5ymKO3tt2Kg6?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: a051efd1-3e09-41ba-fd67-08d93622b89f X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB3775.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2021 08:41:40.9353 (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: kkOIee4zUf4mM/LcN7UGNGZUV1cb3otk9kLStUGHIavFCtBO0OdoYQtuZM+QvxC8 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4239 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Rob Clark , Daniel Stone , Daniel Vetter , Intel Graphics Development , Kevin Wang , linaro-mm-sig@lists.linaro.org, Luben Tuikov , "Kristian H . Kristensen" , Chen Li , Alex Deucher , mesa-dev@lists.freedesktop.org, =?UTF-8?Q?Michel_D=c3=a4nzer?= , Dennis Li , Deepak R Varma Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Am 22.06.21 um 18:54 schrieb Daniel Vetter: > Docs for struct dma_resv are fairly clear: > > "A reservation object can have attached one exclusive fence (normally > associated with write operations) or N shared fences (read > operations)." > > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdri.freedesktop.org%2Fdocs%2Fdrm%2Fdriver-api%2Fdma-buf.html%23reservation-objects&data=04%7C01%7Cchristian.koenig%40amd.com%7C42d8c70b62084a846e9508d9359e8629%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637599777264104449%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=rcd4i0VpK3BhwFLzsxd66OhshdJJh3yhRo2MOqlCEBo%3D&reserved=0 > > Furthermore a review across all of upstream. > > First of render drivers and how they set implicit fences: > > - nouveau follows this contract, see in validate_fini_no_ticket() > > nouveau_bo_fence(nvbo, fence, !!b->write_domains); > > and that last boolean controls whether the exclusive or shared fence > slot is used. > > - radeon follows this contract by setting > > p->relocs[i].tv.num_shared = !r->write_domain; > > in radeon_cs_parser_relocs(), which ensures that the call to > ttm_eu_fence_buffer_objects() in radeon_cs_parser_fini() will do the > right thing. > > - vmwgfx seems to follow this contract with the shotgun approach of > always setting ttm_val_buf->num_shared = 0, which means > ttm_eu_fence_buffer_objects() will only use the exclusive slot. > > - etnaviv follows this contract, as can be trivially seen by looking > at submit_attach_object_fences() > > - i915 is a bit a convoluted maze with multiple paths leading to > i915_vma_move_to_active(). Which sets the exclusive flag if > EXEC_OBJECT_WRITE is set. This can either come as a buffer flag for > softpin mode, or through the write_domain when using relocations. It > follows this contract. > > - lima follows this contract, see lima_gem_submit() which sets the > exclusive fence when the LIMA_SUBMIT_BO_WRITE flag is set for that > bo > > - msm follows this contract, see msm_gpu_submit() which sets the > exclusive flag when the MSM_SUBMIT_BO_WRITE is set for that buffer > > - panfrost follows this contract with the shotgun approach of just > always setting the exclusive fence, see > panfrost_attach_object_fences(). Benefits of a single engine I guess > > - v3d follows this contract with the same shotgun approach in > v3d_attach_fences_and_unlock_reservation(), but it has at least an > XXX comment that maybe this should be improved > > - v4c uses the same shotgun approach of always setting an exclusive > fence, see vc4_update_bo_seqnos() > > - vgem also follows this contract, see vgem_fence_attach_ioctl() and > the VGEM_FENCE_WRITE. This is used in some igts to validate prime > sharing with i915.ko without the need of a 2nd gpu > > - vritio follows this contract again with the shotgun approach of > always setting an exclusive fence, see virtio_gpu_array_add_fence() > > This covers the setting of the exclusive fences when writing. > > Synchronizing against the exclusive fence is a lot more tricky, and I > only spot checked a few: > > - i915 does it, with the optional EXEC_OBJECT_ASYNC to skip all > implicit dependencies (which is used by vulkan) > > - etnaviv does this. Implicit dependencies are collected in > submit_fence_sync(), again with an opt-out flag > ETNA_SUBMIT_NO_IMPLICIT. These are then picked up in > etnaviv_sched_dependency which is the > drm_sched_backend_ops->dependency callback. > > - v4c seems to not do much here, maybe gets away with it by not having > a scheduler and only a single engine. Since all newer broadcom chips than > the OG vc4 use v3d for rendering, which follows this contract, the > impact of this issue is fairly small. > > - v3d does this using the drm_gem_fence_array_add_implicit() helper, > which then it's drm_sched_backend_ops->dependency callback > v3d_job_dependency() picks up. > > - panfrost is nice here and tracks the implicit fences in > panfrost_job->implicit_fences, which again the > drm_sched_backend_ops->dependency callback panfrost_job_dependency() > picks up. It is mildly questionable though since it only picks up > exclusive fences in panfrost_acquire_object_fences(), but not buggy > in practice because it also always sets the exclusive fence. It > should pick up both sets of fences, just in case there's ever going > to be a 2nd gpu in a SoC with a mali gpu. Or maybe a mali SoC with a > pcie port and a real gpu, which might actually happen eventually. A > bug, but easy to fix. Should probably use the > drm_gem_fence_array_add_implicit() helper. > > - lima is nice an easy, uses drm_gem_fence_array_add_implicit() and > the same schema as v3d. > > - msm is mildly entertaining. It also supports MSM_SUBMIT_NO_IMPLICIT, > but because it doesn't use the drm/scheduler it handles fences from > the wrong context with a synchronous dma_fence_wait. See > submit_fence_sync() leading to msm_gem_sync_object(). Investing into > a scheduler might be a good idea. > > - all the remaining drivers are ttm based, where I hope they do > appropriately obey implicit fences already. I didn't do the full > audit there because a) not follow the contract would confuse ttm > quite well and b) reading non-standard scheduler and submit code > which isn't based on drm/scheduler is a pain. > > Onwards to the display side. > > - Any driver using the drm_gem_plane_helper_prepare_fb() helper will > correctly. Overwhelmingly most drivers get this right, except a few > totally dont. I'll follow up with a patch to make this the default > and avoid a bunch of bugs. > > - I didn't audit the ttm drivers, but given that dma_resv started > there I hope they get this right. > > In conclusion this IS the contract, both as documented and > overwhelmingly implemented, specically as implemented by all render > drivers except amdgpu. > > Amdgpu tried to fix this already in > > commit 049aca4363d8af87cab8d53de5401602db3b9999 > Author: Christian König > Date: Wed Sep 19 16:54:35 2018 +0200 > > drm/amdgpu: fix using shared fence for exported BOs v2 > > but this fix falls short on a number of areas: > > - It's racy, by the time the buffer is shared it might be too late. To > make sure there's definitely never a problem we need to set the > fences correctly for any buffer that's potentially exportable. > > - It's breaking uapi, dma-buf fds support poll() and differentitiate > between, which was introduced in > > commit 9b495a5887994a6d74d5c261d012083a92b94738 > Author: Maarten Lankhorst > Date: Tue Jul 1 12:57:43 2014 +0200 > > dma-buf: add poll support, v3 > > - Christian König wants to nack new uapi building further on this > dma_resv contract because it breaks amdgpu, quoting > > "Yeah, and that is exactly the reason why I will NAK this uAPI change. > > "This doesn't works for amdgpu at all for the reasons outlined above." > > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fdri-devel%2Ff2eb6751-2f82-9b23-f57e-548de5b729de%40gmail.com%2F&data=04%7C01%7Cchristian.koenig%40amd.com%7C42d8c70b62084a846e9508d9359e8629%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637599777264114436%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=CboicEqZau1%2FlEgEM3w4Ye2Nq6wULjePIehxaMqW3Fg%3D&reserved=0 > > Rejecting new development because your own driver is broken and > violates established cross driver contracts and uapi is really not > how upstream works. > > Now this patch will have a severe performance impact on anything that > runs on multiple engines. So we can't just merge it outright, but need > a bit a plan: > > - amdgpu needs a proper uapi for handling implicit fencing. The funny > thing is that to do it correctly, implicit fencing must be treated > as a very strange IPC mechanism for transporting fences, where both > setting the fence and dependency intercepts must be handled > explicitly. Current best practices is a per-bo flag to indicate > writes, and a per-bo flag to to skip implicit fencing in the CS > ioctl as a new chunk. > > - Since amdgpu has been shipping with broken behaviour we need an > opt-out flag from the butchered implicit fencing model to enable the > proper explicit implicit fencing model. > > - for kernel memory fences due to bo moves at least the i915 idea is > to use ttm_bo->moving. amdgpu probably needs the same. > > - since the current p2p dma-buf interface assumes the kernel memory > fence is in the exclusive dma_resv fence slot we need to add a new > fence slot for kernel fences, which must never be ignored. Since > currently only amdgpu supports this there's no real problem here > yet, until amdgpu gains a NO_IMPLICIT CS flag. > > - New userspace needs to ship in enough desktop distros so that users > wont notice the perf impact. I think we can ignore LTS distros who > upgrade their kernels but not their mesa3d snapshot. > > - Then when this is all in place we can merge this patch here. > > What is not a solution to this problem here is trying to make the > dma_resv rules in the kernel more clever. The fundamental issue here > is that the amdgpu CS uapi is the least expressive one across all > drivers (only equalled by panfrost, which has an actual excuse) by not > allowing any userspace control over how implicit sync is conducted. > > Until this is fixed it's completely pointless to make the kernel more > clever to improve amdgpu, because all we're doing is papering over > this uapi design issue. amdgpu needs to attain the status quo > established by other drivers first, once that's achieved we can tackle > the remaining issues in a consistent way across drivers. > > v2: Bas pointed me at AMDGPU_GEM_CREATE_EXPLICIT_SYNC, which I > entirely missed. > > This is great because it means the amdgpu specific piece for proper > implicit fence handling exists already, and that since a while. The > only thing that's now missing is > - fishing the implicit fences out of a shared object at the right time > - setting the exclusive implicit fence slot at the right time. > > Jason has a patch series to fill that gap with a bunch of generic > ioctl on the dma-buf fd: > > https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kernel.org%2Fdri-devel%2F20210520190007.534046-1-jason%40jlekstrand.net%2F&data=04%7C01%7Cchristian.koenig%40amd.com%7C42d8c70b62084a846e9508d9359e8629%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637599777264114436%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=%2FXL98%2F2%2F1GZOICxCTPTzfIvcSm144vPBjUDM29aeyF8%3D&reserved=0 > > v3: Since Christian has fixed amdgpu now in > > commit 8c505bdc9c8b955223b054e34a0be9c3d841cd20 (drm-misc/drm-misc-next) > Author: Christian König > Date: Wed Jun 9 13:51:36 2021 +0200 > > drm/amdgpu: rework dma_resv handling v3 > > Use the audit covered in this commit message as the excuse to update > the dma-buf docs around dma_buf.resv usage across drivers. > > Since dynamic importers have different rules also hammer these in > again while we're at it. > > Cc: mesa-dev@lists.freedesktop.org > Cc: Bas Nieuwenhuizen > Cc: Dave Airlie > Cc: Rob Clark > Cc: Kristian H. Kristensen > Cc: Michel Dänzer > Cc: Daniel Stone > Cc: Sumit Semwal > Cc: "Christian König" > Cc: Alex Deucher > Cc: Daniel Vetter > Cc: Deepak R Varma > Cc: Chen Li > Cc: Kevin Wang > Cc: Dennis Li > Cc: Luben Tuikov > Cc: linaro-mm-sig@lists.linaro.org > Signed-off-by: Daniel Vetter Reviewed-by: Christian König > --- > include/linux/dma-buf.h | 39 +++++++++++++++++++++++++++++++++++++++ > 1 file changed, 39 insertions(+) > > diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h > index 6d18b9e448b9..4807cefe81f5 100644 > --- a/include/linux/dma-buf.h > +++ b/include/linux/dma-buf.h > @@ -388,6 +388,45 @@ struct dma_buf { > * @resv: > * > * Reservation object linked to this dma-buf. > + * > + * IMPLICIT SYNCHRONIZATION RULES: > + * > + * Drivers which support implicit synchronization of buffer access as > + * e.g. exposed in `Implicit Fence Poll Support`_ should follow the > + * below rules. > + * > + * - Drivers should add a shared fence through > + * dma_resv_add_shared_fence() for anything the userspace API > + * considers a read access. This highly depends upon the API and > + * window system: E.g. OpenGL is generally implicitly synchronized on > + * Linux, but explicitly synchronized on Android. Whereas Vulkan is > + * generally explicitly synchronized for everything, and window system > + * buffers have explicit API calls (which then need to make sure the > + * implicit fences store here in @resv are updated correctly). > + * > + * - Similarly drivers should set the exclusive fence through > + * dma_resv_add_excl_fence() for anything the userspace API considers > + * write access. > + * > + * - Drivers may just always set the exclusive fence, since that only > + * causes unecessarily synchronization, but no correctness issues. > + * > + * - Some drivers only expose a synchronous userspace API with no > + * pipelining across drivers. These do not set any fences for their > + * access. An example here is v4l. > + * > + * DYNAMIC IMPORTER RULES: > + * > + * Dynamic importers, see dma_buf_attachment_is_dynamic(), have > + * additional constraints on how they set up fences: > + * > + * - Dynamic importers must obey the exclusive fence and wait for it to > + * signal before allowing access to the buffer's underlying storage > + * through. > + * > + * - Dynamic importers should set fences for any access that they can't > + * disable immediately from their @dma_buf_attach_ops.move_notify > + * callback. > */ > struct dma_resv *resv; >