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=-12.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 95BBDC47096 for ; Thu, 3 Jun 2021 09:48: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 411CE613DA for ; Thu, 3 Jun 2021 09:48:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 411CE613DA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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 3BFF76ECEE; Thu, 3 Jun 2021 09:48:44 +0000 (UTC) Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com [IPv6:2607:f8b0:4864:20::831]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C4CD6E84A; Thu, 3 Jun 2021 09:48:43 +0000 (UTC) Received: by mail-qt1-x831.google.com with SMTP id v4so3967419qtp.1; Thu, 03 Jun 2021 02:48:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=dSSOsIAjSoeXvheN+mVsxIwibgECqv9CPqBUuH9ed0I=; b=UAmWHQ/oOpxa7fk0NbJAONnXxmoo07blTHjMxfwApTfOIpPaHQcZ2F27b2cNLv0RGO hvY+bbYelWJRhwLWBzic0gB55D2fS5n0CJX5a1Rk3qyIgQkKKHpwKqO1mpv9gq2/yXZD QvkE4AVHlreR1OTecrMJHzFaSxWhcbMxIYyDMh2SoQEad6MRF4DJhhFazedE+APZB/zJ 0Vt9AuJzc6AdhwrHsTQxfdLB1eIeBfKdT2DlcMRrTZnmG4vIjVlfb4tGHhHWrD8g8Pit JLyvUa2EJs2qf0d/wDEsHLuP15PLhDipTYjCYevz3wf7U49OdYhDz7RxWPAHiqCCDkZP 3jcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=dSSOsIAjSoeXvheN+mVsxIwibgECqv9CPqBUuH9ed0I=; b=PJwcQO5v9MCzB5otrb42CmycRzlQtR3twiHDEBO4EoRHGbLRdFm6OT6JKFgtoDpe4/ tiOsfYh7V+mE5eywj7KAxEgrKa1hmt642noX4kD32JxKbAVyTSkgYy0ErKsxoWlRf3di 7UXpW/IYQyYa0G9fMp1xTuazNEv6HFi+WSQvt6a21XQv8zgM0F6S7C4Wtg7osjpccNFx 52q7Vv3JIeWRgMPVVH7HErdzG7QOYFTAFhYbnLvCcpVQpMbLQZhqROPdLl0sAqSpAX1S YeJpQzKLFi4AZGb/cksTNboG7eeGLzuMCbpz4etegJEXV7jIG77LwaXBjQmO1ZUxUGpK LP/w== X-Gm-Message-State: AOAM533CwhWrZpV+AUPNd9Hz7PTwdSR/YqJzZoW0CqeUi37RqOZdfnWZ P+hqd/SSHcnKjGCg6U9uCkIlOmyfDTm1dhhqilLvj5pKoyFG/w== X-Google-Smtp-Source: ABdhPJwFmWQaQnmwql0RxeJR4wLEoltqz8xhFgdBcFzuBjvtMXLfY3skExCasCEm+V4kRpeF39e6k/rzVqHcG3OMIlI= X-Received: by 2002:ac8:75d4:: with SMTP id z20mr27860812qtq.265.1622713722146; Thu, 03 Jun 2021 02:48:42 -0700 (PDT) MIME-Version: 1.0 References: <20210602170716.280491-1-thomas.hellstrom@linux.intel.com> <20210602170716.280491-5-thomas.hellstrom@linux.intel.com> In-Reply-To: <20210602170716.280491-5-thomas.hellstrom@linux.intel.com> From: Matthew Auld Date: Thu, 3 Jun 2021 10:48:15 +0100 Message-ID: Subject: Re: [Intel-gfx] [PATCH 4/5] drm/i915/ttm: Use TTM for system memory To: =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 Graphics Development , ML dri-devel Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Wed, 2 Jun 2021 at 18:08, Thomas Hellstr=C3=B6m wrote: > > For discrete, use TTM for both cached and WC system memory. That means > we currently rely on the TTM memory accounting / shrinker. For cached > system memory we should consider remaining shmem-backed, which can be > implemented from our ttm_tt_populate calback. We can then also reuse our > own very elaborate shrinker for that memory. > > Signed-off-by: Thomas Hellstr=C3=B6m > --- > drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 22 ++++++++++++++++++++++ > drivers/gpu/drm/i915/i915_drv.h | 3 --- > drivers/gpu/drm/i915/intel_memory_region.c | 7 ++++++- > drivers/gpu/drm/i915/intel_memory_region.h | 8 ++++++++ > 4 files changed, 36 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i9= 15/gem/i915_gem_ttm.c > index 8e1c01168c6d..42e89bf43708 100644 > --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c > +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c > @@ -755,3 +755,25 @@ int __i915_gem_ttm_object_init(struct intel_memory_r= egion *mem, > /* i915 wants -ENXIO when out of memory region space. */ > return (ret =3D=3D -ENOSPC) ? -ENXIO : ret; > } > + > +static const struct intel_memory_region_ops ttm_system_region_ops =3D { > + .init_object =3D __i915_gem_ttm_object_init, > +}; > + > +struct intel_memory_region * > +i915_gem_ttm_system_setup(struct drm_i915_private *i915, > + u16 type, u16 instance) > +{ > + struct intel_memory_region *mr; > + > + mr =3D intel_memory_region_create(i915, 0, > + totalram_pages() << PAGE_SHIFT, > + PAGE_SIZE, 0, > + type, instance, > + &ttm_system_region_ops); > + if (IS_ERR_OR_NULL(mr)) region_create can't return NULL. > + return mr; > + > + intel_memory_region_set_name(mr, "system-ttm"); > + return mr; > +} > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_= drv.h > index 524aaeb0e842..c6cc16ccce36 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -1768,9 +1768,6 @@ void i915_gem_cleanup_userptr(struct drm_i915_priva= te *dev_priv); > void i915_gem_init_early(struct drm_i915_private *dev_priv); > void i915_gem_cleanup_early(struct drm_i915_private *dev_priv); > > -struct intel_memory_region *i915_gem_shmem_setup(struct drm_i915_private= *i915, > - u16 type, u16 instance); > - > static inline void i915_gem_drain_freed_objects(struct drm_i915_private = *i915) > { > /* > diff --git a/drivers/gpu/drm/i915/intel_memory_region.c b/drivers/gpu/drm= /i915/intel_memory_region.c > index bd27e897d4d0..a42bb36c2aea 100644 > --- a/drivers/gpu/drm/i915/intel_memory_region.c > +++ b/drivers/gpu/drm/i915/intel_memory_region.c > @@ -220,7 +220,12 @@ int intel_memory_regions_hw_probe(struct drm_i915_pr= ivate *i915) > instance =3D intel_region_map[i].instance; > switch (type) { > case INTEL_MEMORY_SYSTEM: > - mem =3D i915_gem_shmem_setup(i915, type, instance= ); > + if (IS_DGFX(i915)) > + mem =3D i915_gem_ttm_system_setup(i915, t= ype, > + instance)= ; > + else > + mem =3D i915_gem_shmem_setup(i915, type, > + instance); > break; > case INTEL_MEMORY_STOLEN_LOCAL: > mem =3D i915_gem_stolen_lmem_setup(i915, type, in= stance); > diff --git a/drivers/gpu/drm/i915/intel_memory_region.h b/drivers/gpu/drm= /i915/intel_memory_region.h > index 7b5fa97c0b59..4d084424b55c 100644 > --- a/drivers/gpu/drm/i915/intel_memory_region.h > +++ b/drivers/gpu/drm/i915/intel_memory_region.h > @@ -142,4 +142,12 @@ void intel_memory_region_unreserve(struct intel_memo= ry_region *mem); > int intel_memory_region_reserve(struct intel_memory_region *mem, > resource_size_t offset, > resource_size_t size); > + > +struct intel_memory_region * > +i915_gem_ttm_system_setup(struct drm_i915_private *i915, > + u16 type, u16 instance); > +struct intel_memory_region * > +i915_gem_shmem_setup(struct drm_i915_private *i915, > + u16 type, u16 instance); > + > #endif > -- > 2.31.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx 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=-10.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS 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 1F840C47096 for ; Thu, 3 Jun 2021 09:48:44 +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 BF384613DA for ; Thu, 3 Jun 2021 09:48:43 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BF384613DA Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.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 6AE916E84A; Thu, 3 Jun 2021 09:48:43 +0000 (UTC) Received: from mail-qt1-x831.google.com (mail-qt1-x831.google.com [IPv6:2607:f8b0:4864:20::831]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2C4CD6E84A; Thu, 3 Jun 2021 09:48:43 +0000 (UTC) Received: by mail-qt1-x831.google.com with SMTP id v4so3967419qtp.1; Thu, 03 Jun 2021 02:48:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=dSSOsIAjSoeXvheN+mVsxIwibgECqv9CPqBUuH9ed0I=; b=UAmWHQ/oOpxa7fk0NbJAONnXxmoo07blTHjMxfwApTfOIpPaHQcZ2F27b2cNLv0RGO hvY+bbYelWJRhwLWBzic0gB55D2fS5n0CJX5a1Rk3qyIgQkKKHpwKqO1mpv9gq2/yXZD QvkE4AVHlreR1OTecrMJHzFaSxWhcbMxIYyDMh2SoQEad6MRF4DJhhFazedE+APZB/zJ 0Vt9AuJzc6AdhwrHsTQxfdLB1eIeBfKdT2DlcMRrTZnmG4vIjVlfb4tGHhHWrD8g8Pit JLyvUa2EJs2qf0d/wDEsHLuP15PLhDipTYjCYevz3wf7U49OdYhDz7RxWPAHiqCCDkZP 3jcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=dSSOsIAjSoeXvheN+mVsxIwibgECqv9CPqBUuH9ed0I=; b=PJwcQO5v9MCzB5otrb42CmycRzlQtR3twiHDEBO4EoRHGbLRdFm6OT6JKFgtoDpe4/ tiOsfYh7V+mE5eywj7KAxEgrKa1hmt642noX4kD32JxKbAVyTSkgYy0ErKsxoWlRf3di 7UXpW/IYQyYa0G9fMp1xTuazNEv6HFi+WSQvt6a21XQv8zgM0F6S7C4Wtg7osjpccNFx 52q7Vv3JIeWRgMPVVH7HErdzG7QOYFTAFhYbnLvCcpVQpMbLQZhqROPdLl0sAqSpAX1S YeJpQzKLFi4AZGb/cksTNboG7eeGLzuMCbpz4etegJEXV7jIG77LwaXBjQmO1ZUxUGpK LP/w== X-Gm-Message-State: AOAM533CwhWrZpV+AUPNd9Hz7PTwdSR/YqJzZoW0CqeUi37RqOZdfnWZ P+hqd/SSHcnKjGCg6U9uCkIlOmyfDTm1dhhqilLvj5pKoyFG/w== X-Google-Smtp-Source: ABdhPJwFmWQaQnmwql0RxeJR4wLEoltqz8xhFgdBcFzuBjvtMXLfY3skExCasCEm+V4kRpeF39e6k/rzVqHcG3OMIlI= X-Received: by 2002:ac8:75d4:: with SMTP id z20mr27860812qtq.265.1622713722146; Thu, 03 Jun 2021 02:48:42 -0700 (PDT) MIME-Version: 1.0 References: <20210602170716.280491-1-thomas.hellstrom@linux.intel.com> <20210602170716.280491-5-thomas.hellstrom@linux.intel.com> In-Reply-To: <20210602170716.280491-5-thomas.hellstrom@linux.intel.com> From: Matthew Auld Date: Thu, 3 Jun 2021 10:48:15 +0100 Message-ID: To: =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= Subject: Re: [Intel-gfx] [PATCH 4/5] drm/i915/ttm: Use TTM for system memory 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 Graphics Development , ML dri-devel Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gV2VkLCAyIEp1biAyMDIxIGF0IDE4OjA4LCBUaG9tYXMgSGVsbHN0csO2bQo8dGhvbWFzLmhl bGxzdHJvbUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+Cj4gRm9yIGRpc2NyZXRlLCB1c2UgVFRN IGZvciBib3RoIGNhY2hlZCBhbmQgV0Mgc3lzdGVtIG1lbW9yeS4gVGhhdCBtZWFucwo+IHdlIGN1 cnJlbnRseSByZWx5IG9uIHRoZSBUVE0gbWVtb3J5IGFjY291bnRpbmcgLyBzaHJpbmtlci4gRm9y IGNhY2hlZAo+IHN5c3RlbSBtZW1vcnkgd2Ugc2hvdWxkIGNvbnNpZGVyIHJlbWFpbmluZyBzaG1l bS1iYWNrZWQsIHdoaWNoIGNhbiBiZQo+IGltcGxlbWVudGVkIGZyb20gb3VyIHR0bV90dF9wb3B1 bGF0ZSBjYWxiYWNrLiBXZSBjYW4gdGhlbiBhbHNvIHJldXNlIG91cgo+IG93biB2ZXJ5IGVsYWJv cmF0ZSBzaHJpbmtlciBmb3IgdGhhdCBtZW1vcnkuCj4KPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMg SGVsbHN0csO2bSA8dGhvbWFzLmhlbGxzdHJvbUBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90dG0uYyAgICB8IDIyICsrKysrKysrKysr KysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAg IHwgIDMgLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX21lbW9yeV9yZWdpb24uYyB8 ICA3ICsrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbWVtb3J5X3JlZ2lvbi5o IHwgIDggKysrKysrKysKPiAgNCBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCA0IGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90dG0uYwo+IGlu ZGV4IDhlMWMwMTE2OGM2ZC4uNDJlODliZjQzNzA4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90dG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV90dG0uYwo+IEBAIC03NTUsMyArNzU1LDI1IEBAIGludCBfX2k5MTVfZ2Vt X3R0bV9vYmplY3RfaW5pdChzdHJ1Y3QgaW50ZWxfbWVtb3J5X3JlZ2lvbiAqbWVtLAo+ICAgICAg ICAgLyogaTkxNSB3YW50cyAtRU5YSU8gd2hlbiBvdXQgb2YgbWVtb3J5IHJlZ2lvbiBzcGFjZS4g Ki8KPiAgICAgICAgIHJldHVybiAocmV0ID09IC1FTk9TUEMpID8gLUVOWElPIDogcmV0Owo+ICB9 Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX21lbW9yeV9yZWdpb25fb3BzIHR0bV9z eXN0ZW1fcmVnaW9uX29wcyA9IHsKPiArICAgICAgIC5pbml0X29iamVjdCA9IF9faTkxNV9nZW1f dHRtX29iamVjdF9pbml0LAo+ICt9Owo+ICsKPiArc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24g Kgo+ICtpOTE1X2dlbV90dG1fc3lzdGVtX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1LAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IHR5cGUsIHUxNiBpbnN0YW5jZSkK PiArewo+ICsgICAgICAgc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKm1yOwo+ICsKPiArICAg ICAgIG1yID0gaW50ZWxfbWVtb3J5X3JlZ2lvbl9jcmVhdGUoaTkxNSwgMCwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxyYW1fcGFnZXMoKSA8PCBQQUdFX1NI SUZULAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQUdFX1NJWkUs IDAsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUsIGluc3Rh bmNlLAo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdHRtX3N5c3Rl bV9yZWdpb25fb3BzKTsKPiArICAgICAgIGlmIChJU19FUlJfT1JfTlVMTChtcikpCgpyZWdpb25f Y3JlYXRlIGNhbid0IHJldHVybiBOVUxMLgoKPiArICAgICAgICAgICAgICAgcmV0dXJuIG1yOwo+ ICsKPiArICAgICAgIGludGVsX21lbW9yeV9yZWdpb25fc2V0X25hbWUobXIsICJzeXN0ZW0tdHRt Iik7Cj4gKyAgICAgICByZXR1cm4gbXI7Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBp bmRleCA1MjRhYWViMGU4NDIuLmM2Y2MxNmNjY2UzNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IEBAIC0xNzY4LDkgKzE3NjgsNiBAQCB2b2lkIGk5MTVfZ2VtX2NsZWFudXBfdXNlcnB0 cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ICB2b2lkIGk5MTVfZ2VtX2lu aXRfZWFybHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBpOTE1 X2dlbV9jbGVhbnVwX2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cj4K PiAtc3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKmk5MTVfZ2VtX3NobWVtX3NldHVwKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1MTYgdHlwZSwgdTE2IGluc3RhbmNlKTsKPiAtCj4gIHN0YXRp YyBpbmxpbmUgdm9pZCBpOTE1X2dlbV9kcmFpbl9mcmVlZF9vYmplY3RzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICppOTE1KQo+ICB7Cj4gICAgICAgICAvKgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKPiBpbmRleCBiZDI3ZTg5N2Q0ZDAuLmE0MmJiMzZjMmFl YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9u LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKPiBA QCAtMjIwLDcgKzIyMCwxMiBAQCBpbnQgaW50ZWxfbWVtb3J5X3JlZ2lvbnNfaHdfcHJvYmUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCj4gICAgICAgICAgICAgICAgIGluc3RhbmNlID0g aW50ZWxfcmVnaW9uX21hcFtpXS5pbnN0YW5jZTsKPiAgICAgICAgICAgICAgICAgc3dpdGNoICh0 eXBlKSB7Cj4gICAgICAgICAgICAgICAgIGNhc2UgSU5URUxfTUVNT1JZX1NZU1RFTToKPiAtICAg ICAgICAgICAgICAgICAgICAgICBtZW0gPSBpOTE1X2dlbV9zaG1lbV9zZXR1cChpOTE1LCB0eXBl LCBpbnN0YW5jZSk7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKElTX0RHRlgoaTkxNSkp Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW0gPSBpOTE1X2dlbV90dG1fc3lz dGVtX3NldHVwKGk5MTUsIHR5cGUsCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc3RhbmNlKTsKPiArICAgICAgICAgICAg ICAgICAgICAgICBlbHNlCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW0gPSBp OTE1X2dlbV9zaG1lbV9zZXR1cChpOTE1LCB0eXBlLAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2UpOwo+ICAgICAgICAg ICAgICAgICAgICAgICAgIGJyZWFrOwo+ICAgICAgICAgICAgICAgICBjYXNlIElOVEVMX01FTU9S WV9TVE9MRU5fTE9DQUw6Cj4gICAgICAgICAgICAgICAgICAgICAgICAgbWVtID0gaTkxNV9nZW1f c3RvbGVuX2xtZW1fc2V0dXAoaTkxNSwgdHlwZSwgaW5zdGFuY2UpOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9uLmgKPiBpbmRleCA3YjVmYTk3YzBiNTkuLjRkMDg0 NDI0YjU1YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlf cmVnaW9uLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tZW1vcnlfcmVnaW9u LmgKPiBAQCAtMTQyLDQgKzE0MiwxMiBAQCB2b2lkIGludGVsX21lbW9yeV9yZWdpb25fdW5yZXNl cnZlKHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0pOwo+ICBpbnQgaW50ZWxfbWVtb3J5 X3JlZ2lvbl9yZXNlcnZlKHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0sCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZV9zaXplX3Qgb2Zmc2V0LAo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2Vfc2l6ZV90IHNpemUpOwo+ICsKPiAr c3RydWN0IGludGVsX21lbW9yeV9yZWdpb24gKgo+ICtpOTE1X2dlbV90dG1fc3lzdGVtX3NldHVw KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgdTE2IHR5cGUsIHUxNiBpbnN0YW5jZSk7Cj4gK3N0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9u ICoKPiAraTkxNV9nZW1fc2htZW1fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUs Cj4gKyAgICAgICAgICAgICAgICAgICAgdTE2IHR5cGUsIHUxNiBpbnN0YW5jZSk7Cj4gKwo+ICAj ZW5kaWYKPiAtLQo+IDIuMzEuMQo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo=