Received: by 2002:a05:7412:251c:b0:e2:908c:2ebd with SMTP id w28csp1708975rda; Tue, 24 Oct 2023 00:16:10 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF0Rgzgvr+XB/hkvQgrGXwf+05rFlIEdRZHFx9ezBJpCQb3l1xZEO8WdZOe3Kp/HS9TXV92 X-Received: by 2002:a05:6a20:734d:b0:16b:f586:3c4 with SMTP id v13-20020a056a20734d00b0016bf58603c4mr1888022pzc.58.1698131769455; Tue, 24 Oct 2023 00:16:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698131769; cv=none; d=google.com; s=arc-20160816; b=D0SD1G/KSH8K2J8VwtN0VSfeHQT4K1pn4QokCgifwhhs2IPFPbcM88dzA/XVHk0TpF tXLSMa8jqWl17X119SY2GKCQIJQ5X64y9RqbE3bP8v8zq+b0EkiwLJU6GsvKVJZNcr4g zZzlWNKMCXBpnpX3m92EeFsOY4mD35AGoyujg171oizjfloZDYNzD+DOui+Oyxwcg5Nf b8zJG2u6hdqoxvoDXJKIdEahhkpFDgls5VCxVWGn3wDJH0KTs5fiFHXBtpEJK7fpTPaY D+9EOg6XEhUAAJVzCyNWlsE985BIVqLiboZ48UCw8V6oDXYTiR09gy6/yvX6g/DCDjpj Yufg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=O4XKdmsnPQl3dHhgnXly1nlogFG+nLP27ca7G/hp5Wc=; fh=7SPKHlZmspCz4TjNIv4RHSpLWE0OsqZ4dK+yqGeB01g=; b=X1JWJnMXQaXmOCcQuO4vi4cAQyB8GKpkBSpAU32TRP6w4rfwgXW0cVQzm7l9BpZzd3 McucRxJV9C0rNr0RABtzindXKLHbC+3d9EOQ/uoaqYL1aMGmhU3EeC/KTxGZpcFXMRfV fAkXStU610ESmL5gSWikwYtzNw9FllSN8LirS3uJBlVND1R5MOLJYx8i962Aa9GPKsYg jgl0WtvrahgVg6+Ywyl20NtEu4VdlBvQLzeGwxfvXHLsuPPFaIFbSN9MsvEaCFpODfWm vpsDcDPWa5WUn2dCBZigPC+O+MlgguH2eCppkjtNYHeyfOi02XjqUbkbT7YytMaAt3nc Q2JA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=FX7fo0zW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id ot16-20020a17090b3b5000b0026d034f6baesi8305052pjb.117.2023.10.24.00.16.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Oct 2023 00:16:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=FX7fo0zW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 5E4DB807F486; Tue, 24 Oct 2023 00:16:06 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232985AbjJXHPi (ORCPT + 99 others); Tue, 24 Oct 2023 03:15:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33416 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232925AbjJXHP0 (ORCPT ); Tue, 24 Oct 2023 03:15:26 -0400 Received: from mail-ej1-x62e.google.com (mail-ej1-x62e.google.com [IPv6:2a00:1450:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 29B4110F5 for ; Tue, 24 Oct 2023 00:15:22 -0700 (PDT) Received: by mail-ej1-x62e.google.com with SMTP id a640c23a62f3a-9be7e3fa1daso612312966b.3 for ; Tue, 24 Oct 2023 00:15:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1698131721; x=1698736521; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=O4XKdmsnPQl3dHhgnXly1nlogFG+nLP27ca7G/hp5Wc=; b=FX7fo0zW89JxzUSsdFEkd2IEJuJ2Xo17Z6GACP/dG1XOzb+bt/yIuGaaLkTYZvg3NF ro0+8FLLeJqIKIgfhrN55ZTirbjcZEibtaEsr4bwfaEkB7YsS5oNIG6Jp2mVRHpcJdEH rlpdE/iiT18VU4FKBHH98TyTKgcspm59t1R67mjYUTa5Nc1PVGD57gA9Ja0tyztW1vnX zbJmF8IOVD1p3EqZPu1LkhbeRzUsPy7OMD9yxSzhog1wKeYVkv9Ne8PpVaIxjkV23kQc sxz6BZONgfeVHPwaKGG44lxTy/OA1JzwVvFPgrgqA+ncDoAl5gxlo0OdQgTVEiSEZcXJ dPjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698131721; x=1698736521; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=O4XKdmsnPQl3dHhgnXly1nlogFG+nLP27ca7G/hp5Wc=; b=W0Bt5dzBM1ktlBuUcq+8xucBCM8dhPt0itvWxlGs4UandmCxF+azCGU5kUbTd2/VTb 6twUJMPiPwEZRbox7C+ZRhJDKgVpQGnMUgS/bS0yEjXBWwgIswiIXeAUFWBIFR246FCO Qod5/1I3XEd3Wl/2OIKEe3EEbtglReb/vSncj3goUCj09wXvIO6Mpa2c7qzrW8ssb8Dm UILPMC1Oj+95851vwEpo3jW5XFApfEssFtNVTHgsJM/fWj0TvCr5nYtmCKo+DAguej8c ngnsOZWg1uDbiSjBU0npAkpMcnqjtajuKMVGibJA2ZTzcCR9fxlz1ConY773HJMK9vz6 ZuEg== X-Gm-Message-State: AOJu0Yx8VzR3F1yTthpQ9b29B7zf4o20T0PKm1yLjvm+6WbeOnGVaK8a wrt+UQJfz4kSX6BYnN0NzU0L3UdJP5m3qYrfdThMMw== X-Received: by 2002:a17:907:7f8f:b0:9be:2469:bdf5 with SMTP id qk15-20020a1709077f8f00b009be2469bdf5mr11438912ejc.15.1698131720868; Tue, 24 Oct 2023 00:15:20 -0700 (PDT) MIME-Version: 1.0 References: <20231010032117.1577496-4-yosryahmed@google.com> <202310202303.c68e7639-oliver.sang@intel.com> In-Reply-To: From: Yosry Ahmed Date: Tue, 24 Oct 2023 00:14:42 -0700 Message-ID: Subject: Re: [PATCH v2 3/5] mm: memcg: make stats flushing threshold per-memcg To: Oliver Sang Cc: Feng Tang , Shakeel Butt , "oe-lkp@lists.linux.dev" , lkp , "cgroups@vger.kernel.org" , "linux-mm@kvack.org" , "Huang, Ying" , "Yin, Fengwei" , Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , Ivan Babrou , Tejun Heo , =?UTF-8?Q?Michal_Koutn=C3=BD?= , Waiman Long , "kernel-team@cloudflare.com" , Wei Xu , Greg Thelen , "linux-kernel@vger.kernel.org" Content-Type: multipart/mixed; boundary="0000000000000212ee0608711aa1" X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Tue, 24 Oct 2023 00:16:06 -0700 (PDT) --0000000000000212ee0608711aa1 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Oct 23, 2023 at 11:56=E2=80=AFPM Oliver Sang wrote: > > hi, Yosry Ahmed, > > On Mon, Oct 23, 2023 at 07:13:50PM -0700, Yosry Ahmed wrote: > > ... > > > > > I still could not run the benchmark, but I used a version of > > fallocate1.c that does 1 million iterations. I ran 100 in parallel. > > This showed ~13% regression with the patch, so not the same as the > > will-it-scale version, but it could be an indicator. > > > > With that, I did not see any improvement with the fixlet above or > > ___cacheline_aligned_in_smp. So you can scratch that. > > > > I did, however, see some improvement with reducing the indirection > > layers by moving stats_updates directly into struct mem_cgroup. The > > regression in my manual testing went down to 9%. Still not great, but > > I am wondering how this reflects on the benchmark. If you're able to > > test it that would be great, the diff is below. Meanwhile I am still > > looking for other improvements that can be made. > > we applied previous patch-set as below: > > c5f50d8b23c79 (linux-review/Yosry-Ahmed/mm-memcg-change-flush_next_time-t= o-flush_last_time/20231010-112257) mm: memcg: restore subtree stats flushin= g > ac8a48ba9e1ca mm: workingset: move the stats flush into workingset_test_r= ecent() > 51d74c18a9c61 mm: memcg: make stats flushing threshold per-memcg > 130617edc1cd1 mm: memcg: move vmstats structs definition above flushing c= ode > 26d0ee342efc6 mm: memcg: change flush_next_time to flush_last_time > 25478183883e6 Merge branch 'mm-nonmm-unstable' into mm-everything <----= the base our tool picked for the patch set > > I tried to apply below patch to either 51d74c18a9c61 or c5f50d8b23c79, > but failed. could you guide how to apply this patch? > Thanks > Thanks for looking into this. I rebased the diff on top of c5f50d8b23c79. Please find it attached. --0000000000000212ee0608711aa1 Content-Type: application/octet-stream; name="0001-memcg-move-stats_updates-to-struct-mem_cgroup.patch" Content-Disposition: attachment; filename="0001-memcg-move-stats_updates-to-struct-mem_cgroup.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lo3zpp7k0 RnJvbSAwYjBkZmZkZmUxOTIzODJhM2FhY2ZhMzEzYmVlZTY4YjMzYmY3ZDg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZb3NyeSBBaG1lZCA8eW9zcnlhaG1lZEBnb29nbGUuY29tPgpE YXRlOiBUdWUsIDI0IE9jdCAyMDIzIDA3OjAyOjAyICswMDAwClN1YmplY3Q6IFtQQVRDSF0gbWVt Y2c6IG1vdmUgc3RhdHNfdXBkYXRlcyB0byBzdHJ1Y3QgbWVtX2Nncm91cAoKLS0tCiBpbmNsdWRl L2xpbnV4L21lbWNvbnRyb2wuaCB8ICA0ICsrKysKIG1tL21lbWNvbnRyb2wuYyAgICAgICAgICAg IHwgMzMgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDIyIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvbWVtY29udHJvbC5oIGIvaW5jbHVkZS9saW51eC9tZW1jb250cm9sLmgKaW5kZXggZjY0 YWMxNDAwODNlZS4uYjRkZmNkOGI5Y2MxYyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9tZW1j b250cm9sLmgKKysrIGIvaW5jbHVkZS9saW51eC9tZW1jb250cm9sLmgKQEAgLTI3MCw2ICsyNzAs OSBAQCBzdHJ1Y3QgbWVtX2Nncm91cCB7CiAKIAlDQUNIRUxJTkVfUEFERElORyhfcGFkMV8pOwog CisJLyogU3RhdHMgdXBkYXRlcyBzaW5jZSB0aGUgbGFzdCBmbHVzaCAqLworCWF0b21pYzY0X3QJ CXN0YXRzX3VwZGF0ZXM7CisKIAkvKiBtZW1vcnkuc3RhdCAqLwogCXN0cnVjdCBtZW1jZ192bXN0 YXRzCSp2bXN0YXRzOwogCkBAIC0zMDksNiArMzEyLDcgQEAgc3RydWN0IG1lbV9jZ3JvdXAgewog CWF0b21pY190CQltb3ZpbmdfYWNjb3VudDsKIAlzdHJ1Y3QgdGFza19zdHJ1Y3QJKm1vdmVfbG9j a190YXNrOwogCisJdW5zaWduZWQgaW50IF9fcGVyY3B1ICpzdGF0c191cGRhdGVzX3BlcmNwdTsK IAlzdHJ1Y3QgbWVtY2dfdm1zdGF0c19wZXJjcHUgX19wZXJjcHUgKnZtc3RhdHNfcGVyY3B1Owog CiAjaWZkZWYgQ09ORklHX0NHUk9VUF9XUklURUJBQ0sKZGlmZiAtLWdpdCBhL21tL21lbWNvbnRy b2wuYyBiL21tL21lbWNvbnRyb2wuYwppbmRleCAxODJiNGYyMTVmYzY0Li5lNWQyZjNkNGQ4NzQ3 IDEwMDY0NAotLS0gYS9tbS9tZW1jb250cm9sLmMKKysrIGIvbW0vbWVtY29udHJvbC5jCkBAIC02 MjcsOSArNjI3LDYgQEAgc3RydWN0IG1lbWNnX3Ztc3RhdHNfcGVyY3B1IHsKIAkvKiBDZ3JvdXAx OiB0aHJlc2hvbGQgbm90aWZpY2F0aW9ucyAmIHNvZnRsaW1pdCB0cmVlIHVwZGF0ZXMgKi8KIAl1 bnNpZ25lZCBsb25nCQlucl9wYWdlX2V2ZW50czsKIAl1bnNpZ25lZCBsb25nCQl0YXJnZXRzW01F TV9DR1JPVVBfTlRBUkdFVFNdOwotCi0JLyogU3RhdHMgdXBkYXRlcyBzaW5jZSB0aGUgbGFzdCBm bHVzaCAqLwotCXVuc2lnbmVkIGludAkJc3RhdHNfdXBkYXRlczsKIH07CiAKIHN0cnVjdCBtZW1j Z192bXN0YXRzIHsKQEAgLTY0NCw5ICs2NDEsNiBAQCBzdHJ1Y3QgbWVtY2dfdm1zdGF0cyB7CiAJ LyogUGVuZGluZyBjaGlsZCBjb3VudHMgZHVyaW5nIHRyZWUgcHJvcGFnYXRpb24gKi8KIAlsb25n CQkJc3RhdGVfcGVuZGluZ1tNRU1DR19OUl9TVEFUXTsKIAl1bnNpZ25lZCBsb25nCQlldmVudHNf cGVuZGluZ1tOUl9NRU1DR19FVkVOVFNdOwotCi0JLyogU3RhdHMgdXBkYXRlcyBzaW5jZSB0aGUg bGFzdCBmbHVzaCAqLwotCWF0b21pYzY0X3QJCXN0YXRzX3VwZGF0ZXM7CiB9OwogCiAvKgpAQCAt Njk1LDE0ICs2ODksMTQgQEAgc3RhdGljIHZvaWQgbWVtY2dfc3RhdHNfdW5sb2NrKHZvaWQpCiAK IHN0YXRpYyBib29sIG1lbWNnX3Nob3VsZF9mbHVzaF9zdGF0cyhzdHJ1Y3QgbWVtX2Nncm91cCAq bWVtY2cpCiB7Ci0JcmV0dXJuIGF0b21pYzY0X3JlYWQoJm1lbWNnLT52bXN0YXRzLT5zdGF0c191 cGRhdGVzKSA+CisJcmV0dXJuIGF0b21pYzY0X3JlYWQoJm1lbWNnLT5zdGF0c191cGRhdGVzKSA+ CiAJCU1FTUNHX0NIQVJHRV9CQVRDSCAqIG51bV9vbmxpbmVfY3B1cygpOwogfQogCiBzdGF0aWMg aW5saW5lIHZvaWQgbWVtY2dfcnN0YXRfdXBkYXRlZChzdHJ1Y3QgbWVtX2Nncm91cCAqbWVtY2cs IGludCB2YWwpCiB7CiAJaW50IGNwdSA9IHNtcF9wcm9jZXNzb3JfaWQoKTsKLQl1bnNpZ25lZCBp bnQgeDsKKwl1bnNpZ25lZCBpbnQgKnN0YXRzX3VwZGF0ZXNfcGVyY3B1OwogCiAJaWYgKCF2YWwp CiAJCXJldHVybjsKQEAgLTcxMCwxMCArNzA0LDEwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1j Z19yc3RhdF91cGRhdGVkKHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZywgaW50IHZhbCkKIAljZ3Jv dXBfcnN0YXRfdXBkYXRlZChtZW1jZy0+Y3NzLmNncm91cCwgY3B1KTsKIAogCWZvciAoOyBtZW1j ZzsgbWVtY2cgPSBwYXJlbnRfbWVtX2Nncm91cChtZW1jZykpIHsKLQkJeCA9IF9fdGhpc19jcHVf YWRkX3JldHVybihtZW1jZy0+dm1zdGF0c19wZXJjcHUtPnN0YXRzX3VwZGF0ZXMsCi0JCQkJCSAg YWJzKHZhbCkpOworCQlzdGF0c191cGRhdGVzX3BlcmNwdSA9IHRoaXNfY3B1X3B0cihtZW1jZy0+ c3RhdHNfdXBkYXRlc19wZXJjcHUpOwogCi0JCWlmICh4IDwgTUVNQ0dfQ0hBUkdFX0JBVENIKQor CQkqc3RhdHNfdXBkYXRlc19wZXJjcHUgKz0gYWJzKHZhbCk7CisJCWlmICgqc3RhdHNfdXBkYXRl c19wZXJjcHUgPCBNRU1DR19DSEFSR0VfQkFUQ0gpCiAJCQljb250aW51ZTsKIAogCQkvKgpAQCAt NzIxLDggKzcxNSw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBtZW1jZ19yc3RhdF91cGRhdGVkKHN0 cnVjdCBtZW1fY2dyb3VwICptZW1jZywgaW50IHZhbCkKIAkJICogcmVkdW5kYW50LiBBdm9pZCB0 aGUgb3ZlcmhlYWQgb2YgdGhlIGF0b21pYyB1cGRhdGUuCiAJCSAqLwogCQlpZiAoIW1lbWNnX3No b3VsZF9mbHVzaF9zdGF0cyhtZW1jZykpCi0JCQlhdG9taWM2NF9hZGQoeCwgJm1lbWNnLT52bXN0 YXRzLT5zdGF0c191cGRhdGVzKTsKLQkJX190aGlzX2NwdV93cml0ZShtZW1jZy0+dm1zdGF0c19w ZXJjcHUtPnN0YXRzX3VwZGF0ZXMsIDApOworCQkJYXRvbWljNjRfYWRkKCpzdGF0c191cGRhdGVz X3BlcmNwdSwgJm1lbWNnLT5zdGF0c191cGRhdGVzKTsKKwkJKnN0YXRzX3VwZGF0ZXNfcGVyY3B1 ID0gMDsKIAl9CiB9CiAKQEAgLTU0NjcsNiArNTQ2MSw3IEBAIHN0YXRpYyB2b2lkIF9fbWVtX2Nn cm91cF9mcmVlKHN0cnVjdCBtZW1fY2dyb3VwICptZW1jZykKIAkJZnJlZV9tZW1fY2dyb3VwX3Bl cl9ub2RlX2luZm8obWVtY2csIG5vZGUpOwogCWtmcmVlKG1lbWNnLT52bXN0YXRzKTsKIAlmcmVl X3BlcmNwdShtZW1jZy0+dm1zdGF0c19wZXJjcHUpOworCWZyZWVfcGVyY3B1KG1lbWNnLT5zdGF0 c191cGRhdGVzX3BlcmNwdSk7CiAJa2ZyZWUobWVtY2cpOwogfQogCkBAIC01NTA0LDYgKzU0OTks MTEgQEAgc3RhdGljIHN0cnVjdCBtZW1fY2dyb3VwICptZW1fY2dyb3VwX2FsbG9jKHZvaWQpCiAJ aWYgKCFtZW1jZy0+dm1zdGF0c19wZXJjcHUpCiAJCWdvdG8gZmFpbDsKIAorCW1lbWNnLT5zdGF0 c191cGRhdGVzX3BlcmNwdSA9IGFsbG9jX3BlcmNwdV9nZnAodW5zaWduZWQgaW50LAorCQkJCQkJ ICAgICAgIEdGUF9LRVJORUxfQUNDT1VOVCk7CisJaWYgKCFtZW1jZy0+c3RhdHNfdXBkYXRlc19w ZXJjcHUpCisJCWdvdG8gZmFpbDsKKwogCWZvcl9lYWNoX25vZGUobm9kZSkKIAkJaWYgKGFsbG9j X21lbV9jZ3JvdXBfcGVyX25vZGVfaW5mbyhtZW1jZywgbm9kZSkpCiAJCQlnb3RvIGZhaWw7CkBA IC01NzM1LDEwICs1NzM1LDEyIEBAIHN0YXRpYyB2b2lkIG1lbV9jZ3JvdXBfY3NzX3JzdGF0X2Zs dXNoKHN0cnVjdCBjZ3JvdXBfc3Vic3lzX3N0YXRlICpjc3MsIGludCBjcHUpCiAJc3RydWN0IG1l bV9jZ3JvdXAgKm1lbWNnID0gbWVtX2Nncm91cF9mcm9tX2Nzcyhjc3MpOwogCXN0cnVjdCBtZW1f Y2dyb3VwICpwYXJlbnQgPSBwYXJlbnRfbWVtX2Nncm91cChtZW1jZyk7CiAJc3RydWN0IG1lbWNn X3Ztc3RhdHNfcGVyY3B1ICpzdGF0YzsKKwlpbnQgKnN0YXRzX3VwZGF0ZXNfcGVyY3B1OwogCWxv bmcgZGVsdGEsIGRlbHRhX2NwdSwgdjsKIAlpbnQgaSwgbmlkOwogCiAJc3RhdGMgPSBwZXJfY3B1 X3B0cihtZW1jZy0+dm1zdGF0c19wZXJjcHUsIGNwdSk7CisJc3RhdHNfdXBkYXRlc19wZXJjcHUg PSBwZXJfY3B1X3B0cihtZW1jZy0+c3RhdHNfdXBkYXRlc19wZXJjcHUsIGNwdSk7CiAKIAlmb3Ig KGkgPSAwOyBpIDwgTUVNQ0dfTlJfU1RBVDsgaSsrKSB7CiAJCS8qCkBAIC01ODI2LDkgKzU4Mjgs MTAgQEAgc3RhdGljIHZvaWQgbWVtX2Nncm91cF9jc3NfcnN0YXRfZmx1c2goc3RydWN0IGNncm91 cF9zdWJzeXNfc3RhdGUgKmNzcywgaW50IGNwdSkKIAkJCX0KIAkJfQogCX0KKwkqc3RhdHNfdXBk YXRlc19wZXJjcHUgPSAwOwogCS8qIFdlIGFyZSBpbiBhIHBlci1jcHUgbG9vcCBoZXJlLCBvbmx5 IGRvIHRoZSBhdG9taWMgd3JpdGUgb25jZSAqLwotCWlmIChhdG9taWM2NF9yZWFkKCZtZW1jZy0+ dm1zdGF0cy0+c3RhdHNfdXBkYXRlcykpCi0JCWF0b21pYzY0X3NldCgmbWVtY2ctPnZtc3RhdHMt PnN0YXRzX3VwZGF0ZXMsIDApOworCWlmIChhdG9taWM2NF9yZWFkKCZtZW1jZy0+c3RhdHNfdXBk YXRlcykpCisJCWF0b21pYzY0X3NldCgmbWVtY2ctPnN0YXRzX3VwZGF0ZXMsIDApOwogfQogCiAj aWZkZWYgQ09ORklHX01NVQotLSAKMi40Mi4wLjc1OC5nYWVkMDM2OGUwZS1nb29nCgo= --0000000000000212ee0608711aa1--