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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 DB782C4743E for ; Fri, 4 Jun 2021 17:59:13 +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 A6039611F0 for ; Fri, 4 Jun 2021 17:59:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org A6039611F0 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 0DB0C6F889; Fri, 4 Jun 2021 17:59:11 +0000 (UTC) Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by gabe.freedesktop.org (Postfix) with ESMTPS id C85426F888 for ; Fri, 4 Jun 2021 17:59:08 +0000 (UTC) Received: by mail-wr1-x430.google.com with SMTP id l2so10152345wrw.6 for ; Fri, 04 Jun 2021 10:59:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=Re/Xyf+iY9DUJLPX9PqiA/+dtoiYMDvI4J16ARI4DV8=; b=fNEC1mxTW60Re7s3LONtOadZEHIkf5bwV/PpP6EWFpk7HQ+MCFoURkGL+KWj85blTn lKTYocNouWz3eoCBGcWfhvzJOWMTeeAjcugEOQ0e4yAdrNxmwqMi4y3DdiUIV6I7SuFn pSiL/HyYelsZUO8mRHT+3SPzqPNV1riQAfbfA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=Re/Xyf+iY9DUJLPX9PqiA/+dtoiYMDvI4J16ARI4DV8=; b=VijpLCirelpegLJoOxopg0V9fY3Ygot5AIjI/Sv4Km8renATuSfl7qyWlUwdA1RKaW p7gBgEETn5oGeiHy2Jhd37MscCXqD43vpaHNXPudffRkoyOw9491kv+WiM14cwdQy01E YAk7hLQfkcpF2hNw9T2e7Ojw1zwWcF7XdnnXjQQ1nLpB9s8sKNwlZOt7lGq0283NsRA8 7ytmozx8LZeWEewZvhm64iaBiX2K5S5cxii/32qe0xA764ffRCzSUWI65xDJc8sJofjD fHCQRQrLM0ZjTxuviPTHTorKppYXCCHDCetw/zLmkkCYVnq7DUrfSJOmv6yhGp7IB00G 4q7Q== X-Gm-Message-State: AOAM530NBpVJu1MQtb6N9VXFW+vihrg5l5+YRLe0u0NIDHDIwcJpQLBw bNFoRG0+X7+Zw7+BVWLPsOVMNw== X-Google-Smtp-Source: ABdhPJzA0d9SpfNsLd1j+KUDQe8DIwXCpUbWPsdWysTVdm9ZbH/dlsGxEjT0Cpi7fPuhyCzgkYVzzg== X-Received: by 2002:adf:cf07:: with SMTP id o7mr5127273wrj.399.1622829547482; Fri, 04 Jun 2021 10:59:07 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id u2sm7168981wrn.38.2021.06.04.10.59.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jun 2021 10:59:07 -0700 (PDT) Date: Fri, 4 Jun 2021 19:59:05 +0200 From: Daniel Vetter To: Matthew Brost Message-ID: References: <20210526233357.9165-1-matthew.brost@intel.com> <20210526233357.9165-3-matthew.brost@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20210526233357.9165-3-matthew.brost@intel.com> X-Operating-System: Linux phenom 5.10.32scarlett+ Subject: Re: [Intel-gfx] [RFC PATCH 2/2] drm/doc/rfc: i915 new parallel submission uAPI plan 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: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, carl.zhang@intel.com, jason.ekstrand@intel.com, daniel.vetter@intel.com, mesa-dev@lists.freedesktop.org, christian.koenig@amd.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCBNYXkgMjYsIDIwMjEgYXQgMDQ6MzM6NTdQTSAtMDcwMCwgTWF0dGhldyBCcm9zdCB3 cm90ZToKPiBBZGQgZW50cnkgZm9yIGk5MTUgbmV3IHBhcmFsbGVsIHN1Ym1pc3Npb24gdUFQSSBw bGFuLgo+IAo+IHYyOgo+ICAoRGFuaWVsIFZldHRlcik6Cj4gICAtIEV4cGFuZCBsb2dpY2FsIG9y ZGVyIGV4cGxhaW5hdGlvbgo+ICAgLSBBZGQgZHVtbXkgaGVhZGVyCj4gICAtIE9ubHkgYWxsb3cg TiBCQnMgaW4gZXhlY2J1ZiBJT0NUTAo+ICAgLSBDb25maWd1cmUgcGFyYWxsZWwgc3VibWlzc2lv biBwZXIgc2xvdCBub3QgcGVyIGdlbSBjb250ZXh0Cj4gdjM6Cj4gIChNYXJjaW4gxZpsdXNhcnop Ogo+ICAgLSBMb3QncyBvZiB0eXBvcyAvIGJhZCBlbmdsaXNoIGZpeGVkCj4gIChUdnJ0a28gVXJz dWxpbik6Cj4gICAtIENvbnNpc3RlbnQgcHNldWRvIGNvZGUsIGNsZWFuIHVwIHdvcmRpbmcgaW4g ZGVzY3JpcHRpb25zCj4gCj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRl bC5jb20+Cj4gQ2M6IFRvbnkgWWUgPHRvbnkueWVAaW50ZWwuY29tPgo+IENDOiBDYXJsIFpoYW5n IDxjYXJsLnpoYW5nQGludGVsLmNvbT4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRl ckBpbnRlbC5jb20+Cj4gQ2M6IEphc29uIEVrc3RyYW5kIDxqYXNvbkBqbGVrc3RyYW5kLm5ldD4K PiBTaWduZWQtb2ZmLWJ5OiBNYXR0aGV3IEJyb3N0IDxtYXR0aGV3LmJyb3N0QGludGVsLmNvbT4K PiAtLS0KPiAgRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfcGFyYWxsZWxfZXhlY2J1Zi5oIHwg MTQ1ICsrKysrKysrKysrKysrKysrKwo+ICBEb2N1bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9zY2hl ZHVsZXIucnN0ICAgICAgfCAgNTUgKysrKysrLQo+ICAyIGZpbGVzIGNoYW5nZWQsIDE5OCBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRh dGlvbi9ncHUvcmZjL2k5MTVfcGFyYWxsZWxfZXhlY2J1Zi5oCj4gCj4gZGlmZiAtLWdpdCBhL0Rv Y3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X3BhcmFsbGVsX2V4ZWNidWYuaCBiL0RvY3VtZW50YXRp b24vZ3B1L3JmYy9pOTE1X3BhcmFsbGVsX2V4ZWNidWYuaAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yMGRlMjA2ZTNhYjQKPiAtLS0gL2Rldi9udWxsCj4gKysr IGIvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVfcGFyYWxsZWxfZXhlY2J1Zi5oCj4gQEAgLTAs MCArMSwxNDUgQEAKPiArI2RlZmluZSBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfUEFSQUxMRUxf U1VCTUlUIDIgLyogc2VlIGk5MTVfY29udGV4dF9lbmdpbmVzX3BhcmFsbGVsX3N1Ym1pdCAqLwo+ ICsKPiArLyoKPiArICogaTkxNV9jb250ZXh0X2VuZ2luZXNfcGFyYWxsZWxfc3VibWl0OgoKU28g dGhlIGlkZWEgaXMgdG8gbWFrZSB0aGVzZSBrZXJuZWxkb2MgYW5kIHB1bGwgdGhlbSBpbnRvIHRo ZSByZmMgc2VjdGlvbi4KVGhlbiB3aGVuIHdlIG1lcmdlLCBtb3ZlIHRoZW0gdG8gdGhlIHJlYWwg dWFwaSBzZWN0aW9uLCBsaWtlIHdoYXQgTWF0dCBoYXMKZG9uZSBmb3IgbG1lbS4KCj4gKyAqCj4g KyAqIFNldHVwIGEgc2xvdCBpbiB0aGUgY29udGV4dCBlbmdpbmUgbWFwIHRvIGFsbG93IG11bHRp cGxlIEJCcyB0byBiZSBzdWJtaXR0ZWQKPiArICogaW4gYSBzaW5nbGUgZXhlY2J1ZiBJT0NUTC4g VGhvc2UgQkJzIHdpbGwgdGhlbiBiZSBzY2hlZHVsZWQgdG8gcnVuIG9uIHRoZSBHUFUKPiArICog aW4gcGFyYWxsZWwuIE11bHRpcGxlIGhhcmR3YXJlIGNvbnRleHRzIGFyZSBjcmVhdGVkIGludGVy bmFsbHkgaW4gdGhlIGk5MTUKPiArICogcnVuIHRoZXNlIEJCcy4gT25jZSBhIHNsb3QgaXMgY29u ZmlndXJlZCBmb3IgTiBCQnMgb25seSBOIEJCcyBjYW4gYmUKPiArICogc3VibWl0dGVkIGluIGVh Y2ggZXhlY2J1ZiBJT0NUTCBhbmQgdGhpcyBpcyBpbXBsaWNpdCBiZWhhdmlvciBlLmcuIFRoZSB1 c2VyCj4gKyAqIGRvZXNuJ3QgdGVsbCB0aGUgZXhlY2J1ZiBJT0NUTCB0aGVyZSBhcmUgTiBCQnMs IHRoZSBleGVjYnVmIElPQ1RMIGtub3cgaG93Cj4gKyAqIG1hbnkgQkJzIHRoZXJlIGFyZSBiYXNl ZCBvbiB0aGUgc2xvdHMgY29uZmlndXJhdGlvbi4gVGhlIE4gQkJzIGFyZSB0aGUgbGFzdCBOCj4g KyAqIGJ1ZmZlciBvYmplY3RzIGZvciBmaXJzdCBOIGlmIEk5MTVfRVhFQ19CQVRDSF9GSVJTVCBp cyBzZXQuCgpzL2Zvci9vci8KCj4gKyAqCj4gKyAqIFRoZXJlIGFyZSB0d28gY3VycmVudGx5IGRl ZmluZWQgd2F5cyB0byBjb250cm9sIHRoZSBwbGFjZW1lbnQgb2YgdGhlCj4gKyAqIGhhcmR3YXJl IGNvbnRleHRzIG9uIHBoeXNpY2FsIGVuZ2luZXM6IGRlZmF1bHQgYmVoYXZpb3IgKG5vIGZsYWdz KSBhbmQKPiArICogSTkxNV9QQVJBTExFTF9JTVBMSUNJVF9CT05EUyAoYSBmbGFnKS4gTW9yZSBm bGFncyBtYXkgYmUgYWRkZWQgdGhlIGluIHRoZQo+ICsgKiBmdXR1cmUgYXMgbmV3IGhhcmR3YXJl IC8gdXNlIGNhc2VzIGFyaXNlLiBEZXRhaWxzIG9mIGhvdyB0byB1c2UgdGhpcwo+ICsgKiBpbnRl cmZhY2UgYWJvdmUgdGhlIGZsYWdzIGZpZWxkIGluIHRoaXMgc3RydWN0dXJlLgo+ICsgKgo+ICsg KiBSZXR1cm5zIC1FSU5WQUwgaWYgaGFyZHdhcmUgY29udGV4dCBwbGFjZW1lbnQgY29uZmlndXJh dGlvbiBpcyBpbnZhbGlkIG9yIGlmCj4gKyAqIHRoZSBwbGFjZW1lbnQgY29uZmlndXJhdGlvbiBp c24ndCBzdXBwb3J0ZWQgb24gdGhlIHBsYXRmb3JtIC8gc3VibWlzc2lvbgo+ICsgKiBpbnRlcmZh Y2UuCj4gKyAqIFJldHVybnMgLUVOT0RFViBpZiBleHRlbnNpb24gaXNuJ3Qgc3VwcG9ydGVkIG9u IHRoZSBwbGF0Zm9ybSAvIHN1Ym1pc3Npb24KPiArICogaW50ZWZhY2UuCj4gKyAqLwo+ICtzdHJ1 Y3QgaTkxNV9jb250ZXh0X2VuZ2luZXNfcGFyYWxsZWxfc3VibWl0IHsKPiArCXN0cnVjdCBpOTE1 X3VzZXJfZXh0ZW5zaW9uIGJhc2U7Cj4gKwo+ICsJX191MTYgZW5naW5lX2luZGV4OwkvKiBzbG90 IGZvciBwYXJhbGxlbCBlbmdpbmUgKi8KCktlcm5lbCBkb2MgaGVyZSBmb3IgdGhlIGlubGluZSBj b21tZW50cyB0b28uCgo+ICsJX191MTYgd2lkdGg7CQkvKiBudW1iZXIgb2YgY29udGV4dHMgcGVy IHBhcmFsbGVsIGVuZ2luZSAqLwo+ICsJX191MTYgbnVtX3NpYmxpbmdzOwkvKiBudW1iZXIgb2Yg c2libGluZ3MgcGVyIGNvbnRleHQgKi8KPiArCV9fdTE2IG1iejE2Owo+ICsvKgo+ICsgKiBEZWZh dWx0IHBsYWNlbWVudCBiZWhhdmlvciAoY3VycmVudGx5IHVuc3VwcG9ydGVkKToKPiArICoKPiAr ICogQWxsb3cgQkJzIHRvIGJlIHBsYWNlZCBvbiBhbnkgYXZhaWxhYmxlIGVuZ2luZSBpbnN0YW5j ZS4gSW4gdGhpcyBjYXNlIGVhY2gKPiArICogY29udGV4dCdzIGVuZ2luZSBtYXNrIGluZGljYXRl cyB3aGVyZSB0aGF0IGNvbnRleHQgY2FuIGJlIHBsYWNlZC4gSXQgaXMKPiArICogaW1wbGllZCBp biB0aGlzIG1vZGUgdGhhdCBhbGwgY29udGV4dHMgaGF2ZSBtdXR1YWwgZXhjbHVzaXZlIHBsYWNl bWVudC4KPiArICogZS5nLiBJZiBvbmUgY29udGV4dCBpcyBydW5uaW5nIENTWFswXSBubyBvdGhl ciBjb250ZXh0cyBjYW4gcnVuIG9uIENTWFswXSkuCj4gKyAqCj4gKyAqIEV4YW1wbGUgMSBwc2V1 ZG8gY29kZToKPiArICogQ1NYLFlbTl0gPSBnZW5lcmljIGVuZ2luZSBjbGFzcyBYIG9yIFksIGxv Z2ljYWwgaW5zdGFuY2UgTgo+ICsgKiBJTlZBTElEID0gSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJ RCwgSTkxNV9FTkdJTkVfQ0xBU1NfSU5WQUxJRF9OT05FCj4gKyAqIHNldF9lbmdpbmVzKElOVkFM SUQpCj4gKyAqIHNldF9wYXJhbGxlbChlbmdpbmVfaW5kZXg9MCwgd2lkdGg9MiwgbnVtX3NpYmxp bmdzPTIsCj4gKyAqCQllbmdpbmVzPUNTWFswXSxDU1hbMV0sQ1NZWzBdLENTWVsxXSkKPiArICoK PiArICogUmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nIHZhbGlkIHBsYWNlbWVudHM6Cj4gKyAqIENT WFswXSwgQ1NZWzBdCj4gKyAqIENTWFswXSwgQ1NZWzFdCj4gKyAqIENTWFsxXSwgQ1NZWzBdCj4g KyAqIENTWFsxXSwgQ1NZWzFdCj4gKyAqCj4gKyAqIFRoaXMgY2FuIGFsc28gYmUgdGhvdWdodCBv ZiBhcyAyIHZpcnR1YWwgZW5naW5lcyBkZXNjcmliZWQgYnkgMi1EIGFycmF5IGluCj4gKyAqIHRo ZSBlbmdpbmVzIHRoZSBmaWVsZDoKPiArICogVkVbMF0gPSBDU1hbMF0sIENTWFsxXQo+ICsgKiBW RVsxXSA9IENTWVswXSwgQ1NZWzFdCj4gKyAqCj4gKyAqIEV4YW1wbGUgMiBwc2V1ZG8gY29kZToK PiArICogQ1NYW1ldID0gZ2VuZXJpYyBlbmdpbmUgb2Ygc2FtZSBjbGFzcyBYLCBsb2dpY2FsIGlu c3RhbmNlIE4KPiArICogSU5WQUxJRCA9IEk5MTVfRU5HSU5FX0NMQVNTX0lOVkFMSUQsIEk5MTVf RU5HSU5FX0NMQVNTX0lOVkFMSURfTk9ORQo+ICsgKiBzZXRfZW5naW5lcyhJTlZBTElEKQo+ICsg KiBzZXRfcGFyYWxsZWwoZW5naW5lX2luZGV4PTAsIHdpZHRoPTIsIG51bV9zaWJsaW5ncz0zLAo+ ICsgKgkJZW5naW5lcz1DU1hbMF0sQ1NYWzFdLENTWFsyXSxDU1hbMF0sQ1NYWzFdLENTWFsyXSkK PiArICoKPiArICogUmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nIHZhbGlkIHBsYWNlbWVudHM6Cj4g KyAqIENTWFswXSwgQ1NYWzFdCj4gKyAqIENTWFswXSwgQ1NYWzJdCj4gKyAqIENTWFsxXSwgQ1NY WzBdCj4gKyAqIENTWFsxXSwgQ1NYWzJdCj4gKyAqIENTWFsyXSwgQ1NYWzBdCj4gKyAqIENTWFsy XSwgQ1NYWzFdCj4gKyAqCj4gKyAqIFRoaXMgY2FuIGFsc28gYmUgdGhvdWdodCBvZiBhcyAyIHZp cnR1YWwgZW5naW5lcyBkZXNjcmliZWQgYnkgMi1EIGFycmF5IGluCj4gKyAqIHRoZSBlbmdpbmVz IHRoZSBmaWVsZDoKPiArICogVkVbMF0gPSBDU1hbMF0sIENTWFsxXSwgQ1NYWzJdCj4gKyAqIFZF WzFdID0gQ1NYWzBdLCBDU1hbMV0sIENTWFsyXQo+ICsKPiArICogVGhpcyBlbmFibGVzIGEgdXNl IGNhc2Ugd2hlcmUgYWxsIGVuZ2luZXMgYXJlIGNyZWF0ZWQgZXF1YWxseSwgd2UgZG9uJ3QgY2Fy ZQo+ICsgKiB3aGVyZSB0aGV5IGFyZSBzY2hlZHVsZWQsIHdlIGp1c3Qgd2FudCBhIGNlcnRhaW4g bnVtYmVyIG9mIHJlc291cmNlcywgZm9yCj4gKyAqIHRob3NlIHJlc291cmNlcyB0byBiZSBzY2hl ZHVsZWQgaW4gcGFyYWxsZWwsIGFuZCBwb3NzaWJseSBhY3Jvc3MgbXVsdGlwbGUKPiArICogZW5n aW5lIGNsYXNzZXMuCj4gKyAqLwo+ICsKPiArLyoKCldvdWxkIGJlIGdvb2QgdG8gYWxzbyBtb3Zl IHRoaXMgaW50byB0aGUga2VybmVsZG9jIChtYXliZSBhZGQgbGFiZWxsZWQKbGlzdCBmb3IgZmxh Z3Mgb3Igc28pIHNvIGl0IHNob3dzIHVwIGluIHRoZSByZW5kZXIgb3V0cHV0LgoKPiArICogSTkx NV9QQVJBTExFTF9JTVBMSUNJVF9CT05EUyAtIENyZWF0ZSBpbXBsaWNpdCBib25kcyBiZXR3ZWVu IGVhY2ggY29udGV4dC4KPiArICogRWFjaCBjb250ZXh0IG11c3QgaGF2ZSB0aGUgc2FtZSBudW1i ZXIgb2Ygc2libGluZyBhbmQgYm9uZHMgYXJlIGltcGxpY2l0bHkKPiArICogY3JlYXRlZCBiZXR3 ZWVuIGVhY2ggc2V0IG9mIHNpYmxpbmdzLgo+ICsgKgo+ICsgKiBFeGFtcGxlIDEgcHNldWRvIGNv ZGU6Cj4gKyAqIENTWFtOXSA9IGdlbmVyaWMgZW5naW5lIG9mIHNhbWUgY2xhc3MgWCwgbG9naWNh bCBpbnN0YW5jZSBOCj4gKyAqIElOVkFMSUQgPSBJOTE1X0VOR0lORV9DTEFTU19JTlZBTElELCBJ OTE1X0VOR0lORV9DTEFTU19JTlZBTElEX05PTkUKPiArICogc2V0X2VuZ2luZXMoSU5WQUxJRCkK PiArICogc2V0X3BhcmFsbGVsKGVuZ2luZV9pbmRleD0wLCB3aWR0aD0yLCBudW1fc2libGluZ3M9 MSwKPiArICoJCWVuZ2luZXM9Q1NYWzBdLENTWFsxXSwgZmxhZ3M9STkxNV9QQVJBTExFTF9JTVBM SUNJVF9CT05EUykKPiArICoKPiArICogUmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nIHZhbGlkIHBs YWNlbWVudHM6Cj4gKyAqIENTWFswXSwgQ1NYWzFdCj4gKyAqCj4gKyAqIEV4YW1wbGUgMiBwc2V1 ZG8gY29kZToKPiArICogQ1NYW05dID0gZ2VuZXJpYyBlbmdpbmUgb2Ygc2FtZSBjbGFzcyBYLCBs b2dpY2FsIGluc3RhbmNlIE4KPiArICogSU5WQUxJRCA9IEk5MTVfRU5HSU5FX0NMQVNTX0lOVkFM SUQsIEk5MTVfRU5HSU5FX0NMQVNTX0lOVkFMSURfTk9ORQo+ICsgKiBzZXRfZW5naW5lcyhJTlZB TElEKQo+ICsgKiBzZXRfcGFyYWxsZWwoZW5naW5lX2luZGV4PTAsIHdpZHRoPTIsIG51bV9zaWJs aW5ncz0yLAo+ICsgKgkJZW5naW5lcz1DU1hbMF0sQ1NYWzJdLENTWFsxXSxDU1hbM10sCj4gKyAq CQlmbGFncz1JOTE1X1BBUkFMTEVMX0lNUExJQ0lUX0JPTkRTKQo+ICsgKgo+ICsgKiBSZXN1bHRz IGluIHRoZSBmb2xsb3dpbmcgdmFsaWQgcGxhY2VtZW50czoKPiArICogQ1NYWzBdLCBDU1hbMV0K PiArICogQ1NYWzJdLCBDU1hbM10KPiArICoKPiArICogVGhpcyBjYW4gYWxzbyBiZSB0aG91Z2h0 IG9mIGFzIDIgdmlydHVhbCBlbmdpbmVzIGRlc2NyaWJlZCBieSAyLUQgYXJyYXkgaW4KPiArICog dGhlIGVuZ2luZXMgdGhlIGZpZWxkIHdpdGggYm9uZHMgcGxhY2VkIGJldHdlZW4gZWFjaCBpbmRl eCBvZiB0aGUgdmlydHVhbAo+ICsgKiBlbmdpbmVzLiBlLmcuIENTWFswXSBpcyBib25kZWQgdG8g Q1NYWzFdLCBDU1hbMl0gaXMgYm9uZGVkIHRvIENTWFszXS4KPiArICogVkVbMF0gPSBDU1hbMF0s IENTWFsyXQo+ICsgKiBWRVsxXSA9IENTWFsxXSwgQ1NYWzNdCj4gKyAqCj4gKyAqIFRoaXMgZW5h YmxlcyBhIHVzZSBjYXNlIHdoZXJlIGFsbCBlbmdpbmVzIGFyZSBub3QgZXF1YWwgYW5kIGNlcnRh aW4gcGxhY2VtZW50Cj4gKyAqIHJ1bGVzIGFyZSByZXF1aXJlZCAoaS5lLiBzcGxpdC1mcmFtZSBy ZXF1aXJlcyBhbGwgY29udGV4dHMgdG8gYmUgcGxhY2VkIGluIGEKPiArICogbG9naWNhbGx5IGNv bnRpZ3VvdXMgb3JkZXIgb24gdGhlIFZDUyBlbmdpbmVzIG9uIGdlbjExKyBwbGF0Zm9ybXMpLiBU aGlzIHVzZQo+ICsgKiBjYXNlIChsb2dpY2FsbHkgY29udGlndW91cyBwbGFjZW1lbnQsIHdpdGhp biBhIHNpbmdsZSBlbmdpbmUgY2xhc3MpIGlzCj4gKyAqIHN1cHBvcnRlZCB3aGVuIHVzaW5nIEd1 QyBzdWJtaXNzaW9uLiBFeGVjbGlzdCBtb2RlIGNvdWxkIHN1cHBvcnQgYWxsIHBvc3NpYmxlCj4g KyAqIGJvbmRpbmcgY29uZmlndXJhdGlvbnMgYnV0IGN1cnJlbnRseSBkb2Vzbid0IHN1cHBvcnQg dGhpcyBleHRlbnNpb24uCj4gKyAqLwo+ICsjZGVmaW5lIEk5MTVfUEFSQUxMRUxfSU1QTElDSVRf Qk9ORFMJCQkoMSA8PCAwKQo+ICsvKgo+ICsgKiBEbyBub3QgYWxsb3cgQkJzIHRvIGJlIHByZWVt cHRlZCBtaWQgQkIgcmF0aGVyIGluc2VydCBjb29yZGluYXRlZCBwcmVlbXB0aW9uCj4gKyAqIHBv aW50cyBvbiBhbGwgaGFyZHdhcmUgY29udGV4dHMgYmV0d2VlbiBlYWNoIHNldCBvZiBCQnMuIEFu IGV4YW1wbGUgdXNlIGNhc2UKPiArICogb2YgdGhpcyBmZWF0dXJlIGlzIHNwbGl0LWZyYW1lIG9u IGdlbjExKyBoYXJkd2FyZS4KPiArICovCj4gKyNkZWZpbmUgSTkxNV9QQVJBTExFTF9OT19QUkVF TVBUX01JRF9CQVRDSAkJKDEgPDwgMSkKClNvIEkgZ2V0IHRoZSBoaXN0b3J5IG5vdyBiZWhpbmQg dGhpcywgYnV0IEkgdGhpbmsgc3BlY2lmeWluZyBmbGFncyBmb3IgdGhlCm9ubHkgYmVoYXZpb3Vy IHlvdSBjYW4gZ2V0IGFuZCB0aGUgb25seSBiZWhhdmlvdXIgdGhhdCB1c2Vyc3BhY2UgYXNrcyBm b3IKaXMgc2lsbHkuCgpJIHRoaW5rIHdlIHNob3VsZCBqdXN0IG1vdmUgdGhlIGFjdHVhbCBiZWhh dmlvdXIgc3BlYyBpbnRvIHRoZSBrZXJuZWxkb2MsCmFzIGluICJ0aGlzIGlzIHRoZSBib25kaW5n IHlvdSBnZXQiIGFuZCAiZHVlIHRvIGh3L2Z3IGxpbWl0YXRpb25zIHRoZXNlCndvcmtsb2FkcyB3 aWxsIGJlIG5vbi1wcmVlbXB0YWJsZSIgYW5kIGNhbGwgaXQgYSBkYXkuIFRyeWluZyB0byBndWVz cwpmdXR1cmUgbmVlZHMgYW5kIHNwZWNpZnlpbmcgdGhlbSwgd2l0aG91dCBrbm93aW5nIHRob3Nl IGZ1dHVyZSBuZWVkcwpwcmVjaXNlbHksIG11Y2ggbGVzcyBoYXZpbmcgYW4gaW1wbGVtZW50YXRp b24sIGp1c3QgbmV2ZXIgd29ya3Mgb3V0CnJlYWxseS4KCkkgZGlzY3Vzc2VkIHRoaXMgYSBiaXQg d2l0aCBKYXNvbiwgYW5kIGhlJ3Mgc3VnZ2VzdGVkIHRoaXMgbWFrZXMgc2Vuc2UgYXMKYSBlbmdp bmUgZmxhZywgYnV0IGRlZmluaXRlbHkgbm90IG9uIHRoZSBwYXJhbGxlbCBleHRlbnNpb24uIEJ1 dCBzaW5jZSB3ZQpkb24ndCBoYXZlIGEgbmVlZCBmb3IgcGlja2luZyBhIG5vbi1kZWZhdWx0IHZh bHVlIGp1c3QgZXh0cmEgd29yay4KCj4gKyNkZWZpbmUgX19JOTE1X1BBUkFMTEVMX1VOS05PV05f RkxBR1MJKC0oSTkxNV9QQVJBTExFTF9OT19QUkVFTVBUX01JRF9CQVRDSCA8PCAxKSkKPiArCV9f dTY0IGZsYWdzOwkJLyogYWxsIHVuZGVmaW5lZCBmbGFncyBtdXN0IGJlIHplcm8gKi8KPiArCV9f dTY0IG1iejY0WzNdOwkJLyogcmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2U7IG11c3QgYmUgemVybyAq Lwo+ICsKPiArCS8qCj4gKwkgKiAyLUQgYXJyYXkgb2YgZW5naW5lcwo+ICsJICoKPiArCSAqIHdp ZHRoIChpKSAqIG51bV9zaWJsaW5ncyAoaikgaW4gbGVuZ3RoCj4gKwkgKiBpbmRleCA9IGogKyBp ICogbnVtX3NpYmxpbmdzCj4gKwkgKi8KPiArCXN0cnVjdCBpOTE1X2VuZ2luZV9jbGFzc19pbnN0 YW5jZSBlbmdpbmVzWzBdOwo+ICt9IF9fYXR0cmlidXRlX18gKChwYWNrZWQpKTsKPiArCj4gZGlm ZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X3NjaGVkdWxlci5yc3QgYi9Eb2N1 bWVudGF0aW9uL2dwdS9yZmMvaTkxNV9zY2hlZHVsZXIucnN0Cj4gaW5kZXggN2ZhYTQ2Y2RlMDg4 Li4wMjU0YzA0ZDM0YmUgMTAwNjQ0Cj4gLS0tIGEvRG9jdW1lbnRhdGlvbi9ncHUvcmZjL2k5MTVf c2NoZWR1bGVyLnJzdAo+ICsrKyBiL0RvY3VtZW50YXRpb24vZ3B1L3JmYy9pOTE1X3NjaGVkdWxl ci5yc3QKPiBAQCAtMjMsNyArMjMsNyBAQCBpOTE1IHdpdGggdGhlIERSTSBzY2hlZHVsZXIgaXM6 Cj4gIAkgIHNldmVyZSBkZXNpZ24gaXNzdWVzIGluIGdlbmVyYWwsIHdoaWNoIGlzIHdoeSB3ZSB3 YW50IHRvIHJldGlyZSBpdCBubwo+ICAJICBtYXR0ZXIgd2hhdAo+ICAJKiBOZXcgdUFQSSBhZGRz IEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9QQVJBTExFTCBjb250ZXh0IHNldHVwIHN0ZXAKPiAt CSAgd2hpY2ggY29uZmlndXJlcyBhIHNsb3Qgd2l0aCBOIGNvbnRleHRzIAo+ICsJICB3aGljaCBj b25maWd1cmVzIGEgc2xvdCB3aXRoIE4gY29udGV4dHMKPiAgCSogQWZ0ZXIgSTkxNV9DT05URVhU X0VOR0lORVNfRVhUX1BBUkFMTEVMIGEgdXNlciBjYW4gc3VibWl0IE4gYmF0Y2hlcyB0bwo+ICAJ ICBhIHNsb3QgaW4gYSBzaW5nbGUgZXhlY2J1ZiBJT0NUTCBhbmQgdGhlIGJhdGNoZXMgcnVuIG9u IHRoZSBHUFUgaW4KPiAgCSAgcGFyYWxsbGVsCj4gQEAgLTgyLDQgKzgyLDU1IEBAIGh0dHBzOi8v c3BlYy5vbmVhcGkuY29tL2xldmVsLXplcm8vbGF0ZXN0L2NvcmUvYXBpLmh0bWwjemUtY29tbWFu ZC1xdWV1ZS1wcmlvcml0Cj4gIAo+ICBOZXcgcGFyYWxsZWwgc3VibWlzc2lvbiB1QVBJCj4gID09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiAtRGV0YWlscyB0byBjb21lIGluIGEgZm9sbG93 aW5nIHBhdGNoLgo+ICtUaGUgZXhpc3RpbmcgYm9uZGluZyB1QVBJIGlzIGNvbXBsZXRlbHkgYnJv a2VuIHdpdGggR3VDIHN1Ym1pc3Npb24gYmVjYXVzZQo+ICt3aGV0aGVyIGEgc3VibWlzc2lvbiBp cyBhIHNpbmdsZSBjb250ZXh0IHN1Ym1pdCBvciBwYXJhbGxlbCBzdWJtaXQgaXNuJ3Qga25vd24K PiArdW50aWwgZXhlY2J1ZiB0aW1lIGFjdGl2YXRlZCB2aWEgdGhlIEk5MTVfU1VCTUlUX0ZFTkNF LiBUbyBzdWJtaXQgbXVsdGlwbGUKPiArY29udGV4dHMgaW4gcGFyYWxsZWwgd2l0aCB0aGUgR3VD IHRoZSBjb250ZXh0IG11c3QgYmUgZXhwbGljaXRseSByZWdpc3RlcmVkIHdpdGgKPiArTiBjb250 ZXh0cyBhbmQgYWxsIE4gY29udGV4dHMgbXVzdCBiZSBzdWJtaXR0ZWQgaW4gYSBzaW5nbGUgY29t bWFuZCB0byB0aGUgR3VDLgo+ICtUaGUgR3VDIGludGVyZmFjZXMgZG8gbm90IHN1cHBvcnQgZHlu YW1pY2FsbHkgY2hhbmdpbmcgYmV0d2VlbiBOIGNvbnRleHRzIGFzIHRoZQo+ICtib25kaW5nIHVB UEkgZG9lcy4gSGVuY2UgdGhlIG5lZWQgZm9yIGEgbmV3IHBhcmFsbGVsIHN1Ym1pc3Npb24gaW50 ZXJmYWNlLiBBbHNvCj4gK3RoZSBsZWdhY3kgYm9uZGluZyB1QVBJIGlzIHF1aXRlIGNvbmZ1c2lu ZyBhbmQgbm90IGludHVpdGl2ZSBhdCBhbGwuCgpXZSBzaG91bGQgYWRkIGhlcmUgdGhhdCAiRnVy dGhlcm1vcmUgSTkxNV9TVUJNSVRfRkVOQ0UgaXMgYnkgZGVzaWduIGEKZnV0dXJlIGZlbmNlLCBz byBub3QgcmVhbGx5IHNvbWV0aGluZyB3ZSBzaG91bGQgY29udGludWUgdG8gc3VwcG9ydC4iCgo+ ICsKPiArVGhlIG5ldyBwYXJhbGxlbCBzdWJtaXNzaW9uIHVBUEkgY29uc2lzdHMgb2YgMyBwYXJ0 czoKPiArCj4gKyogRXhwb3J0IGVuZ2luZXMgbG9naWNhbCBtYXBwaW5nCj4gKyogQSAnc2V0X3Bh cmFsbGVsJyBleHRlbnNpb24gdG8gY29uZmlndXJlIGNvbnRleHRzIGZvciBwYXJhbGxlbAo+ICsg IHN1Ym1pc3Npb24KPiArKiBFeHRlbmQgZXhlY2J1ZjIgSU9DVEwgdG8gc3VwcG9ydCBzdWJtaXR0 aW5nIE4gQkJzIGluIGEgc2luZ2xlIElPQ1RMCj4gKwo+ICtFeHBvcnQgZW5naW5lcyBsb2dpY2Fs IG1hcHBpbmcKPiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gK0NlcnRhaW4gdXNl IGNhc2VzIHJlcXVpcmUgQkJzIHRvIGJlIHBsYWNlZCBvbiBlbmdpbmUgaW5zdGFuY2VzIGluIGxv Z2ljYWwgb3JkZXIKPiArKGUuZy4gc3BsaXQtZnJhbWUgb24gZ2VuMTErKS4gVGhlIGxvZ2ljYWwg bWFwcGluZyBvZiBlbmdpbmUgaW5zdGFuY2VzIGNhbiBjaGFuZ2UKPiArYmFzZWQgb24gZnVzaW5n LiBSYXRoZXIgdGhhbiBtYWtpbmcgVU1EcyBiZSBhd2FyZSBvZiBmdXNpbmcsIHNpbXBseSBleHBv c2UgdGhlCj4gK2xvZ2ljYWwgbWFwcGluZyB3aXRoIHRoZSBleGlzdGluZyBxdWVyeSBlbmdpbmUg aW5mbyBJT0NUTC4gQWxzbyB0aGUgR3VDCj4gK3N1Ym1pc3Npb24gaW50ZXJmYWNlIGN1cnJlbnRs eSBvbmx5IHN1cHBvcnRzIHN1Ym1pdHRpbmcgbXVsdGlwbGUgY29udGV4dHMgdG8KPiArZW5naW5l cyBpbiBsb2dpY2FsIG9yZGVyIHdoaWNoIGlzIGEgbmV3IHJlcXVpcmVtZW50IGNvbXBhcmVkIHRv IGV4ZWNsaXN0cy4KPiArTGFzdGx5LCBhbGwgY3VycmVudCBwbGF0Zm9ybXMgaGF2ZSBhdCBtb3N0 IDIgZW5naW5lIGluc3RhbmNlcyBhbmQgdGhlIGxvZ2ljYWwKPiArb3JkZXIgaXMgdGhlIHNhbWUg YXMgdUFQSSBvcmRlci4gVGhpcyB3aWxsIGNoYW5nZSBvbiBwbGF0Zm9ybXMgd2l0aCBtb3JlIHRo YW4gMgo+ICtlbmdpbmUgaW5zdGFuY2VzLgo+ICsKPiArQSBzaW5nbGUgYml0IHdpbGwgYmUgYWRk ZWQgdG8gZHJtX2k5MTVfZW5naW5lX2luZm8uZmxhZ3MgaW5kaWNhdGluZyB0aGF0IHRoZQo+ICts b2dpY2FsIGluc3RhbmNlIGhhcyBiZWVuIHJldHVybmVkIGFuZCBhIG5ldyBmaWVsZCwKPiArZHJt X2k5MTVfZW5naW5lX2luZm8ubG9naWNhbF9pbnN0YW5jZSwgcmV0dXJucyB0aGUgbG9naWNhbCBp bnN0YW5jZS4KPiArCj4gK0EgJ3NldF9wYXJhbGxlbCcgZXh0ZW5zaW9uIHRvIGNvbmZpZ3VyZSBj b250ZXh0cyBmb3IgcGFyYWxsZWwgc3VibWlzc2lvbgo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiArVGhl ICdzZXRfcGFyYWxsZWwnIGV4dGVuc2lvbiBjb25maWd1cmVzIGEgc2xvdCBmb3IgcGFyYWxsZWwg c3VibWlzc2lvbiBvZiBOIEJCcy4KPiArSXQgaXMgc2V0dXAgc3RlcCB0aGF0IHNob3VsZCBiZSBj YWxsZWQgYmVmb3JlIHVzaW5nIGFueSBvZiB0aGUgY29udGV4dHMuIFNlZQoKCQlzL3Nob3VsZC9t dXN0LwoKV2UndmUgbWFkZSBpdCBhIENUWF9DUkVBVEVfRVhUIGV4dGVuc2lvbiwgc28gcmVhbGx5 IHlvdSBkb24ndCBoYXZlIGEKY2hvaWNlIGFueW1vcmUgOi0pCgo+ICtJOTE1X0NPTlRFWFRfRU5H SU5FU19FWFRfTE9BRF9CQUxBTkNFIG9yIEk5MTVfQ09OVEVYVF9FTkdJTkVTX0VYVF9CT05EIGZv cgo+ICtzaW1pbGFyIGV4aXN0aW5nIGV4YW1wbGVzLiBPbmNlIGEgc2xvdCBpcyBjb25maWd1cmVk IGZvciBwYXJhbGxlbCBzdWJtaXNzaW9uIHRoZQo+ICtleGVjYnVmMiBJT0NUTCBjYW4gYmUgY2Fs bGVkIHN1Ym1pdHRpbmcgTiBCQnMgaW4gYSBzaW5nbGUgSU9DVEwuIEluaXRpYWxseSBvbmx5Cj4g K3N1cHBvcnQgR3VDIHN1Ym1pc3Npb24uIEV4ZWNsaXN0IHN1cHBvcnQgY2FuIGJlIGFkZGVkIGxh dGVyIGlmIG5lZWRlZC4KPiArCj4gK0FkZCBJOTE1X0NPTlRFWFRfRU5HSU5FU19FWFRfUEFSQUxM RUxfU1VCTUlUIGFuZAo+ICtpOTE1X2NvbnRleHRfZW5naW5lc19wYXJhbGxlbF9zdWJtaXQgdG8g dGhlIHVBUEkgdG8gaW1wbGVtZW50IHRoaXMgZXh0ZW5zaW9uLgo+ICsKPiArRXh0ZW5kIGV4ZWNi dWYyIElPQ1RMIHRvIHN1cHBvcnQgc3VibWl0dGluZyBOIEJCcyBpbiBhIHNpbmdsZSBJT0NUTAo+ ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4gK0NvbnRleHRzIHRoYXQgaGF2ZSBiZWVuIGNvbmZpZ3VyZWQgd2l0aCB0 aGUgJ3NldF9wYXJhbGxlbCcgZXh0ZW5zaW9uIGFyZSBhbGxvd2VkCj4gK3RvIHN1Ym1pdCBOIEJC cyBpbiBhIHNpbmdsZSBleGVjYnVmMiBJT0NUTC4gVGhlIEJCcyBhcmUgZWl0aGVyIHRoZSBsYXN0 IE4KPiArb2JqZWN0cyBpbiB0aGUgZHJtX2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiBsaXN0IG9yIHRo ZSBmaXJzdCBOIGlmCj4gK0k5MTVfRVhFQ19CQVRDSF9GSVJTVCBpcyBzZXQuIFRoZSBudW1iZXIg b2YgQkJzIGlzIGltcGxpY3QgYmFzZWQgb24gdGhlIHNsb3QKPiArc3VibWl0dGVkIGFuZCBob3cg aXQgaGFzIGJlZW4gY29uZmlndXJlZCBieSAnc2V0X3BhcmFsbGVsJyBvciBvdGhlciBleHRlbnNp b25zLgo+ICtObyB1QVBJIGNoYW5nZXMgYXJlIHJlcXVpcmVkIHRvIGV4ZWNidWYyIElPQ1RMLgoK QWRkZCBoZXJlIHRoZSBrZXJuZWxkb2MgaW5jbHVkZSBmb3IgeW91ciBoZWFkZXIuCgpBc2lkZSBm cm9tIHRoZSBjb21tZW50cyBieSBhbmQgbGFyZ2UgdGhpcyBsb29rcyBnb29kLiBUaGUgbWFpbiBp bnRlcmZhY2UKYXQgbGVhc3QgaXMgY2xlYXIgYW5kIHdhcnRzLWZyZWUuCgpBY2tlZC1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCj4gLS0gCj4gMi4yOC4wCj4gCj4g X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1n ZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBz Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAK RGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDov L2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg== 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=-13.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 2BF1BC4743C for ; Fri, 4 Jun 2021 17:59:12 +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 E679661242 for ; Fri, 4 Jun 2021 17:59:11 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E679661242 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 52C4B6F88C; Fri, 4 Jun 2021 17:59:10 +0000 (UTC) Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by gabe.freedesktop.org (Postfix) with ESMTPS id D7B2C6F888 for ; Fri, 4 Jun 2021 17:59:08 +0000 (UTC) Received: by mail-wr1-x42f.google.com with SMTP id c5so10103072wrq.9 for ; Fri, 04 Jun 2021 10:59:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=Re/Xyf+iY9DUJLPX9PqiA/+dtoiYMDvI4J16ARI4DV8=; b=fNEC1mxTW60Re7s3LONtOadZEHIkf5bwV/PpP6EWFpk7HQ+MCFoURkGL+KWj85blTn lKTYocNouWz3eoCBGcWfhvzJOWMTeeAjcugEOQ0e4yAdrNxmwqMi4y3DdiUIV6I7SuFn pSiL/HyYelsZUO8mRHT+3SPzqPNV1riQAfbfA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=Re/Xyf+iY9DUJLPX9PqiA/+dtoiYMDvI4J16ARI4DV8=; b=E9dA9LaYP12/IsEQ7Y12nwScOr6VELV8xyQja0i41sSBR7kYroQ2Bp+Xvip+HlRjEW r563dCaOFZ/e5V4vIpAiZH6VWdMOqncnowHOtABRNkyhJsOrvH5PtInphszB61gVG2D0 Bd+rRIDPqBiiaeK6YYSPJ2ubwfW3G75/iz+AsI9PUaFXsNdE4TMUOSnPMYt79zpu3QtH W6hLNnF5oeQil+BMFFjp+7pFlLZk4sLMSg8+RQ3WQvB2jdvvjCDeNm1qnfI7xu/19sx5 gklKmpXtrnHShD2US8DGycB4LTsaWeHenxmn+vyUaMNfWZU1Hl/9ei/RoKBsC/DoRb30 Ui3w== X-Gm-Message-State: AOAM532CGSXcdNnctAD/702phNpG2cj8lHub+RY3Do3/QfQbpFTdIAUi F1K1o0ZhOlN35c/xnrKkyE+8+g== X-Google-Smtp-Source: ABdhPJzA0d9SpfNsLd1j+KUDQe8DIwXCpUbWPsdWysTVdm9ZbH/dlsGxEjT0Cpi7fPuhyCzgkYVzzg== X-Received: by 2002:adf:cf07:: with SMTP id o7mr5127273wrj.399.1622829547482; Fri, 04 Jun 2021 10:59:07 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id u2sm7168981wrn.38.2021.06.04.10.59.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 04 Jun 2021 10:59:07 -0700 (PDT) Date: Fri, 4 Jun 2021 19:59:05 +0200 From: Daniel Vetter To: Matthew Brost Subject: Re: [Intel-gfx] [RFC PATCH 2/2] drm/doc/rfc: i915 new parallel submission uAPI plan Message-ID: References: <20210526233357.9165-1-matthew.brost@intel.com> <20210526233357.9165-3-matthew.brost@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210526233357.9165-3-matthew.brost@intel.com> X-Operating-System: Linux phenom 5.10.32scarlett+ 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: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, carl.zhang@intel.com, jason.ekstrand@intel.com, daniel.vetter@intel.com, mesa-dev@lists.freedesktop.org, christian.koenig@amd.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Wed, May 26, 2021 at 04:33:57PM -0700, Matthew Brost wrote: > Add entry for i915 new parallel submission uAPI plan. > > v2: > (Daniel Vetter): > - Expand logical order explaination > - Add dummy header > - Only allow N BBs in execbuf IOCTL > - Configure parallel submission per slot not per gem context > v3: > (Marcin Ĺšlusarz): > - Lot's of typos / bad english fixed > (Tvrtko Ursulin): > - Consistent pseudo code, clean up wording in descriptions > > Cc: Tvrtko Ursulin > Cc: Tony Ye > CC: Carl Zhang > Cc: Daniel Vetter > Cc: Jason Ekstrand > Signed-off-by: Matthew Brost > --- > Documentation/gpu/rfc/i915_parallel_execbuf.h | 145 ++++++++++++++++++ > Documentation/gpu/rfc/i915_scheduler.rst | 55 ++++++- > 2 files changed, 198 insertions(+), 2 deletions(-) > create mode 100644 Documentation/gpu/rfc/i915_parallel_execbuf.h > > diff --git a/Documentation/gpu/rfc/i915_parallel_execbuf.h b/Documentation/gpu/rfc/i915_parallel_execbuf.h > new file mode 100644 > index 000000000000..20de206e3ab4 > --- /dev/null > +++ b/Documentation/gpu/rfc/i915_parallel_execbuf.h > @@ -0,0 +1,145 @@ > +#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2 /* see i915_context_engines_parallel_submit */ > + > +/* > + * i915_context_engines_parallel_submit: So the idea is to make these kerneldoc and pull them into the rfc section. Then when we merge, move them to the real uapi section, like what Matt has done for lmem. > + * > + * Setup a slot in the context engine map to allow multiple BBs to be submitted > + * in a single execbuf IOCTL. Those BBs will then be scheduled to run on the GPU > + * in parallel. Multiple hardware contexts are created internally in the i915 > + * run these BBs. Once a slot is configured for N BBs only N BBs can be > + * submitted in each execbuf IOCTL and this is implicit behavior e.g. The user > + * doesn't tell the execbuf IOCTL there are N BBs, the execbuf IOCTL know how > + * many BBs there are based on the slots configuration. The N BBs are the last N > + * buffer objects for first N if I915_EXEC_BATCH_FIRST is set. s/for/or/ > + * > + * There are two currently defined ways to control the placement of the > + * hardware contexts on physical engines: default behavior (no flags) and > + * I915_PARALLEL_IMPLICIT_BONDS (a flag). More flags may be added the in the > + * future as new hardware / use cases arise. Details of how to use this > + * interface above the flags field in this structure. > + * > + * Returns -EINVAL if hardware context placement configuration is invalid or if > + * the placement configuration isn't supported on the platform / submission > + * interface. > + * Returns -ENODEV if extension isn't supported on the platform / submission > + * inteface. > + */ > +struct i915_context_engines_parallel_submit { > + struct i915_user_extension base; > + > + __u16 engine_index; /* slot for parallel engine */ Kernel doc here for the inline comments too. > + __u16 width; /* number of contexts per parallel engine */ > + __u16 num_siblings; /* number of siblings per context */ > + __u16 mbz16; > +/* > + * Default placement behavior (currently unsupported): > + * > + * Allow BBs to be placed on any available engine instance. In this case each > + * context's engine mask indicates where that context can be placed. It is > + * implied in this mode that all contexts have mutual exclusive placement. > + * e.g. If one context is running CSX[0] no other contexts can run on CSX[0]). > + * > + * Example 1 pseudo code: > + * CSX,Y[N] = generic engine class X or Y, logical instance N > + * INVALID = I915_ENGINE_CLASS_INVALID, I915_ENGINE_CLASS_INVALID_NONE > + * set_engines(INVALID) > + * set_parallel(engine_index=0, width=2, num_siblings=2, > + * engines=CSX[0],CSX[1],CSY[0],CSY[1]) > + * > + * Results in the following valid placements: > + * CSX[0], CSY[0] > + * CSX[0], CSY[1] > + * CSX[1], CSY[0] > + * CSX[1], CSY[1] > + * > + * This can also be thought of as 2 virtual engines described by 2-D array in > + * the engines the field: > + * VE[0] = CSX[0], CSX[1] > + * VE[1] = CSY[0], CSY[1] > + * > + * Example 2 pseudo code: > + * CSX[Y] = generic engine of same class X, logical instance N > + * INVALID = I915_ENGINE_CLASS_INVALID, I915_ENGINE_CLASS_INVALID_NONE > + * set_engines(INVALID) > + * set_parallel(engine_index=0, width=2, num_siblings=3, > + * engines=CSX[0],CSX[1],CSX[2],CSX[0],CSX[1],CSX[2]) > + * > + * Results in the following valid placements: > + * CSX[0], CSX[1] > + * CSX[0], CSX[2] > + * CSX[1], CSX[0] > + * CSX[1], CSX[2] > + * CSX[2], CSX[0] > + * CSX[2], CSX[1] > + * > + * This can also be thought of as 2 virtual engines described by 2-D array in > + * the engines the field: > + * VE[0] = CSX[0], CSX[1], CSX[2] > + * VE[1] = CSX[0], CSX[1], CSX[2] > + > + * This enables a use case where all engines are created equally, we don't care > + * where they are scheduled, we just want a certain number of resources, for > + * those resources to be scheduled in parallel, and possibly across multiple > + * engine classes. > + */ > + > +/* Would be good to also move this into the kerneldoc (maybe add labelled list for flags or so) so it shows up in the render output. > + * I915_PARALLEL_IMPLICIT_BONDS - Create implicit bonds between each context. > + * Each context must have the same number of sibling and bonds are implicitly > + * created between each set of siblings. > + * > + * Example 1 pseudo code: > + * CSX[N] = generic engine of same class X, logical instance N > + * INVALID = I915_ENGINE_CLASS_INVALID, I915_ENGINE_CLASS_INVALID_NONE > + * set_engines(INVALID) > + * set_parallel(engine_index=0, width=2, num_siblings=1, > + * engines=CSX[0],CSX[1], flags=I915_PARALLEL_IMPLICIT_BONDS) > + * > + * Results in the following valid placements: > + * CSX[0], CSX[1] > + * > + * Example 2 pseudo code: > + * CSX[N] = generic engine of same class X, logical instance N > + * INVALID = I915_ENGINE_CLASS_INVALID, I915_ENGINE_CLASS_INVALID_NONE > + * set_engines(INVALID) > + * set_parallel(engine_index=0, width=2, num_siblings=2, > + * engines=CSX[0],CSX[2],CSX[1],CSX[3], > + * flags=I915_PARALLEL_IMPLICIT_BONDS) > + * > + * Results in the following valid placements: > + * CSX[0], CSX[1] > + * CSX[2], CSX[3] > + * > + * This can also be thought of as 2 virtual engines described by 2-D array in > + * the engines the field with bonds placed between each index of the virtual > + * engines. e.g. CSX[0] is bonded to CSX[1], CSX[2] is bonded to CSX[3]. > + * VE[0] = CSX[0], CSX[2] > + * VE[1] = CSX[1], CSX[3] > + * > + * This enables a use case where all engines are not equal and certain placement > + * rules are required (i.e. split-frame requires all contexts to be placed in a > + * logically contiguous order on the VCS engines on gen11+ platforms). This use > + * case (logically contiguous placement, within a single engine class) is > + * supported when using GuC submission. Execlist mode could support all possible > + * bonding configurations but currently doesn't support this extension. > + */ > +#define I915_PARALLEL_IMPLICIT_BONDS (1 << 0) > +/* > + * Do not allow BBs to be preempted mid BB rather insert coordinated preemption > + * points on all hardware contexts between each set of BBs. An example use case > + * of this feature is split-frame on gen11+ hardware. > + */ > +#define I915_PARALLEL_NO_PREEMPT_MID_BATCH (1 << 1) So I get the history now behind this, but I think specifying flags for the only behaviour you can get and the only behaviour that userspace asks for is silly. I think we should just move the actual behaviour spec into the kerneldoc, as in "this is the bonding you get" and "due to hw/fw limitations these workloads will be non-preemptable" and call it a day. Trying to guess future needs and specifying them, without knowing those future needs precisely, much less having an implementation, just never works out really. I discussed this a bit with Jason, and he's suggested this makes sense as a engine flag, but definitely not on the parallel extension. But since we don't have a need for picking a non-default value just extra work. > +#define __I915_PARALLEL_UNKNOWN_FLAGS (-(I915_PARALLEL_NO_PREEMPT_MID_BATCH << 1)) > + __u64 flags; /* all undefined flags must be zero */ > + __u64 mbz64[3]; /* reserved for future use; must be zero */ > + > + /* > + * 2-D array of engines > + * > + * width (i) * num_siblings (j) in length > + * index = j + i * num_siblings > + */ > + struct i915_engine_class_instance engines[0]; > +} __attribute__ ((packed)); > + > diff --git a/Documentation/gpu/rfc/i915_scheduler.rst b/Documentation/gpu/rfc/i915_scheduler.rst > index 7faa46cde088..0254c04d34be 100644 > --- a/Documentation/gpu/rfc/i915_scheduler.rst > +++ b/Documentation/gpu/rfc/i915_scheduler.rst > @@ -23,7 +23,7 @@ i915 with the DRM scheduler is: > severe design issues in general, which is why we want to retire it no > matter what > * New uAPI adds I915_CONTEXT_ENGINES_EXT_PARALLEL context setup step > - which configures a slot with N contexts > + which configures a slot with N contexts > * After I915_CONTEXT_ENGINES_EXT_PARALLEL a user can submit N batches to > a slot in a single execbuf IOCTL and the batches run on the GPU in > paralllel > @@ -82,4 +82,55 @@ https://spec.oneapi.com/level-zero/latest/core/api.html#ze-command-queue-priorit > > New parallel submission uAPI > ============================ > -Details to come in a following patch. > +The existing bonding uAPI is completely broken with GuC submission because > +whether a submission is a single context submit or parallel submit isn't known > +until execbuf time activated via the I915_SUBMIT_FENCE. To submit multiple > +contexts in parallel with the GuC the context must be explicitly registered with > +N contexts and all N contexts must be submitted in a single command to the GuC. > +The GuC interfaces do not support dynamically changing between N contexts as the > +bonding uAPI does. Hence the need for a new parallel submission interface. Also > +the legacy bonding uAPI is quite confusing and not intuitive at all. We should add here that "Furthermore I915_SUBMIT_FENCE is by design a future fence, so not really something we should continue to support." > + > +The new parallel submission uAPI consists of 3 parts: > + > +* Export engines logical mapping > +* A 'set_parallel' extension to configure contexts for parallel > + submission > +* Extend execbuf2 IOCTL to support submitting N BBs in a single IOCTL > + > +Export engines logical mapping > +------------------------------ > +Certain use cases require BBs to be placed on engine instances in logical order > +(e.g. split-frame on gen11+). The logical mapping of engine instances can change > +based on fusing. Rather than making UMDs be aware of fusing, simply expose the > +logical mapping with the existing query engine info IOCTL. Also the GuC > +submission interface currently only supports submitting multiple contexts to > +engines in logical order which is a new requirement compared to execlists. > +Lastly, all current platforms have at most 2 engine instances and the logical > +order is the same as uAPI order. This will change on platforms with more than 2 > +engine instances. > + > +A single bit will be added to drm_i915_engine_info.flags indicating that the > +logical instance has been returned and a new field, > +drm_i915_engine_info.logical_instance, returns the logical instance. > + > +A 'set_parallel' extension to configure contexts for parallel submission > +------------------------------------------------------------------------ > +The 'set_parallel' extension configures a slot for parallel submission of N BBs. > +It is setup step that should be called before using any of the contexts. See s/should/must/ We've made it a CTX_CREATE_EXT extension, so really you don't have a choice anymore :-) > +I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE or I915_CONTEXT_ENGINES_EXT_BOND for > +similar existing examples. Once a slot is configured for parallel submission the > +execbuf2 IOCTL can be called submitting N BBs in a single IOCTL. Initially only > +support GuC submission. Execlist support can be added later if needed. > + > +Add I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT and > +i915_context_engines_parallel_submit to the uAPI to implement this extension. > + > +Extend execbuf2 IOCTL to support submitting N BBs in a single IOCTL > +------------------------------------------------------------------- > +Contexts that have been configured with the 'set_parallel' extension are allowed > +to submit N BBs in a single execbuf2 IOCTL. The BBs are either the last N > +objects in the drm_i915_gem_exec_object2 list or the first N if > +I915_EXEC_BATCH_FIRST is set. The number of BBs is implict based on the slot > +submitted and how it has been configured by 'set_parallel' or other extensions. > +No uAPI changes are required to execbuf2 IOCTL. Addd here the kerneldoc include for your header. Aside from the comments by and large this looks good. The main interface at least is clear and warts-free. Acked-by: Daniel Vetter > -- > 2.28.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch