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.8 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,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 A2190C07E95 for ; Tue, 13 Jul 2021 19:58:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 836C46101D for ; Tue, 13 Jul 2021 19:58:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229944AbhGMUBG (ORCPT ); Tue, 13 Jul 2021 16:01:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35164 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231499AbhGMUBF (ORCPT ); Tue, 13 Jul 2021 16:01:05 -0400 Received: from mail-ot1-x336.google.com (mail-ot1-x336.google.com [IPv6:2607:f8b0:4864:20::336]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 09C21C0613DD for ; Tue, 13 Jul 2021 12:58:15 -0700 (PDT) Received: by mail-ot1-x336.google.com with SMTP id 59-20020a9d0ac10000b0290462f0ab0800so23572otq.11 for ; Tue, 13 Jul 2021 12:58:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=pz8q3VIqFRU6Z/Otup9y1fbrbnHC3h9yRwEFMSVd4po=; b=DGnT4aaklkuoh4XMDUeZRq//7mSWFtV3A0L+iDHT1S+iVnLosPSNCkAyO/1rZQCrSE UZ/WJLPpsbZpEl741Nu13cBhXe603O65KeMnC6vjyY7W/tca69MCJW+GDo33EM2wHLLU uSb9A0+ximsKFnDz9J4vm+HTRu+BGvxTUIUw4= 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=pz8q3VIqFRU6Z/Otup9y1fbrbnHC3h9yRwEFMSVd4po=; b=OaASG8DNM6uAuoWGPZ3IlYpeusUVpam3Js7caqyOn6QrcgbpIwGauqPzFvCUVvTRZw PvbEtHF3rtnfvpZB4ycDRNItalVaLTErWAj2cY4VktbdMNIIxgfUdBgg0sfTjVBLGH1c eusQOjB2h5n8HCzifc2cvCcWn/LsKMG7vyzUI3sLsQ9eQPn7S/c1b0iqaq+wtoruZKHj X1gsaCb2jhH0pgf0GqrLFmd+zPs4F11HX28qRwGlISbEgAvfek09Vp1Mg9ExmRZjwoZM mYQWyVNKY0svkPWEKM9ZMIZDmmC4TLstMIMFEyQilXvHjCxQ8ReKwaXYd7mPuVo/0Uuj eRXQ== X-Gm-Message-State: AOAM5313Ty8+/d6xOrOt9akVFCU6UBCaas2Ep9p0q0rGe0uAwOajftgI eY6rmv8sBRdJJ6Ggix6d9eh23QCLYDBmWAG1d2XTZg== X-Google-Smtp-Source: ABdhPJz9CiL//Tji/Cm8MAeN5UlQhpYrnRkpw3wA2Mbq0SpzZIBAEWBX0CbMXD846uBx7jrpmnzX3myPs/Aypjc7HYs= X-Received: by 2002:a05:6830:2366:: with SMTP id r6mr4902260oth.188.1626206294340; Tue, 13 Jul 2021 12:58:14 -0700 (PDT) MIME-Version: 1.0 References: <20210630164413.25481-1-ville.syrjala@linux.intel.com> <2edf584b-3835-53ed-f6e3-76c7e8d581ed@linux.intel.com> In-Reply-To: <2edf584b-3835-53ed-f6e3-76c7e8d581ed@linux.intel.com> From: Daniel Vetter Date: Tue, 13 Jul 2021 21:58:03 +0200 Message-ID: Subject: Re: [Intel-gfx] [PATCH] drm/i915/gt: Fix -EDEADLK handling regression To: Maarten Lankhorst , dri-devel Cc: Ville Syrjala , intel-gfx , =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= , stable Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org On Thu, Jul 1, 2021 at 9:07 AM Maarten Lankhorst wrote: > Op 30-06-2021 om 18:44 schreef Ville Syrjala: > > From: Ville Syrj=C3=A4l=C3=A4 > > > > The conversion to ww mutexes failed to address the fence code which > > already returns -EDEADLK when we run out of fences. Ww mutexes on > > the other hand treat -EDEADLK as an internal errno value indicating > > a need to restart the operation due to a deadlock. So now when the > > fence code returns -EDEADLK the higher level code erroneously > > restarts everything instead of returning the error to userspace > > as is expected. > > > > To remedy this let's switch the fence code to use a different errno > > value for this. -ENOBUFS seems like a semi-reasonable unique choice. > > Apart from igt the only user of this I could find is sna, and even > > there all we do is dump the current fence registers from debugfs > > into the X server log. So no user visible functionality is affected. > > If we really cared about preserving this we could of course convert > > back to -EDEADLK higher up, but doesn't seem like that's worth > > the hassle here. > > > > Not quite sure which commit specifically broke this, but I'll > > just attribute it to the general gem ww mutex work. > > > > Cc: stable@vger.kernel.org > > Cc: Maarten Lankhorst > > Cc: Thomas Hellstr=C3=B6m > > Testcase: igt/gem_pread/exhaustion > > Testcase: igt/gem_pwrite/basic-exhaustion > > Testcase: igt/gem_fenced_exec_thrash/too-many-fences > > Fixes: 80f0b679d6f0 ("drm/i915: Add an implementation for i915_gem_ww_c= tx locking, v2.") > > Signed-off-by: Ville Syrj=C3=A4l=C3=A4 > > --- > > drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c b/drivers/gpu= /drm/i915/gt/intel_ggtt_fencing.c > > index cac7f3f44642..f8948de72036 100644 > > --- a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c > > +++ b/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c > > @@ -348,7 +348,7 @@ static struct i915_fence_reg *fence_find(struct i91= 5_ggtt *ggtt) > > if (intel_has_pending_fb_unpin(ggtt->vm.i915)) > > return ERR_PTR(-EAGAIN); > > > > - return ERR_PTR(-EDEADLK); > > + return ERR_PTR(-ENOBUFS); > > } > > > > int __i915_vma_pin_fence(struct i915_vma *vma) > > Makes sense.. > > Reviewed-by: Maarten Lankhorst > > Is it a slightly more reent commit? Might probably be the part that conve= rts execbuffer to use ww locks. - please cc: dri-devel on anything gem/gt related. - this should probably be ENOSPC or something like that for at least a seeming retention of errno consistentcy: https://dri.freedesktop.org/docs/drm/gpu/drm-uapi.html#recommended-ioctl-re= turn-values Cheers, Daniel --=20 Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch 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 autolearn=unavailable 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 66538C11F66 for ; Tue, 13 Jul 2021 19:58:18 +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 C5BBF6101D for ; Tue, 13 Jul 2021 19:58:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C5BBF6101D 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 D05AC89FD1; Tue, 13 Jul 2021 19:58:16 +0000 (UTC) Received: from mail-ot1-x330.google.com (mail-ot1-x330.google.com [IPv6:2607:f8b0:4864:20::330]) by gabe.freedesktop.org (Postfix) with ESMTPS id CB4D989FD1 for ; Tue, 13 Jul 2021 19:58:14 +0000 (UTC) Received: by mail-ot1-x330.google.com with SMTP id f12-20020a056830204cb029048bcf4c6bd9so40765otp.8 for ; Tue, 13 Jul 2021 12:58:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=pz8q3VIqFRU6Z/Otup9y1fbrbnHC3h9yRwEFMSVd4po=; b=DGnT4aaklkuoh4XMDUeZRq//7mSWFtV3A0L+iDHT1S+iVnLosPSNCkAyO/1rZQCrSE UZ/WJLPpsbZpEl741Nu13cBhXe603O65KeMnC6vjyY7W/tca69MCJW+GDo33EM2wHLLU uSb9A0+ximsKFnDz9J4vm+HTRu+BGvxTUIUw4= 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=pz8q3VIqFRU6Z/Otup9y1fbrbnHC3h9yRwEFMSVd4po=; b=WIsCdgL2cxMNC7kINDs4uDz6mXYETm2bcY53jMEi8H8Bhkja0yd0puP89ohGd64FzO uVs/QBJ42D/9SNrHyePlHJl1pTnQNzTrCRuWgf51Fi2vKFm2paq+w+k8QS91FClbh5uX XRtVl28DzXiWDryt2BF6kc0z17LpBhGyBYGMom/B3/DJ+vwmhB9rAmrfB3RSuK++u2gz k03wslo7WwurH71IVPAVSfCwQjH23WRZrIbDSFYNNmvKrsgfI5zgqLMrGDyC3rEWDk+S rbkFmLITC51irc1k+5IQAydGc0x7R7q+oh9whFLL7Mjs85BWfP57cVo9vL+0wJdVpwUK aEng== X-Gm-Message-State: AOAM530s36V8JsjGCAaHuL0BBsz3Xeva2VtW6pUqi+3T7gwfoy6nntnu 0lvpMC+AIbua1rD3rLcGjALqO+S+/ActmSJg9GE+9w== X-Google-Smtp-Source: ABdhPJz9CiL//Tji/Cm8MAeN5UlQhpYrnRkpw3wA2Mbq0SpzZIBAEWBX0CbMXD846uBx7jrpmnzX3myPs/Aypjc7HYs= X-Received: by 2002:a05:6830:2366:: with SMTP id r6mr4902260oth.188.1626206294340; Tue, 13 Jul 2021 12:58:14 -0700 (PDT) MIME-Version: 1.0 References: <20210630164413.25481-1-ville.syrjala@linux.intel.com> <2edf584b-3835-53ed-f6e3-76c7e8d581ed@linux.intel.com> In-Reply-To: <2edf584b-3835-53ed-f6e3-76c7e8d581ed@linux.intel.com> From: Daniel Vetter Date: Tue, 13 Jul 2021 21:58:03 +0200 Message-ID: Subject: Re: [Intel-gfx] [PATCH] drm/i915/gt: Fix -EDEADLK handling regression To: Maarten Lankhorst , dri-devel 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-gfx , =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= , stable Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" On Thu, Jul 1, 2021 at 9:07 AM Maarten Lankhorst wrote: > Op 30-06-2021 om 18:44 schreef Ville Syrjala: > > From: Ville Syrj=C3=A4l=C3=A4 > > > > The conversion to ww mutexes failed to address the fence code which > > already returns -EDEADLK when we run out of fences. Ww mutexes on > > the other hand treat -EDEADLK as an internal errno value indicating > > a need to restart the operation due to a deadlock. So now when the > > fence code returns -EDEADLK the higher level code erroneously > > restarts everything instead of returning the error to userspace > > as is expected. > > > > To remedy this let's switch the fence code to use a different errno > > value for this. -ENOBUFS seems like a semi-reasonable unique choice. > > Apart from igt the only user of this I could find is sna, and even > > there all we do is dump the current fence registers from debugfs > > into the X server log. So no user visible functionality is affected. > > If we really cared about preserving this we could of course convert > > back to -EDEADLK higher up, but doesn't seem like that's worth > > the hassle here. > > > > Not quite sure which commit specifically broke this, but I'll > > just attribute it to the general gem ww mutex work. > > > > Cc: stable@vger.kernel.org > > Cc: Maarten Lankhorst > > Cc: Thomas Hellstr=C3=B6m > > Testcase: igt/gem_pread/exhaustion > > Testcase: igt/gem_pwrite/basic-exhaustion > > Testcase: igt/gem_fenced_exec_thrash/too-many-fences > > Fixes: 80f0b679d6f0 ("drm/i915: Add an implementation for i915_gem_ww_c= tx locking, v2.") > > Signed-off-by: Ville Syrj=C3=A4l=C3=A4 > > --- > > drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c b/drivers/gpu= /drm/i915/gt/intel_ggtt_fencing.c > > index cac7f3f44642..f8948de72036 100644 > > --- a/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c > > +++ b/drivers/gpu/drm/i915/gt/intel_ggtt_fencing.c > > @@ -348,7 +348,7 @@ static struct i915_fence_reg *fence_find(struct i91= 5_ggtt *ggtt) > > if (intel_has_pending_fb_unpin(ggtt->vm.i915)) > > return ERR_PTR(-EAGAIN); > > > > - return ERR_PTR(-EDEADLK); > > + return ERR_PTR(-ENOBUFS); > > } > > > > int __i915_vma_pin_fence(struct i915_vma *vma) > > Makes sense.. > > Reviewed-by: Maarten Lankhorst > > Is it a slightly more reent commit? Might probably be the part that conve= rts execbuffer to use ww locks. - please cc: dri-devel on anything gem/gt related. - this should probably be ENOSPC or something like that for at least a seeming retention of errno consistentcy: https://dri.freedesktop.org/docs/drm/gpu/drm-uapi.html#recommended-ioctl-re= turn-values Cheers, Daniel --=20 Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch 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 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 B6812C07E96 for ; Tue, 13 Jul 2021 19:58:17 +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 AD61061279 for ; Tue, 13 Jul 2021 19:58:16 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AD61061279 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 44E6589F9F; Tue, 13 Jul 2021 19:58:16 +0000 (UTC) Received: from mail-ot1-x330.google.com (mail-ot1-x330.google.com [IPv6:2607:f8b0:4864:20::330]) by gabe.freedesktop.org (Postfix) with ESMTPS id CABC289F9F for ; Tue, 13 Jul 2021 19:58:14 +0000 (UTC) Received: by mail-ot1-x330.google.com with SMTP id w8-20020a0568304108b02904b3da3d49e5so81539ott.1 for ; Tue, 13 Jul 2021 12:58:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=pz8q3VIqFRU6Z/Otup9y1fbrbnHC3h9yRwEFMSVd4po=; b=DGnT4aaklkuoh4XMDUeZRq//7mSWFtV3A0L+iDHT1S+iVnLosPSNCkAyO/1rZQCrSE UZ/WJLPpsbZpEl741Nu13cBhXe603O65KeMnC6vjyY7W/tca69MCJW+GDo33EM2wHLLU uSb9A0+ximsKFnDz9J4vm+HTRu+BGvxTUIUw4= 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=pz8q3VIqFRU6Z/Otup9y1fbrbnHC3h9yRwEFMSVd4po=; b=IM40CoLY0gn32j+jGC18q3duwqpn1pwh1ynrfvOC4jhihFNAiY90SRW3Xgd8qHvGmw B4Gh864TfUtn65F7EKI92tWrT9OhFOMA75Sfz8DsWmEdAEzY7VQXyBtwyD9m5Y6kISCC BH3AtrYMr4DLPlsMsbSDQvtksiOTbNuCBgt2mdYRkSQRE4l9Qe2Vgq6ZoXx75ag0kg/f IuMEx9vaoCrvK/DEw3H+y93zvWCqSUWxCb825gfvDS3eyfv/3IueyOw3nfyrjZhHfNeC luKC0a94wuhJ0ynL+8IElBkX2GDIyofZd0HJKcfSMZuuiX+l4f2ttqSawz/5AX+nbYr9 POhw== X-Gm-Message-State: AOAM531uRxYTUfzxP9AwAnfSV/2Ut80YDPLlTdY5+WVqqdgnYK7g0dgw tTRTBpFq+gJIa7xaExl5FGqH5/7I3yFzoQ5Er6yqfg== X-Google-Smtp-Source: ABdhPJz9CiL//Tji/Cm8MAeN5UlQhpYrnRkpw3wA2Mbq0SpzZIBAEWBX0CbMXD846uBx7jrpmnzX3myPs/Aypjc7HYs= X-Received: by 2002:a05:6830:2366:: with SMTP id r6mr4902260oth.188.1626206294340; Tue, 13 Jul 2021 12:58:14 -0700 (PDT) MIME-Version: 1.0 References: <20210630164413.25481-1-ville.syrjala@linux.intel.com> <2edf584b-3835-53ed-f6e3-76c7e8d581ed@linux.intel.com> In-Reply-To: <2edf584b-3835-53ed-f6e3-76c7e8d581ed@linux.intel.com> From: Daniel Vetter Date: Tue, 13 Jul 2021 21:58:03 +0200 Message-ID: To: Maarten Lankhorst , dri-devel Subject: Re: [Intel-gfx] [PATCH] drm/i915/gt: Fix -EDEADLK handling regression 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 , =?UTF-8?Q?Thomas_Hellstr=C3=B6m?= , stable Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" T24gVGh1LCBKdWwgMSwgMjAyMSBhdCA5OjA3IEFNIE1hYXJ0ZW4gTGFua2hvcnN0CjxtYWFydGVu Lmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+IE9wIDMwLTA2LTIwMjEgb20gMTg6 NDQgc2NocmVlZiBWaWxsZSBTeXJqYWxhOgo+ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxs ZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+Cj4gPiBUaGUgY29udmVyc2lvbiB0byB3dyBt dXRleGVzIGZhaWxlZCB0byBhZGRyZXNzIHRoZSBmZW5jZSBjb2RlIHdoaWNoCj4gPiBhbHJlYWR5 IHJldHVybnMgLUVERUFETEsgd2hlbiB3ZSBydW4gb3V0IG9mIGZlbmNlcy4gV3cgbXV0ZXhlcyBv bgo+ID4gdGhlIG90aGVyIGhhbmQgdHJlYXQgLUVERUFETEsgYXMgYW4gaW50ZXJuYWwgZXJybm8g dmFsdWUgaW5kaWNhdGluZwo+ID4gYSBuZWVkIHRvIHJlc3RhcnQgdGhlIG9wZXJhdGlvbiBkdWUg dG8gYSBkZWFkbG9jay4gU28gbm93IHdoZW4gdGhlCj4gPiBmZW5jZSBjb2RlIHJldHVybnMgLUVE RUFETEsgdGhlIGhpZ2hlciBsZXZlbCBjb2RlIGVycm9uZW91c2x5Cj4gPiByZXN0YXJ0cyBldmVy eXRoaW5nIGluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZSBlcnJvciB0byB1c2Vyc3BhY2UKPiA+IGFz IGlzIGV4cGVjdGVkLgo+ID4KPiA+IFRvIHJlbWVkeSB0aGlzIGxldCdzIHN3aXRjaCB0aGUgZmVu Y2UgY29kZSB0byB1c2UgYSBkaWZmZXJlbnQgZXJybm8KPiA+IHZhbHVlIGZvciB0aGlzLiAtRU5P QlVGUyBzZWVtcyBsaWtlIGEgc2VtaS1yZWFzb25hYmxlIHVuaXF1ZSBjaG9pY2UuCj4gPiBBcGFy dCBmcm9tIGlndCB0aGUgb25seSB1c2VyIG9mIHRoaXMgSSBjb3VsZCBmaW5kIGlzIHNuYSwgYW5k IGV2ZW4KPiA+IHRoZXJlIGFsbCB3ZSBkbyBpcyBkdW1wIHRoZSBjdXJyZW50IGZlbmNlIHJlZ2lz dGVycyBmcm9tIGRlYnVnZnMKPiA+IGludG8gdGhlIFggc2VydmVyIGxvZy4gU28gbm8gdXNlciB2 aXNpYmxlIGZ1bmN0aW9uYWxpdHkgaXMgYWZmZWN0ZWQuCj4gPiBJZiB3ZSByZWFsbHkgY2FyZWQg YWJvdXQgcHJlc2VydmluZyB0aGlzIHdlIGNvdWxkIG9mIGNvdXJzZSBjb252ZXJ0Cj4gPiBiYWNr IHRvIC1FREVBRExLIGhpZ2hlciB1cCwgYnV0IGRvZXNuJ3Qgc2VlbSBsaWtlIHRoYXQncyB3b3J0 aAo+ID4gdGhlIGhhc3NsZSBoZXJlLgo+ID4KPiA+IE5vdCBxdWl0ZSBzdXJlIHdoaWNoIGNvbW1p dCBzcGVjaWZpY2FsbHkgYnJva2UgdGhpcywgYnV0IEknbGwKPiA+IGp1c3QgYXR0cmlidXRlIGl0 IHRvIHRoZSBnZW5lcmFsIGdlbSB3dyBtdXRleCB3b3JrLgo+ID4KPiA+IENjOiBzdGFibGVAdmdl ci5rZXJuZWwub3JnCj4gPiBDYzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0 QGxpbnV4LmludGVsLmNvbT4KPiA+IENjOiBUaG9tYXMgSGVsbHN0csO2bSA8dGhvbWFzLmhlbGxz dHJvbUBpbnRlbC5jb20+Cj4gPiBUZXN0Y2FzZTogaWd0L2dlbV9wcmVhZC9leGhhdXN0aW9uCj4g PiBUZXN0Y2FzZTogaWd0L2dlbV9wd3JpdGUvYmFzaWMtZXhoYXVzdGlvbgo+ID4gVGVzdGNhc2U6 IGlndC9nZW1fZmVuY2VkX2V4ZWNfdGhyYXNoL3Rvby1tYW55LWZlbmNlcwo+ID4gRml4ZXM6IDgw ZjBiNjc5ZDZmMCAoImRybS9pOTE1OiBBZGQgYW4gaW1wbGVtZW50YXRpb24gZm9yIGk5MTVfZ2Vt X3d3X2N0eCBsb2NraW5nLCB2Mi4iKQo+ID4gU2lnbmVkLW9mZi1ieTogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2dndHRfZmVuY2luZy5jIHwgMiArLQo+ID4gIDEgZmlsZSBjaGFu Z2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9nZ3R0X2ZlbmNpbmcuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2d0L2ludGVsX2dndHRfZmVuY2luZy5jCj4gPiBpbmRleCBjYWM3ZjNmNDQ2NDIu LmY4OTQ4ZGU3MjAzNiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2lu dGVsX2dndHRfZmVuY2luZy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF9nZ3R0X2ZlbmNpbmcuYwo+ID4gQEAgLTM0OCw3ICszNDgsNyBAQCBzdGF0aWMgc3RydWN0IGk5 MTVfZmVuY2VfcmVnICpmZW5jZV9maW5kKHN0cnVjdCBpOTE1X2dndHQgKmdndHQpCj4gPiAgICAg ICBpZiAoaW50ZWxfaGFzX3BlbmRpbmdfZmJfdW5waW4oZ2d0dC0+dm0uaTkxNSkpCj4gPiAgICAg ICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FQUdBSU4pOwo+ID4KPiA+IC0gICAgIHJldHVybiBF UlJfUFRSKC1FREVBRExLKTsKPiA+ICsgICAgIHJldHVybiBFUlJfUFRSKC1FTk9CVUZTKTsKPiA+ ICB9Cj4gPgo+ID4gIGludCBfX2k5MTVfdm1hX3Bpbl9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZt YSkKPgo+IE1ha2VzIHNlbnNlLi4KPgo+IFJldmlld2VkLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8 bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgo+Cj4gSXMgaXQgYSBzbGlnaHRseSBt b3JlIHJlZW50IGNvbW1pdD8gTWlnaHQgcHJvYmFibHkgYmUgdGhlIHBhcnQgdGhhdCBjb252ZXJ0 cyBleGVjYnVmZmVyIHRvIHVzZSB3dyBsb2Nrcy4KCi0gcGxlYXNlIGNjOiBkcmktZGV2ZWwgb24g YW55dGhpbmcgZ2VtL2d0IHJlbGF0ZWQuCi0gdGhpcyBzaG91bGQgcHJvYmFibHkgYmUgRU5PU1BD IG9yIHNvbWV0aGluZyBsaWtlIHRoYXQgZm9yIGF0IGxlYXN0IGEKc2VlbWluZyByZXRlbnRpb24g b2YgZXJybm8gY29uc2lzdGVudGN5OgoKaHR0cHM6Ly9kcmkuZnJlZWRlc2t0b3Aub3JnL2RvY3Mv ZHJtL2dwdS9kcm0tdWFwaS5odG1sI3JlY29tbWVuZGVkLWlvY3RsLXJldHVybi12YWx1ZXMKCkNo ZWVycywgRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK