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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BF04DC433EF for ; Wed, 18 May 2022 02:09:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:References: Mime-Version:Message-Id:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=mbBDaYOolIWa8mHQnn2TDrL54upM/JTLHvstpiZgYtM=; b=zMxibAqerxZ+d/c5c53L+FzWRm wZSDCoXmg4QwsxLgUQ3HS15NIORE8mFQtNyc2HdsfW8t1U53NJbV6nt1ASNPJ1fGhp4wEpKTW0IuT HT1EHeXanHyi2/sPlykzCyGoziZEdesbjKBoFjb6vkgA/IxW/SxUjOUItM/FF54CGC8AefPHsmn1C edEIgi7vWHe7xfrpW/7wO7QFgqyiPrqr6ROe6POcJ5b+c8Mh4UUpZxxWjp2unlIkECVsDmpXs47V3 ssEMfU11NqZRv1G+1txvVTU63vHdVAmrjvNd8Imoh//GUNip1HY/1LBKilFJLJcYrs8g6o7r9eUin ALq8aGWQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nr96v-00GfpC-7c; Wed, 18 May 2022 02:08:25 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nr96c-00GfmE-Rq for linux-arm-kernel@bombadil.infradead.org; Wed, 18 May 2022 02:08:07 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: Cc:To:From:Subject:References:Mime-Version:Message-Id:In-Reply-To:Date:Sender :Reply-To:Content-ID:Content-Description; bh=rNx9Wnnb2Q40MxJ2AB9/JnqJGMPM8zlMbTCpT3dj1BA=; b=GCgSdjsG8golLrti2MeYQ2v933 P+R0KyvP6zDnrbXCWprZIOBOLuw3aT+C5dZOkZJ3T3+bPxy6z3nPGtoK1NbpLzMEdpmzcHcebIvoj idMiBVXWy84gcXxK2tFkDuOBoP7UtRzhsHqkt7cHJAvhNqbVRJV61q8T+TFQLmF0CFNsSmDNWSJpI VlUgInX/3p55naC2cYDJJDMqsJQDfTBU7Bb4mWR6gRDVtNycKs3zSZt6u3JkyV8q9W9Ecxs5LLYT9 eCXlbWaRo/bSV1D270OYnVU7H+MZlsJxwsiOBVPVxwRAuS5LmYAyuXP/31254a0TBVEpC682VVbCV D97qia3g==; Received: from mail-yw1-x114a.google.com ([2607:f8b0:4864:20::114a]) by casper.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nr8mO-00BKvr-Id for linux-arm-kernel@lists.infradead.org; Wed, 18 May 2022 01:47:15 +0000 Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-2ff37db94e8so7950117b3.16 for ; Tue, 17 May 2022 18:47:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc:content-transfer-encoding; bh=rNx9Wnnb2Q40MxJ2AB9/JnqJGMPM8zlMbTCpT3dj1BA=; b=f6Wu5/emDRNm3TYtxoLVModE1v2Mx1PvCfEpBOqsq/XlyHn9/UOOs77nvwwPtFVJq3 qrFUkNi5NBLe/pBIYKRo2sd6wPItxq8wQFVlYmzUCfvI7M4regAPS6cdxxH6GbcyzC7s pKvcQC7KEQEotcCZ+1xkSH/D3SFaay9M2qrf6cUg4Gv0sWPkUyv6sWJH6O/1xx1wc7xX 2wyH2dzmstBlBSK58XeKDFzZo/5XZ5e62feVsIhlFHehK8hd1JPDsPNJ9nzl/MZ070WZ 9tiMBh18sOlIL8wH0W8wwikED9KXhFQkcZQxa6EH8aBNEeV+I1y+qJTYRmHLKtvRGLGZ WDlQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=rNx9Wnnb2Q40MxJ2AB9/JnqJGMPM8zlMbTCpT3dj1BA=; b=436aSw8n/jFfyvUb9TsAnbglBxfGbfcVu4s3nZsjDvVUGnFQVgdq2LV+jzw8/nGiJJ nBwWVwsdotQHxYoVHm7KWs6rwQPW4HJUHCWEyr25/tqnAjb17MAnerNl0heNocOdn7J9 x2UY+Buvegl+9wGcEncDUtvZvmhtmcfWAV/oeMcNPSg2Mo/J3REuAOhqhnNgvNJwKqe8 RExCRsSXolTEnaKODzfbZHIOvFqfKEPUOW41upLGOEGP+F8j4yvCKdGmB/qJ0yY2LVme OnvDf0uRlUS5Hewfpt2R30IYlxCOdx84zdyBYixpjk13p6kkQNZNC3nd7egqyeQ+TWpk 1R/w== X-Gm-Message-State: AOAM5302zQo+RTBUBJJDOjP5AtyN2yFV6nGjmJDQf4fpWqOsFJGuoXaf fKlygA1MLkPIeyainmSL1XaavmbF8Hg= X-Google-Smtp-Source: ABdhPJw/GVYSFwqTPa9IB5eZEw8fBz/qkDDmWwgcQxKWC3IhU7UZHsf9NiWmIU8OqkuOn+EV5gSLDXe4G+Q= X-Received: from yuzhao.bld.corp.google.com ([2620:15c:183:200:f7bc:90c9:d86e:4ea8]) (user=yuzhao job=sendgmr) by 2002:a81:990f:0:b0:2f8:c347:d11a with SMTP id q15-20020a81990f000000b002f8c347d11amr28245783ywg.507.1652838429715; Tue, 17 May 2022 18:47:09 -0700 (PDT) Date: Tue, 17 May 2022 19:46:30 -0600 In-Reply-To: <20220518014632.922072-1-yuzhao@google.com> Message-Id: <20220518014632.922072-12-yuzhao@google.com> Mime-Version: 1.0 References: <20220518014632.922072-1-yuzhao@google.com> X-Mailer: git-send-email 2.36.0.550.gb090851708-goog Subject: [PATCH v11 11/14] mm: multi-gen LRU: thrashing prevention From: Yu Zhao To: Andrew Morton , linux-mm@kvack.org Cc: Andi Kleen , Aneesh Kumar , Catalin Marinas , Dave Hansen , Hillf Danton , Jens Axboe , Johannes Weiner , Jonathan Corbet , Linus Torvalds , Matthew Wilcox , Mel Gorman , Michael Larabel , Michal Hocko , Mike Rapoport , Peter Zijlstra , Tejun Heo , Vlastimil Babka , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, x86@kernel.org, page-reclaim@google.com, Yu Zhao , Brian Geffon , Jan Alexander Steffens , Oleksandr Natalenko , Steven Barrett , Suleiman Souhlal , Daniel Byrne , Donald Carr , "=?UTF-8?q?Holger=20Hoffst=C3=A4tte?=" , Konstantin Kharlamov , Shuang Zhai , Sofia Trinh , Vaibhav Jain X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220518_024712_660670_004A0427 X-CRM114-Status: GOOD ( 17.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org QWRkIC9zeXMva2VybmVsL21tL2xydV9nZW4vbWluX3R0bF9tcyBmb3IgdGhyYXNoaW5nIHByZXZl bnRpb24sIGFzCnJlcXVlc3RlZCBieSBtYW55IGRlc2t0b3AgdXNlcnMgWzFdLgoKV2hlbiBzZXQg dG8gdmFsdWUgTiwgaXQgcHJldmVudHMgdGhlIHdvcmtpbmcgc2V0IG9mIE4gbWlsbGlzZWNvbmRz CmZyb20gZ2V0dGluZyBldmljdGVkLiBUaGUgT09NIGtpbGxlciBpcyB0cmlnZ2VyZWQgaWYgdGhp cyB3b3JraW5nIHNldApjYW5ub3QgYmUga2VwdCBpbiBtZW1vcnkuIEJhc2VkIG9uIHRoZSBhdmVy YWdlIGh1bWFuIGRldGVjdGFibGUgbGFnCih+MTAwbXMpLCBOPTEwMDAgdXN1YWxseSBlbGltaW5h dGVzIGludG9sZXJhYmxlIGxhZ3MgZHVlIHRvIHRocmFzaGluZy4KTGFyZ2VyIHZhbHVlcyBsaWtl IE49MzAwMCBtYWtlIGxhZ3MgbGVzcyBub3RpY2VhYmxlIGF0IHRoZSByaXNrIG9mCnByZW1hdHVy ZSBPT00ga2lsbHMuCgpDb21wYXJlZCB3aXRoIHRoZSBzaXplLWJhc2VkIGFwcHJvYWNoLCBlLmcu LCBbMl0sIHRoaXMgdGltZS1iYXNlZAphcHByb2FjaCBoYXMgdGhlIGZvbGxvd2luZyBhZHZhbnRh Z2VzOgoxLiBJdCBpcyBlYXNpZXIgdG8gY29uZmlndXJlIGJlY2F1c2UgaXQgaXMgYWdub3N0aWMg dG8gYXBwbGljYXRpb25zCiAgIGFuZCBtZW1vcnkgc2l6ZXMuCjIuIEl0IGlzIG1vcmUgcmVsaWFi bGUgYmVjYXVzZSBpdCBpcyBkaXJlY3RseSB3aXJlZCB0byB0aGUgT09NIGtpbGxlci4KClsxXSBo dHRwczovL2xvcmUua2VybmVsLm9yZy9yL1lkemElMkZ6WEtZOUFUUm9oNkBnb29nbGUuY29tLwpb Ml0gaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvci8yMDEwMTAyODE5MTUyMy5HQTE0OTcyQGdvb2ds ZS5jb20vCgpTaWduZWQtb2ZmLWJ5OiBZdSBaaGFvIDx5dXpoYW9AZ29vZ2xlLmNvbT4KQWNrZWQt Ynk6IEJyaWFuIEdlZmZvbiA8YmdlZmZvbkBnb29nbGUuY29tPgpBY2tlZC1ieTogSmFuIEFsZXhh bmRlciBTdGVmZmVucyAoaGVmdGlnKSA8aGVmdGlnQGFyY2hsaW51eC5vcmc+CkFja2VkLWJ5OiBP bGVrc2FuZHIgTmF0YWxlbmtvIDxvbGVrc2FuZHJAbmF0YWxlbmtvLm5hbWU+CkFja2VkLWJ5OiBT dGV2ZW4gQmFycmV0dCA8c3RldmVuQGxpcXVvcml4Lm5ldD4KQWNrZWQtYnk6IFN1bGVpbWFuIFNv dWhsYWwgPHN1bGVpbWFuQGdvb2dsZS5jb20+ClRlc3RlZC1ieTogRGFuaWVsIEJ5cm5lIDxkamJ5 cm5lQG10dS5lZHU+ClRlc3RlZC1ieTogRG9uYWxkIENhcnIgPGRAY2hhb3MtcmVpbnMuY29tPgpU ZXN0ZWQtYnk6IEhvbGdlciBIb2Zmc3TDpHR0ZSA8aG9sZ2VyQGFwcGxpZWQtYXN5bmNocm9ueS5j b20+ClRlc3RlZC1ieTogS29uc3RhbnRpbiBLaGFybGFtb3YgPEhpLUFuZ2VsQHlhbmRleC5ydT4K VGVzdGVkLWJ5OiBTaHVhbmcgWmhhaSA8c3poYWkyQGNzLnJvY2hlc3Rlci5lZHU+ClRlc3RlZC1i eTogU29maWEgVHJpbmggPHNvZmlhLnRyaW5oQGVkaS53b3Jrcz4KVGVzdGVkLWJ5OiBWYWliaGF2 IEphaW4gPHZhaWJoYXZAbGludXguaWJtLmNvbT4KLS0tCiBpbmNsdWRlL2xpbnV4L21tem9uZS5o IHwgIDIgKysKIG1tL3Ztc2Nhbi5jICAgICAgICAgICAgfCA2OCArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21tem9uZS5oIGIv aW5jbHVkZS9saW51eC9tbXpvbmUuaAppbmRleCAzNzJhN2Y1YTY4MjkuLmIyZTg4NjliZTdjZiAx MDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tbXpvbmUuaAorKysgYi9pbmNsdWRlL2xpbnV4L21t em9uZS5oCkBAIC00MjEsNiArNDIxLDggQEAgc3RydWN0IGxydV9nZW5fc3RydWN0IHsKIAl1bnNp Z25lZCBsb25nIG1heF9zZXE7CiAJLyogdGhlIGV2aWN0aW9uIGluY3JlbWVudHMgdGhlIG9sZGVz dCBnZW5lcmF0aW9uIG51bWJlcnMgKi8KIAl1bnNpZ25lZCBsb25nIG1pbl9zZXFbQU5PTl9BTkRf RklMRV07CisJLyogdGhlIGJpcnRoIHRpbWUgb2YgZWFjaCBnZW5lcmF0aW9uIGluIGppZmZpZXMg Ki8KKwl1bnNpZ25lZCBsb25nIHRpbWVzdGFtcHNbTUFYX05SX0dFTlNdOwogCS8qIHRoZSBtdWx0 aS1nZW4gTFJVIGxpc3RzICovCiAJc3RydWN0IGxpc3RfaGVhZCBsaXN0c1tNQVhfTlJfR0VOU11b QU5PTl9BTkRfRklMRV1bTUFYX05SX1pPTkVTXTsKIAkvKiB0aGUgc2l6ZXMgb2YgdGhlIGFib3Zl IGxpc3RzICovCmRpZmYgLS1naXQgYS9tbS92bXNjYW4uYyBiL21tL3Ztc2Nhbi5jCmluZGV4IDA5 ZTJjM2U2ZjJiZS4uODIzYzU1ZTE3ZTY0IDEwMDY0NAotLS0gYS9tbS92bXNjYW4uYworKysgYi9t bS92bXNjYW4uYwpAQCAtNDE1OSw2ICs0MTU5LDcgQEAgc3RhdGljIHZvaWQgaW5jX21heF9zZXEo c3RydWN0IGxydXZlYyAqbHJ1dmVjLCBib29sIGNhbl9zd2FwKQogCWZvciAodHlwZSA9IDA7IHR5 cGUgPCBBTk9OX0FORF9GSUxFOyB0eXBlKyspCiAJCXJlc2V0X2N0cmxfcG9zKGxydXZlYywgdHlw ZSwgZmFsc2UpOwogCisJV1JJVEVfT05DRShscnVnZW4tPnRpbWVzdGFtcHNbbmV4dF0sIGppZmZp ZXMpOwogCS8qIG1ha2Ugc3VyZSBwcmVjZWRpbmcgbW9kaWZpY2F0aW9ucyBhcHBlYXIgKi8KIAlz bXBfc3RvcmVfcmVsZWFzZSgmbHJ1Z2VuLT5tYXhfc2VxLCBscnVnZW4tPm1heF9zZXEgKyAxKTsK IApAQCAtNDI4MSw3ICs0MjgyLDggQEAgc3RhdGljIGxvbmcgZ2V0X25yX2V2aWN0YWJsZShzdHJ1 Y3QgbHJ1dmVjICpscnV2ZWMsIHVuc2lnbmVkIGxvbmcgbWF4X3NlcSwKIAlyZXR1cm4gdG90YWwg PiAwID8gdG90YWwgOiAwOwogfQogCi1zdGF0aWMgdm9pZCBhZ2VfbHJ1dmVjKHN0cnVjdCBscnV2 ZWMgKmxydXZlYywgc3RydWN0IHNjYW5fY29udHJvbCAqc2MpCitzdGF0aWMgYm9vbCBhZ2VfbHJ1 dmVjKHN0cnVjdCBscnV2ZWMgKmxydXZlYywgc3RydWN0IHNjYW5fY29udHJvbCAqc2MsCisJCSAg ICAgICB1bnNpZ25lZCBsb25nIG1pbl90dGwpCiB7CiAJYm9vbCBuZWVkX2FnaW5nOwogCWxvbmcg bnJfdG9fc2NhbjsKQEAgLTQyOTIsMTQgKzQyOTQsMjIgQEAgc3RhdGljIHZvaWQgYWdlX2xydXZl YyhzdHJ1Y3QgbHJ1dmVjICpscnV2ZWMsIHN0cnVjdCBzY2FuX2NvbnRyb2wgKnNjKQogCiAJVk1f V0FSTl9PTl9PTkNFKHNjLT5tZW1jZ19sb3dfcmVjbGFpbSk7CiAKKwlpZiAobWluX3R0bCkgewor CQlpbnQgZ2VuID0gbHJ1X2dlbl9mcm9tX3NlcShtaW5fc2VxW0xSVV9HRU5fRklMRV0pOworCQl1 bnNpZ25lZCBsb25nIGJpcnRoID0gUkVBRF9PTkNFKGxydXZlYy0+bHJ1Z2VuLnRpbWVzdGFtcHNb Z2VuXSk7CisKKwkJaWYgKHRpbWVfaXNfYWZ0ZXJfamlmZmllcyhiaXJ0aCArIG1pbl90dGwpKQor CQkJcmV0dXJuIGZhbHNlOworCX0KKwogCW1lbV9jZ3JvdXBfY2FsY3VsYXRlX3Byb3RlY3Rpb24o TlVMTCwgbWVtY2cpOwogCiAJaWYgKG1lbV9jZ3JvdXBfYmVsb3dfbWluKG1lbWNnKSkKLQkJcmV0 dXJuOworCQlyZXR1cm4gZmFsc2U7CiAKIAlucl90b19zY2FuID0gZ2V0X25yX2V2aWN0YWJsZShs cnV2ZWMsIG1heF9zZXEsIG1pbl9zZXEsIHN3YXBwaW5lc3MsICZuZWVkX2FnaW5nKTsKIAlpZiAo IW5yX3RvX3NjYW4pCi0JCXJldHVybjsKKwkJcmV0dXJuIGZhbHNlOwogCiAJbnJfdG9fc2NhbiA+ Pj0gc2MtPnByaW9yaXR5OwogCkBAIC00MzA4LDExICs0MzE4LDE4IEBAIHN0YXRpYyB2b2lkIGFn ZV9scnV2ZWMoc3RydWN0IGxydXZlYyAqbHJ1dmVjLCBzdHJ1Y3Qgc2Nhbl9jb250cm9sICpzYykK IAogCWlmIChucl90b19zY2FuICYmIG5lZWRfYWdpbmcpCiAJCXRyeV90b19pbmNfbWF4X3NlcShs cnV2ZWMsIG1heF9zZXEsIHNjLCBzd2FwcGluZXNzKTsKKworCXJldHVybiB0cnVlOwogfQogCisv KiB0byBwcm90ZWN0IHRoZSB3b3JraW5nIHNldCBvZiB0aGUgbGFzdCBOIGppZmZpZXMgKi8KK3N0 YXRpYyB1bnNpZ25lZCBsb25nIGxydV9nZW5fbWluX3R0bCBfX3JlYWRfbW9zdGx5OworCiBzdGF0 aWMgdm9pZCBscnVfZ2VuX2FnZV9ub2RlKHN0cnVjdCBwZ2xpc3RfZGF0YSAqcGdkYXQsIHN0cnVj dCBzY2FuX2NvbnRyb2wgKnNjKQogewogCXN0cnVjdCBtZW1fY2dyb3VwICptZW1jZzsKKwlib29s IHN1Y2Nlc3MgPSBmYWxzZTsKKwl1bnNpZ25lZCBsb25nIG1pbl90dGwgPSBSRUFEX09OQ0UobHJ1 X2dlbl9taW5fdHRsKTsKIAogCVZNX1dBUk5fT05fT05DRSghY3VycmVudF9pc19rc3dhcGQoKSk7 CiAKQEAgLTQzMzgsMTIgKzQzNTUsMjggQEAgc3RhdGljIHZvaWQgbHJ1X2dlbl9hZ2Vfbm9kZShz dHJ1Y3QgcGdsaXN0X2RhdGEgKnBnZGF0LCBzdHJ1Y3Qgc2Nhbl9jb250cm9sICpzYykKIAlkbyB7 CiAJCXN0cnVjdCBscnV2ZWMgKmxydXZlYyA9IG1lbV9jZ3JvdXBfbHJ1dmVjKG1lbWNnLCBwZ2Rh dCk7CiAKLQkJYWdlX2xydXZlYyhscnV2ZWMsIHNjKTsKKwkJaWYgKGFnZV9scnV2ZWMobHJ1dmVj LCBzYywgbWluX3R0bCkpCisJCQlzdWNjZXNzID0gdHJ1ZTsKIAogCQljb25kX3Jlc2NoZWQoKTsK IAl9IHdoaWxlICgobWVtY2cgPSBtZW1fY2dyb3VwX2l0ZXIoTlVMTCwgbWVtY2csIE5VTEwpKSk7 CiAKIAljdXJyZW50LT5yZWNsYWltX3N0YXRlLT5tbV93YWxrID0gTlVMTDsKKworCS8qCisJICog VGhlIG1haW4gZ29hbCBpcyB0byBPT00ga2lsbCBpZiBldmVyeSBnZW5lcmF0aW9uIGZyb20gYWxs IG1lbWNncyBpcworCSAqIHlvdW5nZXIgdGhhbiBtaW5fdHRsLiBIb3dldmVyLCBhbm90aGVyIHRo ZW9yZXRpY2FsIHBvc3NpYmlsaXR5IGlzIGFsbAorCSAqIG1lbWNncyBhcmUgZWl0aGVyIGJlbG93 IG1pbiBvciBlbXB0eS4KKwkgKi8KKwlpZiAoIXN1Y2Nlc3MgJiYgIXNjLT5vcmRlciAmJiBtdXRl eF90cnlsb2NrKCZvb21fbG9jaykpIHsKKwkJc3RydWN0IG9vbV9jb250cm9sIG9jID0geworCQkJ LmdmcF9tYXNrID0gc2MtPmdmcF9tYXNrLAorCQl9OworCisJCW91dF9vZl9tZW1vcnkoJm9jKTsK KworCQltdXRleF91bmxvY2soJm9vbV9sb2NrKTsKKwl9CiB9CiAKIC8qCkBAIC01MDYyLDYgKzUw OTUsMjggQEAgc3RhdGljIHZvaWQgbHJ1X2dlbl9jaGFuZ2Vfc3RhdGUoYm9vbCBlbmFibGUpCiAg KiAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzZnMgaW50ZXJmYWNlCiAgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwogCitzdGF0aWMgc3NpemVfdCBzaG93X21pbl90dGwoc3RydWN0IGtvYmplY3Qg KmtvYmosIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQoreworCXJldHVy biBzcHJpbnRmKGJ1ZiwgIiV1XG4iLCBqaWZmaWVzX3RvX21zZWNzKFJFQURfT05DRShscnVfZ2Vu X21pbl90dGwpKSk7Cit9CisKK3N0YXRpYyBzc2l6ZV90IHN0b3JlX21pbl90dGwoc3RydWN0IGtv YmplY3QgKmtvYmosIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSAqYXR0ciwKKwkJCSAgICAgY29uc3Qg Y2hhciAqYnVmLCBzaXplX3QgbGVuKQoreworCXVuc2lnbmVkIGludCBtc2VjczsKKworCWlmIChr c3RydG91aW50KGJ1ZiwgMCwgJm1zZWNzKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlXUklURV9P TkNFKGxydV9nZW5fbWluX3R0bCwgbXNlY3NfdG9famlmZmllcyhtc2VjcykpOworCisJcmV0dXJu IGxlbjsKK30KKworc3RhdGljIHN0cnVjdCBrb2JqX2F0dHJpYnV0ZSBscnVfZ2VuX21pbl90dGxf YXR0ciA9IF9fQVRUUigKKwltaW5fdHRsX21zLCAwNjQ0LCBzaG93X21pbl90dGwsIHN0b3JlX21p bl90dGwKKyk7CisKIHN0YXRpYyBzc2l6ZV90IHNob3dfZW5hYmxlKHN0cnVjdCBrb2JqZWN0ICpr b2JqLCBzdHJ1Y3Qga29ial9hdHRyaWJ1dGUgKmF0dHIsIGNoYXIgKmJ1ZikKIHsKIAl1bnNpZ25l ZCBpbnQgY2FwcyA9IDA7CkBAIC01MTEwLDYgKzUxNjUsNyBAQCBzdGF0aWMgc3RydWN0IGtvYmpf YXR0cmlidXRlIGxydV9nZW5fZW5hYmxlZF9hdHRyID0gX19BVFRSKAogKTsKIAogc3RhdGljIHN0 cnVjdCBhdHRyaWJ1dGUgKmxydV9nZW5fYXR0cnNbXSA9IHsKKwkmbHJ1X2dlbl9taW5fdHRsX2F0 dHIuYXR0ciwKIAkmbHJ1X2dlbl9lbmFibGVkX2F0dHIuYXR0ciwKIAlOVUxMCiB9OwpAQCAtNTEy NSwxMiArNTE4MSwxNiBAQCBzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBscnVfZ2VuX2F0 dHJfZ3JvdXAgPSB7CiAKIHZvaWQgbHJ1X2dlbl9pbml0X2xydXZlYyhzdHJ1Y3QgbHJ1dmVjICps cnV2ZWMpCiB7CisJaW50IGk7CiAJaW50IGdlbiwgdHlwZSwgem9uZTsKIAlzdHJ1Y3QgbHJ1X2dl bl9zdHJ1Y3QgKmxydWdlbiA9ICZscnV2ZWMtPmxydWdlbjsKIAogCWxydWdlbi0+bWF4X3NlcSA9 IE1JTl9OUl9HRU5TICsgMTsKIAlscnVnZW4tPmVuYWJsZWQgPSBscnVfZ2VuX2VuYWJsZWQoKTsK IAorCWZvciAoaSA9IDA7IGkgPD0gTUlOX05SX0dFTlMgKyAxOyBpKyspCisJCWxydWdlbi0+dGlt ZXN0YW1wc1tpXSA9IGppZmZpZXM7CisKIAlmb3JfZWFjaF9nZW5fdHlwZV96b25lKGdlbiwgdHlw ZSwgem9uZSkKIAkJSU5JVF9MSVNUX0hFQUQoJmxydWdlbi0+bGlzdHNbZ2VuXVt0eXBlXVt6b25l XSk7CiAKLS0gCjIuMzYuMC41NTAuZ2IwOTA4NTE3MDgtZ29vZwoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBs aXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5m cmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK