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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4ECBC64EC4 for ; Wed, 15 Feb 2023 19:00:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 254C66B007B; Wed, 15 Feb 2023 14:00:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1FF266B007E; Wed, 15 Feb 2023 14:00:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 02C846B007B; Wed, 15 Feb 2023 14:00:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id E19426B0071 for ; Wed, 15 Feb 2023 14:00:27 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id AD23F1610A1 for ; Wed, 15 Feb 2023 19:00:27 +0000 (UTC) X-FDA: 80470442094.15.9627DF5 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by imf21.hostedemail.com (Postfix) with ESMTP id 1FBBA1C001A for ; Wed, 15 Feb 2023 19:00:24 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Fu30MGHl; spf=none (imf21.hostedemail.com: domain of thomas.hellstrom@linux.intel.com has no SPF policy when checking 134.134.136.65) smtp.mailfrom=thomas.hellstrom@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676487625; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2eUBp3+n/+Bd9l56EJHCBpNS+NswpLZw/fi/tnBN83w=; b=J88qA84CTF6twx8H4hzSAqYCrF0cVkQMV5JwXSv+EPpRuc5V0iffgnNh3vdxtH+M2drSkT 9+GgqOanF4EOpQBxX/XpzefR/Fekb1sX4wfBK9HuMFqtex4kinVIqMQAh2bKojmZ8Bzp0q DyXdB2Ux3WC6b8GaOM/ewKQoje9THiw= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=Fu30MGHl; spf=none (imf21.hostedemail.com: domain of thomas.hellstrom@linux.intel.com has no SPF policy when checking 134.134.136.65) smtp.mailfrom=thomas.hellstrom@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676487625; a=rsa-sha256; cv=none; b=3vLdPCRr7MrV/gYrEQjFV3jt0C78lNAfA65R6la1lEemAktmjBRqeH5zwEXHeLN0AlMmQ3 5ESr0s3bP3idebeyFwvVs7Yhy30oUMvkr0WH1oe2C2xNKDe/cJV7yIMPw1b1mwNlkOWbtq 2W6Kz97pb77LjSm21JVHPlJjfHWiIqo= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676487625; x=1708023625; h=message-id:subject:from:to:cc:date:in-reply-to: references:content-transfer-encoding:mime-version; bh=2eUBp3+n/+Bd9l56EJHCBpNS+NswpLZw/fi/tnBN83w=; b=Fu30MGHlTNE+QiB0Fbx/YUr4epkfZ33XwtdGwRnSBETCbxuFqrOLF5P8 I5i55ZdUDX2v1k9tK8sQUJueF83cVnQ4U0Utd1+9Ceomry6RmqB4wPHBs 5mwyqJcuAFBoqSNxjS/79OB5Up3Zkx18YuDEnEKO+8InTSVLZT8uv+g69 zaLcoQ/V716tNU4oDeMMbxmV7mHlRL3rPNudwqNI9iFX7BN/8hgxj2niS NeHWVnhrJm7N3jCOjWcjeu1IDNnAkcetxeDX3vb0gwnfCaVxv8YFjhRgt 5iuE8tee31Mxg/NOEk4YvpqlNFCP/VyoYqfHWFMYtSurVWKwiLfySJs6H w==; X-IronPort-AV: E=McAfee;i="6500,9779,10622"; a="333664213" X-IronPort-AV: E=Sophos;i="5.97,300,1669104000"; d="scan'208";a="333664213" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 11:00:18 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10622"; a="843805283" X-IronPort-AV: E=Sophos;i="5.97,300,1669104000"; d="scan'208";a="843805283" Received: from auliel-mobl1.ger.corp.intel.com (HELO [10.249.254.14]) ([10.249.254.14]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Feb 2023 11:00:14 -0800 Message-ID: <0ebad504ed56caed6a4338f346f02b4b59a77a5c.camel@linux.intel.com> Subject: Re: [RFC PATCH 07/16] drm/ttm: Reduce the number of used allocation orders for TTM pages From: Thomas =?ISO-8859-1?Q?Hellstr=F6m?= To: Christian =?ISO-8859-1?Q?K=F6nig?= , dri-devel@lists.freedesktop.org Cc: Andrew Morton , "Matthew Wilcox (Oracle)" , Miaohe Lin , David Hildenbrand , Johannes Weiner , Peter Xu , NeilBrown , Daniel Vetter , Dave Airlie , Dave Hansen , Matthew Auld , linux-graphics-maintainer@vmware.com, linux-mm@kvack.org, intel-gfx@lists.freedesktop.org Date: Wed, 15 Feb 2023 20:00:11 +0100 In-Reply-To: <6fdacb84-bca3-0645-0bb9-ba8def5bd514@amd.com> References: <20230215161405.187368-1-thomas.hellstrom@linux.intel.com> <20230215161405.187368-8-thomas.hellstrom@linux.intel.com> <81f935b26890642f48793c7b7c5685e445bfe0f2.camel@linux.intel.com> <6fdacb84-bca3-0645-0bb9-ba8def5bd514@amd.com> Organization: Intel Sweden AB, Registration Number: 556189-6027 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.44.4 (3.44.4-2.fc36) MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: 1tb8k1oeimufq763krto4fan6xybwd1c X-Rspamd-Queue-Id: 1FBBA1C001A X-HE-Tag: 1676487624-945451 X-HE-Meta: U2FsdGVkX18PIoZJMPMTfQ+QUNmqtli/2y8M1S+0dekBccK0VzQ7V/8Wwl6gOTwkTDlXBeNyJkPw/ZwyBqfTXIM6R4DyV/rt4MMrGspz+4CRgbk1v8bwEyfCjxDgXNy5I/8FqtCxM51niKVr12mQlNeOzDQAuQuFI48wnrFBmcRt5aw9FNmQvGBpIOc0BtDaHmI24/sUNg4IK6uQPwCIcrJEGZoFLG9XsCPJNT9eRn2JivO8bHU3JojU5gBmIhrh0+HElmRF+d+UL7k8pK9iDA/QQIJGXegkjRuoJ7FA1FxqbfnALnk/Vd+wbIAS59zHUrsENiZBrNQMRDGzK8ilxVdYOX3VN04nQfi/HrMmuD7ddp/+0DB1vfr4ijYzbAA2tmHCsu9n4CbYRwP9cjap4oi+/j7m75eC4Kohq7G1hiGvR/xW9zpInYd95CukRAYSbx9OHBd9HdLSQkPP0ex43//OgjYNgErHyudAH5rj5/DyhC2wbhm/Gv13dtYj1rq+Fbn7MPXiTAh6mtyLzslF+/1w0+U19ZRGDczJmIZvBzbA5MbXwQxl/SSVi2+etyh2Qwo+aY0E9XvHTaEzsXtLFytJorBrHEeZAgs+s+o01gM1MltbuaUUxKvdk7l9nUDSWVR8665UjZSx55tcVKA/hbFL6UvBsSTM4ERLhcFH6kbY+Jm1IH1u7QsTbd14GHzLY1XyBdOe9/dlyDNtotgCtgBT8ntvjnCXQrDKxVc/JTpaDifpsc/JEZAoD5ub6Hi0j3vpxNhZmgwPIf9ZVhdisG3vlSVtSKT0DP44cz15cPWET+N5SPn0Eiuraj0zpnlb47a37grI+2uR/VNIexPP292P4GkOQRi0+dlKiCFAZlZRvdaIqaUDxbw6yGsbnicr55MBpmHYCFYQYBixg8tj+xAUjJh39m5Ls77v2E8SqJvle68mBaljrPr5He8IqN4bkVZp2EK1jWEKgW5iR44 2RFEf+Ha yIz8huUDTjXklsU/cWhN+KvqneDL16hZBRShKQzQO3GynFxE81FelE6Tjr/gNlZTUdN2m+GvOzWY+El7keqnSR4GIM0uxhb7m3PsLfozEeJUiTCcWl8qufgbavkAnyWm3y5RVb1gmqyPYrOn9DdEJYwEk4RZSz8hLDEUmqv4J6zngXAXzOsR6DAq/gwvaHeJQgInFqVFN2JiGjYpGhao3MW9jZ80Okt5lMTx15U/uxmX19o8rJJ8B+tFZLIEdf2FrlaFI2DCwjk9+Hf4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: T24gV2VkLCAyMDIzLTAyLTE1IGF0IDE5OjMwICswMTAwLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3Rl Ogo+IEFtIDE1LjAyLjIzIHVtIDE5OjEyIHNjaHJpZWIgVGhvbWFzIEhlbGxzdHLDtm06Cj4gPiBP biBXZWQsIDIwMjMtMDItMTUgYXQgMTg6NDIgKzAxMDAsIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6 Cj4gPiA+IEFtIDE1LjAyLjIzIHVtIDE3OjEzIHNjaHJpZWIgVGhvbWFzIEhlbGxzdHLDtm06Cj4g PiA+ID4gV2hlbiBzd2FwcGluZyBvdXQsIHdlIHdpbGwgc3BsaXQgbXVsdGktb3JkZXIgcGFnZXMg Ym90aCBpbgo+ID4gPiA+IG9yZGVyIHRvCj4gPiA+ID4gbW92ZSB0aGVtIHRvIHRoZSBzd2FwLWNh Y2hlIGFuZCB0byBiZSBhYmxlIHRvIHJldHVybiBtZW1vcnkgdG8KPiA+ID4gPiB0aGUKPiA+ID4g PiBzd2FwIGNhY2hlIGFzIHNvb24gYXMgcG9zc2libGUgb24gYSBwYWdlLWJ5LXBhZ2UgYmFzaXMu Cj4gPiA+ID4gQnkgcmVkdWNpbmcgdGhlIHBhZ2UgbWF4IG9yZGVyIHRvIHRoZSBzeXN0ZW0gUE1E IHNpemUsIHdlIGNhbgo+ID4gPiA+IGJlCj4gPiA+ID4gbmljZXIKPiA+ID4gPiB0byB0aGUgc3lz dGVtIGFuZCBhdm9pZCBzcGxpdHRpbmcgZ2lnYW50aWMgcGFnZXMuCj4gPiA+IAo+ID4gPiA+IE9u IHRvcCBvZiB0aGlzIHdlIGFsc28KPiA+ID4gPiBpbmNsdWRlIHRoZSA2NEsgcGFnZSBzaXplIGlu IHRoZSBwYWdlIHNpemVzIHRyaWVkLCBzaW5jZSB0aGF0Cj4gPiA+ID4gYXBwZWFycyB0bwo+ID4g PiA+IGJlIGEgY29tbW9uIHNpemUgZm9yIEdQVSBhcHBsaWNhdGlvbnMuCj4gPiA+IFBsZWFzZSBj b21wbGV0ZWx5IGRyb3AgdGhhdC4KPiA+IFlvdSBtZWFuIHRoZSA2NEsgcGFnZSBzaXplLCBvciB0 aGUgd2hvbGUgcGF0Y2g/Cj4gCj4gVGhlIDY0SyBwYWdlIHNpemUuIFRoaXMgd2FzIGFuIGludmVu dGlvbiBmcm9tIE1pY3Jvc29mdCB0bwo+IHN0YW5kYXJkaXplIAo+IEdQVSBoYW5kbGluZyB+MTUt MjB5ZWFycyBhZ28uCj4gCj4gSXQgdHVybmVkIG91dCB0byBiZSBhIGNvbXBsZXRlIHNoaXB3cmVj ayBhbmQgYnkgbm93IDJNaUIgYW5kIDFHaUIKPiBwYWdlcyAKPiBvciBqdXN0IGZsZXhpYmxlIGhh cmR3YXJlIHdoaWNoIGNhbiBoYW5kbGUgZXZlcnl0aGluZyBzZWVtIHRvIGJlY29tZSAKPiBzdGFu ZGFyZC4KPiAKPiA+ID4gVGhpcyBpcyBqdXN0IG5vbnNlbnNlIHNwaWxsaW5nIGluIGZyb20gdGhl Cj4gPiA+IFdpbmRvd3MgZHJpdmVycy4KPiA+IEFncmVlZCwgYnV0IElJUkMgb24gdGhlIGxhc3Qg UkZDIHlvdSBhc2tlZCBtZSBub3QgdG8gZHJvcCB0aGUgNjRLCj4gPiBwYWdlcywgc28gdGhhdCdz IHdoeSB0aGV5IGFyZSBoZXJlLiBJIGNhbiByZW1vdmUgdGhlbSBpZiBuZWVkZWQuCj4gCj4gV2Ug Y291bGQga2VlcCBpdCBpZiBpdCdzIGluIGFueSB3YXkgYmVuZWZpY2lhbCwgYnV0IEknbSBwcmV0 dHkgc3VyZSBJCj4gbXVzdCBoYXZlIGJlZW4gZHJ1bmsgdG8gYXNrIGZvciB0aGF0Lgo+IAo+ID4g VGhlIG9ubHkgcmVhc29uIGZvciBrZWVwaW5nIHRoZW0gZnJvbSBhIHBlcmZvcm1hbmNlIHBvaW50 IG9mIHZpZXcKPiA+IGlzCj4gPiBiZXR0ZXIgZWZmaWNpZW5jeSBvbiBHUFVzIHdpdGggNjRLIHBh Z2Ugc2l6ZSBpZiBub3QgdXNpbmcgYQo+ID4gY29hbGVzY2luZwo+ID4gSU9NTVUgZm9yIGRtYS1t YXBwaW5nLgo+IAo+IEFyZSBhbnkgb2YgdGhvc2Ugc3RpbGwgcHJvZHVjZWQ/IEFzIGZhciBhcyBJ IGtub3cgbmVpdGhlciBOVmlkaWEsCj4gSW50ZWwgCj4gbm9yIEFNRCBzdGlsbCBhc3N1bWVzIHRo YXQgcGFnZSBzaXplIGluIHRoZWlyIGhhcmR3YXJlIGZvciBxdWl0ZSBhCj4gd2hpbGUgCj4gbm93 LgoKSW50ZWwgc3RpbGwgc3VwcG9ydHMgNjRLIFBURXMsIHNvIHdlIHVzZSB0aGVtIHdoZXJlIHBv c3NpYmxlLCBvdGhlcndpc2UKZmFsbGluZyBiYWNrIHRvIDRLLiBUeXBpY2FsbHkgd2UgaGF2ZSBj b2FsZXNjaW5nIElPTU1VIGVuYWJsZWQgd2hlbgp0ZXN0aW5nLCBzbyBjYW4ndCByZWFsbHkgc2Vl IHRoZSBpbXBhY3QsIGJ1dCBUQkggSSB3YXMgc3VycHJpc2VkIGJ5IHRoZQpudW1iZXIgb2YgNjRL IHBhZ2UgYWxsb2NhdGlvbnMgVFRNIHNwYXQgb3V0IHdpdGggdGhpcyBwYXRjaCBzZXJpZXMsIHNv CkkgZGVmaW5pdGVseSB0aGluayB0aGVyZSBpcyBhIHBlcmZvcm1hbmNlIGltcGFjdCB3aXRoICFJ T01NVSwgYWx0aG91Z2gKSSBjYW4ndCBxdWFudGlmeSBpdCBBVE0uCgpTbyB0aGVuIGlmIGl0J3Mg T0sgd2l0aCB5b3UgSSdsbCBrZWVwIHRoYXQgc2l6ZSBmb3Igbm93LgoKL1Rob21hcwoKCgo+IAo+ IFJlZ2FyZHMsCj4gQ2hyaXN0aWFuLgo+IAo+ID4gCj4gPiBMZXQgbWUga25vdyB3aGF0IHlvdSB0 aGluayBpcyBiZXN0IGFuZCBJJ2xsIGFkanVzdCBhY2NvcmRpbmdseS4KPiA+IAo+ID4gL1Rob21h cwo+ID4gCj4gPiAKPiA+ID4gQ2hyaXN0aWFuLgo+ID4gPiAKPiA+ID4gPiBMb29raW5nIGZvcndh cmQgdG8gd2hlbiB3ZSBtaWdodCBiZSBhYmxlIHRvIHN3YXAgb3V0IFBNRCBzaXplCj4gPiA+ID4g Zm9saW9zCj4gPiA+ID4gd2l0aG91dCBzcGxpdHRpbmcsIHRoaXMgd2lsbCBhbHNvIGJlIGEgYmVu ZWZpdC4KPiA+ID4gPiAKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgSGVsbHN0csO2bQo+ ID4gPiA+IDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiAtLS0KPiA+ ID4gPiDCoMKgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYyB8IDU4Cj4gPiA+ID4gKysr KysrKysrKysrKysrKysrKysrKysrKystLS0KPiA+ID4gPiAtLS0tLQo+ID4gPiA+IMKgwqAgMSBm aWxlIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQo+ID4gPiA+IAo+ ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMKPiA+ID4g PiBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYwo+ID4gPiA+IGluZGV4IDFjYzc1OTFh OTU0Mi4uODc4N2ZiNmEyMThiIDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX3Bvb2wuYwo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wu Ywo+ID4gPiA+IEBAIC0zMSw2ICszMSw4IEBACj4gPiA+ID4gwqDCoMKgICogY2F1c2UgdGhleSBh cmUgcmF0aGVyIHNsb3cgY29tcGFyZWQgdG8gYWxsb2NfcGFnZXMrbWFwLgo+ID4gPiA+IMKgwqDC oCAqLwo+ID4gPiA+IMKgwqAgCj4gPiA+ID4gKyNkZWZpbmUgcHJfZm10KGZtdCkgIltUVE0gUE9P TF0gIiBmbXQKPiA+ID4gPiArCj4gPiA+ID4gwqDCoCAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+ Cj4gPiA+ID4gwqDCoCAjaW5jbHVkZSA8bGludXgvZG1hLW1hcHBpbmcuaD4KPiA+ID4gPiDCoMKg ICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+Cj4gPiA+ID4gQEAgLTQ3LDYgKzQ5LDE4IEBACj4g PiA+ID4gwqDCoCAKPiA+ID4gPiDCoMKgICNpbmNsdWRlICJ0dG1fbW9kdWxlLmgiCj4gPiA+ID4g wqDCoCAKPiA+ID4gPiArI2RlZmluZSBUVE1fTUFYX09SREVSIChQTURfU0hJRlQgLSBQQUdFX1NI SUZUKQo+ID4gPiA+ICsjZGVmaW5lIFRUTV82NEtfT1JERVIgKDE2IC0gUEFHRV9TSElGVCkKPiA+ ID4gPiArI2lmIChUVE1fTUFYX09SREVSIDwgVFRNXzY0S19PUkRFUikKPiA+ID4gPiArI3VuZGVm IFRUTV9NQVhfT1JERVIKPiA+ID4gPiArI2RlZmluZSBUVE1fTUFYX09SREVSIFRUTV82NEtfT1JE RVIKPiA+ID4gPiArI2VuZGlmCj4gPiA+ID4gKyNpZiAoKE1BWF9PUkRFUiAtIDEpIDwgVFRNX01B WF9PUkRFUikKPiA+ID4gPiArI3VuZGVmIFRUTV9NQVhfT1JERVIKPiA+ID4gPiArI2RlZmluZSBU VE1fTUFYX09SREVSIChNQVhfT1JERVIgLSAxKQo+ID4gPiA+ICsjZW5kaWYKPiA+ID4gPiArI2Rl ZmluZSBUVE1fRElNX09SREVSIChUVE1fTUFYX09SREVSICsgMSkKPiA+ID4gPiArCj4gPiA+ID4g wqDCoCAvKioKPiA+ID4gPiDCoMKgwqAgKiBzdHJ1Y3QgdHRtX3Bvb2xfZG1hIC0gSGVscGVyIG9i amVjdCBmb3IgY29oZXJlbnQgRE1BCj4gPiA+ID4gbWFwcGluZ3MKPiA+ID4gPiDCoMKgwqAgKgo+ ID4gPiA+IEBAIC02NSwxNiArNzksMTggQEAgbW9kdWxlX3BhcmFtKHBhZ2VfcG9vbF9zaXplLCB1 bG9uZywgMDY0NCk7Cj4gPiA+ID4gwqDCoCAKPiA+ID4gPiDCoMKgIHN0YXRpYyBhdG9taWNfbG9u Z190IGFsbG9jYXRlZF9wYWdlczsKPiA+ID4gPiDCoMKgIAo+ID4gPiA+IC1zdGF0aWMgc3RydWN0 IHR0bV9wb29sX3R5cGUgZ2xvYmFsX3dyaXRlX2NvbWJpbmVkW01BWF9PUkRFUl07Cj4gPiA+ID4g LXN0YXRpYyBzdHJ1Y3QgdHRtX3Bvb2xfdHlwZSBnbG9iYWxfdW5jYWNoZWRbTUFYX09SREVSXTsK PiA+ID4gPiArc3RhdGljIHN0cnVjdCB0dG1fcG9vbF90eXBlCj4gPiA+ID4gZ2xvYmFsX3dyaXRl X2NvbWJpbmVkW1RUTV9ESU1fT1JERVJdOwo+ID4gPiA+ICtzdGF0aWMgc3RydWN0IHR0bV9wb29s X3R5cGUgZ2xvYmFsX3VuY2FjaGVkW1RUTV9ESU1fT1JERVJdOwo+ID4gPiA+IMKgwqAgCj4gPiA+ ID4gLXN0YXRpYyBzdHJ1Y3QgdHRtX3Bvb2xfdHlwZQo+ID4gPiA+IGdsb2JhbF9kbWEzMl93cml0 ZV9jb21iaW5lZFtNQVhfT1JERVJdOwo+ID4gPiA+IC1zdGF0aWMgc3RydWN0IHR0bV9wb29sX3R5 cGUgZ2xvYmFsX2RtYTMyX3VuY2FjaGVkW01BWF9PUkRFUl07Cj4gPiA+ID4gK3N0YXRpYyBzdHJ1 Y3QgdHRtX3Bvb2xfdHlwZQo+ID4gPiA+IGdsb2JhbF9kbWEzMl93cml0ZV9jb21iaW5lZFtUVE1f RElNX09SREVSXTsKPiA+ID4gPiArc3RhdGljIHN0cnVjdCB0dG1fcG9vbF90eXBlCj4gPiA+ID4g Z2xvYmFsX2RtYTMyX3VuY2FjaGVkW1RUTV9ESU1fT1JERVJdOwo+ID4gPiA+IMKgwqAgCj4gPiA+ ID4gwqDCoCBzdGF0aWMgc3BpbmxvY2tfdCBzaHJpbmtlcl9sb2NrOwo+ID4gPiA+IMKgwqAgc3Rh dGljIHN0cnVjdCBsaXN0X2hlYWQgc2hyaW5rZXJfbGlzdDsKPiA+ID4gPiDCoMKgIHN0YXRpYyBz dHJ1Y3Qgc2hyaW5rZXIgbW1fc2hyaW5rZXI7Cj4gPiA+ID4gwqDCoCAKPiA+ID4gPiArc3RhdGlj IHVuc2lnbmVkIGludCB0dG1fcG9vbF9vcmRlcnNbXSA9IHtUVE1fTUFYX09SREVSLCAwLCAwfTsK PiA+ID4gPiArCj4gPiA+ID4gwqDCoCAvKiBBbGxvY2F0ZSBwYWdlcyBvZiBzaXplIDEgPDwgb3Jk ZXIgd2l0aCB0aGUgZ2l2ZW4KPiA+ID4gPiBnZnBfZmxhZ3MgKi8KPiA+ID4gPiDCoMKgIHN0YXRp YyBzdHJ1Y3QgcGFnZSAqdHRtX3Bvb2xfYWxsb2NfcGFnZShzdHJ1Y3QgdHRtX3Bvb2wKPiA+ID4g PiAqcG9vbCwKPiA+ID4gPiBnZnBfdCBnZnBfZmxhZ3MsCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoHVuc2lnbmVkIGludCBvcmRlcikKPiA+ID4gPiBAQCAtNDAwLDYgKzQxNiwxNyBA QCBzdGF0aWMgdm9pZCBfX3R0bV9wb29sX2ZyZWUoc3RydWN0Cj4gPiA+ID4gdHRtX3Bvb2wKPiA+ ID4gPiAqcG9vbCwgc3RydWN0IHR0bV90dCAqdHQsCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKg fQo+ID4gPiA+IMKgwqAgfQo+ID4gPiA+IMKgwqAgCj4gPiA+ID4gK3N0YXRpYyB1bnNpZ25lZCBp bnQgdHRtX3Bvb2xfc2VsZWN0X29yZGVyKHVuc2lnbmVkIGludCBvcmRlciwKPiA+ID4gPiBwZ29m Zl90IG51bV9wYWdlcykKPiA+ID4gPiArewo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoHVuc2lnbmVk IGludCAqY3VyX29yZGVyID0gdHRtX3Bvb2xfb3JkZXJzOwo+ID4gPiA+ICsKPiA+ID4gPiArwqDC oMKgwqDCoMKgwqBvcmRlciA9IG1pbl90KHVuc2lnbmVkIGludCwgX19mbHMobnVtX3BhZ2VzKSwg b3JkZXIpOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoHdoaWxlIChvcmRlciA8ICpjdXJfb3JkZXIp Cj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCsrY3VyX29yZGVyOwo+ID4g PiA+ICsKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqByZXR1cm4gKmN1cl9vcmRlcjsKPiA+ID4gPiAr fQo+ID4gPiA+ICsKPiA+ID4gPiDCoMKgIC8qKgo+ID4gPiA+IMKgwqDCoCAqIHR0bV9wb29sX2Fs bG9jIC0gRmlsbCBhIHR0bV90dCBvYmplY3QKPiA+ID4gPiDCoMKgwqAgKgo+ID4gPiA+IEBAIC00 MzksOSArNDY2LDggQEAgaW50IHR0bV9wb29sX2FsbG9jKHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwK PiA+ID4gPiBzdHJ1Y3QgdHRtX3R0ICp0dCwKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBlbHNl Cj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGdmcF9mbGFncyB8PSBH RlBfSElHSFVTRVI7Cj4gPiA+ID4gwqDCoCAKPiA+ID4gPiAtwqDCoMKgwqDCoMKgwqBmb3IgKG9y ZGVyID0gbWluX3QodW5zaWduZWQgaW50LCBNQVhfT1JERVIgLSAxLAo+ID4gPiA+IF9fZmxzKG51 bV9wYWdlcykpOwo+ID4gPiA+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG51bV9wYWdlczsKPiA+ ID4gPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvcmRlciA9IG1pbl90KHVuc2lnbmVkIGludCwg b3JkZXIsCj4gPiA+ID4gX19mbHMobnVtX3BhZ2VzKSkpCj4gPiA+ID4gewo+ID4gPiA+ICvCoMKg wqDCoMKgwqDCoG9yZGVyID0gdHRtX3Bvb2xfc2VsZWN0X29yZGVyKHR0bV9wb29sX29yZGVyc1sw XSwKPiA+ID4gPiBudW1fcGFnZXMpOwo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoGZvciAoOyBudW1f cGFnZXM7IG9yZGVyID0gdHRtX3Bvb2xfc2VsZWN0X29yZGVyKG9yZGVyLAo+ID4gPiA+IG51bV9w YWdlcykpIHsKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc3RydWN0 IHR0bV9wb29sX3R5cGUgKnB0Owo+ID4gPiA+IMKgwqAgCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoHBhZ2VfY2FjaGluZyA9IHR0LT5jYWNoaW5nOwo+ID4gPiA+IEBA IC01NTgsNyArNTg0LDcgQEAgdm9pZCB0dG1fcG9vbF9pbml0KHN0cnVjdCB0dG1fcG9vbCAqcG9v bCwKPiA+ID4gPiBzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gPiA+ID4gwqDCoCAKPiA+ID4gPiDCoMKg wqDCoMKgwqDCoMKgwqBpZiAodXNlX2RtYV9hbGxvYykgewo+ID4gPiA+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwgVFRNX05VTV9DQUNISU5HX1RZUEVT OyArK2kpCj4gPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBmb3IgKGogPSAwOyBqIDwgTUFYX09SREVSOyArK2opCj4gPiA+ID4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmb3IgKGogPSAwOyBqIDwgVFRNX0RJ TV9PUkRFUjsgKytqKQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHR0bV9wb29sX3R5cGVfaW5pdCgmcG9vbC0K PiA+ID4gPiA+IGNhY2hpbmdbaV0ub3JkZXJzW2pdLAo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwb29sLCBpLAo+ID4gPiA+IGopOwo+ID4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoH0KPiA+ID4gPiBAQCAtNTc4LDcgKzYwNCw3IEBAIHZvaWQgdHRt X3Bvb2xfZmluaShzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wpCj4gPiA+ID4gwqDCoCAKPiA+ID4gPiDC oMKgwqDCoMKgwqDCoMKgwqBpZiAocG9vbC0+dXNlX2RtYV9hbGxvYykgewo+ID4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwgVFRNX05VTV9DQUNI SU5HX1RZUEVTOyArK2kpCj4gPiA+ID4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqBmb3IgKGogPSAwOyBqIDwgTUFYX09SREVSOyArK2opCj4gPiA+ID4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBmb3IgKGogPSAwOyBq IDwgVFRNX0RJTV9PUkRFUjsgKytqKQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHR0bV9wb29sX3R5cGVfZmlu aSgmcG9vbC0KPiA+ID4gPiA+IGNhY2hpbmdbaV0ub3JkZXJzW2pdKTsKPiA+ID4gPiDCoMKgwqDC oMKgwqDCoMKgwqB9Cj4gPiA+ID4gwqDCoCAKPiA+ID4gPiBAQCAtNjMyLDcgKzY1OCw3IEBAIHN0 YXRpYyB2b2lkIHR0bV9wb29sX2RlYnVnZnNfaGVhZGVyKHN0cnVjdAo+ID4gPiA+IHNlcV9maWxl ICptKQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHVuc2lnbmVkIGludCBpOwo+ID4gPiA+IMKg wqAgCj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgc2VxX3B1dHMobSwgIlx0ICIpOwo+ID4gPiA+ IC3CoMKgwqDCoMKgwqDCoGZvciAoaSA9IDA7IGkgPCBNQVhfT1JERVI7ICsraSkKPiA+ID4gPiAr wqDCoMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwgVFRNX0RJTV9PUkRFUjsgKytpKQo+ID4gPiA+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzZXFfcHJpbnRmKG0sICIgLS0tJTJ1 LS0tIiwgaSk7Cj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgc2VxX3B1dHMobSwgIlxuIik7Cj4g PiA+ID4gwqDCoCB9Cj4gPiA+ID4gQEAgLTY0Myw3ICs2NjksNyBAQCBzdGF0aWMgdm9pZCB0dG1f cG9vbF9kZWJ1Z2ZzX29yZGVycyhzdHJ1Y3QKPiA+ID4gPiB0dG1fcG9vbF90eXBlICpwdCwKPiA+ ID4gPiDCoMKgIHsKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqB1bnNpZ25lZCBpbnQgaTsKPiA+ ID4gPiDCoMKgIAo+ID4gPiA+IC3CoMKgwqDCoMKgwqDCoGZvciAoaSA9IDA7IGkgPCBNQVhfT1JE RVI7ICsraSkKPiA+ID4gPiArwqDCoMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwgVFRNX0RJTV9P UkRFUjsgKytpKQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzZXFf cHJpbnRmKG0sICIgJTh1IiwKPiA+ID4gPiB0dG1fcG9vbF90eXBlX2NvdW50KCZwdFtpXSkpOwo+ ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHNlcV9wdXRzKG0sICJcbiIpOwo+ID4gPiA+IMKgwqAg fQo+ID4gPiA+IEBAIC03NDksMTAgKzc3NSwxNiBAQCBpbnQgdHRtX3Bvb2xfbWdyX2luaXQodW5z aWduZWQgbG9uZwo+ID4gPiA+IG51bV9wYWdlcykKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBp ZiAoIXBhZ2VfcG9vbF9zaXplKQo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBwYWdlX3Bvb2xfc2l6ZSA9IG51bV9wYWdlczsKPiA+ID4gPiDCoMKgIAo+ID4gPiA+ICvC oMKgwqDCoMKgwqDCoGlmIChUVE1fNjRLX09SREVSIDwgVFRNX01BWF9PUkRFUikKPiA+ID4gPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdHRtX3Bvb2xfb3JkZXJzWzFdID0gVFRNXzY0 S19PUkRFUjsKPiA+ID4gPiArCj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgcHJfZGVidWcoIlVzZWQg b3JkZXJzIGFyZSAldSAldSAldVxuIiwKPiA+ID4gPiB0dG1fcG9vbF9vcmRlcnNbMF0sCj4gPiA+ ID4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0dG1fcG9vbF9vcmRlcnNbMV0sIHR0 bV9wb29sX29yZGVyc1syXSk7Cj4gPiA+ID4gKwo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoHNw aW5fbG9ja19pbml0KCZzaHJpbmtlcl9sb2NrKTsKPiA+ID4gPiDCoMKgwqDCoMKgwqDCoMKgwqBJ TklUX0xJU1RfSEVBRCgmc2hyaW5rZXJfbGlzdCk7Cj4gPiA+ID4gwqDCoCAKPiA+ID4gPiAtwqDC oMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwgTUFYX09SREVSOyArK2kpIHsKPiA+ID4gPiArwqDC oMKgwqDCoMKgwqBmb3IgKGkgPSAwOyBpIDwgVFRNX0RJTV9PUkRFUjsgKytpKSB7Cj4gPiA+ID4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHR0bV9wb29sX3R5cGVfaW5pdCgmZ2xv YmFsX3dyaXRlX2NvbWJpbmVkW2ldLAo+ID4gPiA+IE5VTEwsCj4gPiA+ID4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB0dG1fd3JpdGVfY29tYmluZWQsIGkpOwo+ID4gPiA+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqB0dG1fcG9vbF90eXBlX2luaXQoJmdsb2JhbF91bmNhY2hlZFtpXSwgTlVMTCwK PiA+ID4gPiB0dG1fdW5jYWNoZWQsIGkpOwo+ID4gPiA+IEBAIC03ODUsNyArODE3LDcgQEAgdm9p ZCB0dG1fcG9vbF9tZ3JfZmluaSh2b2lkKQo+ID4gPiA+IMKgwqAgewo+ID4gPiA+IMKgwqDCoMKg wqDCoMKgwqDCoHVuc2lnbmVkIGludCBpOwo+ID4gPiA+IMKgwqAgCj4gPiA+ID4gLcKgwqDCoMKg wqDCoMKgZm9yIChpID0gMDsgaSA8IE1BWF9PUkRFUjsgKytpKSB7Cj4gPiA+ID4gK8KgwqDCoMKg wqDCoMKgZm9yIChpID0gMDsgaSA8IFRUTV9ESU1fT1JERVI7ICsraSkgewo+ID4gPiA+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0dG1fcG9vbF90eXBlX2ZpbmkoJmdsb2JhbF93 cml0ZV9jb21iaW5lZFtpXSk7Cj4gPiA+ID4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHR0bV9wb29sX3R5cGVfZmluaSgmZ2xvYmFsX3VuY2FjaGVkW2ldKTsKPiA+ID4gPiDCoMKg IAo+IAoK