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=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_PASS,URIBL_BLOCKED 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 AA11FC43381 for ; Mon, 18 Mar 2019 10:38:14 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 4950720857 for ; Mon, 18 Mar 2019 10:38:14 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4950720857 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=virtuozzo.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id D0AD66B0003; Mon, 18 Mar 2019 06:38:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CB9C06B0006; Mon, 18 Mar 2019 06:38:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B5CF56B0007; Mon, 18 Mar 2019 06:38:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from mail-lj1-f199.google.com (mail-lj1-f199.google.com [209.85.208.199]) by kanga.kvack.org (Postfix) with ESMTP id 3D66E6B0003 for ; Mon, 18 Mar 2019 06:38:13 -0400 (EDT) Received: by mail-lj1-f199.google.com with SMTP id z15so4330300ljz.7 for ; Mon, 18 Mar 2019 03:38:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:subject:to:cc :references:from:message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=Pyy4MeAxvCqRmotuXuyBve8IYTQcNilmHD3S9P/oFKc=; b=ckuPaTO9giPco/9qv2YxH6QYfz6CgcrSniaQ/z3ALiuXmTyWkG94vSh/lw+EbRSuYJ 5O0vI66TOX2kj8zqlOuM0zbXwH+NBikAJR/95FAGX6Uwq66M58tfJ+Pr5sx1O1hP4RAw TBKfRaI1rZAszEfiFghDETnHX1Xp9CxjpVN9PAYxK9tJBKv2QyRROEeA0UHAd05Gv4Ov plDk4pA9YRhWlGCJ3XzN7mnYtnQRbg5qvP0yzm+IgIOelKXYbJq0rwPl67YwnC2xHgrp U3Eq9+2QbehCZwPh1/fKrHmwICRfPC7fDcixaw4S4jKT6//pjJ+4D9bPmh+dqmN7724Y QmYg== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of ktkhai@virtuozzo.com designates 185.231.240.75 as permitted sender) smtp.mailfrom=ktkhai@virtuozzo.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com X-Gm-Message-State: APjAAAVlRxIcK8MX15x9kyaugP+PHeRXKZuaWVjcgkHV/UHuM4QmxOkw uHXbeaFxcdzhbmimc08unAiNzLhYrzlEJGkZHk1ftUGwqrsLZ9zrQB94pHQEemxJE3QTpGOI3Pd N9gEOX+yDnXlZMCsj8CBoYfCraNREvkgwdBArlWJfo22D2Pc2sSU8IMWrqug53LxjUQ== X-Received: by 2002:ac2:529c:: with SMTP id q28mr10083704lfm.123.1552905489524; Mon, 18 Mar 2019 03:38:09 -0700 (PDT) X-Google-Smtp-Source: APXvYqxBHLAK/F+zFTQMczvWCTTeyTiHA82WCiv2Sqc81JRMyF8JaASQtNYI4OBMMYogNjT9fTWB X-Received: by 2002:ac2:529c:: with SMTP id q28mr10083601lfm.123.1552905486761; Mon, 18 Mar 2019 03:38:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552905486; cv=none; d=google.com; s=arc-20160816; b=sfF3Hu4Xi1qJpwQ2QU0c3Ii7d20BXfcSDVg9QB5Upnj35w0NlkwfL1K4vOHlBd24QK zomUSG260XOEdU9x7wywL4D2aur1N5I+coD+xpVmMgLaJzIYhwEVJS9rkpSyPFw5tIJv OCftbC/gqx/o0Bo2LgzsW62YDI36+AlD4DWaDDMZtB9JQEWR107D2fEnK1qH0H12UyVi VK0kFPFd2Xb9rBoSj6mpH46V3aPYBP3ddYw+O/9m8u6+z5FjFTkDrNuMAaRLvCxYhuAs BfgrodDod1epRPqF77FULBudyPPtegeVfpujHMvfGhM813KEfFJOwiNoxj6qGnBseE6p RzZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:content-language:in-reply-to:mime-version :user-agent:date:message-id:from:references:cc:to:subject; bh=Pyy4MeAxvCqRmotuXuyBve8IYTQcNilmHD3S9P/oFKc=; b=HdLEXcDQhxfU6PYC3hOYHGxSfXdWuMWINVdyT6VJlD80EOFPd3X7LlCI/dzkGZm8Fg rFzlKmcVNKi1k1WJrDTRZhscKU/lA2X72LippF8OZeOaZivLEjvAIQBzmvS8DgM6581V ChLG8n0s6eZIsnhzNFVcADS1K2R77q5Olst3L2TxheB9c6GjQPuInepiDUO3Smk9MVX+ jqRUSEI0lR8uhvTVHrXpsEx5bsIqzXzNAStG+5CCM4x8VbFi4wkLHhy5TITJ1vtazqIR OQgPgLorF45K1gquWBR+rVG/KNXTx6LDt51CnNWCPiMBzp8QHUks7n3/mCZv4jUr7bes pNIg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ktkhai@virtuozzo.com designates 185.231.240.75 as permitted sender) smtp.mailfrom=ktkhai@virtuozzo.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Received: from relay.sw.ru (relay.sw.ru. [185.231.240.75]) by mx.google.com with ESMTPS id s14si7013734lji.137.2019.03.18.03.38.06 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 18 Mar 2019 03:38:06 -0700 (PDT) Received-SPF: pass (google.com: domain of ktkhai@virtuozzo.com designates 185.231.240.75 as permitted sender) client-ip=185.231.240.75; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ktkhai@virtuozzo.com designates 185.231.240.75 as permitted sender) smtp.mailfrom=ktkhai@virtuozzo.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Received: from [172.16.25.169] by relay.sw.ru with esmtp (Exim 4.91) (envelope-from ) id 1h5pec-0005vs-Ll; Mon, 18 Mar 2019 13:38:02 +0300 Subject: Re: [External] Re: vmscan: Reclaim unevictable pages To: Pankaj Suryawanshi , Vlastimil Babka , Michal Hocko , "aneesh.kumar@linux.ibm.com" Cc: "linux-kernel@vger.kernel.org" , "minchan@kernel.org" , "linux-mm@kvack.org" , "khandual@linux.vnet.ibm.com" References: <20190314084120.GF7473@dhcp22.suse.cz> <226a92b9-94c5-b859-c54b-3aacad3089cc@virtuozzo.com> <0b86dbca-cbc9-3b43-e3b9-8876bcc24f22@suse.cz> <56862fc0-3e4b-8d1e-ae15-0df32bf5e4c0@virtuozzo.com> <4c05dda3-9fdf-e357-75ed-6ee3f25c9e52@virtuozzo.com> From: Kirill Tkhai Message-ID: <09b6ee71-0007-7f1d-ac80-7e05421e4ec6@virtuozzo.com> Date: Mon, 18 Mar 2019 13:38:01 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: base64 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: T24gMTguMDMuMjAxOSAxMjo1OSwgUGFua2FqIFN1cnlhd2Fuc2hpIHdyb3RlOg0KPiAgIA0K PiBGcm9tOiBLaXJpbGwgVGtoYWkgPGt0a2hhaUB2aXJ0dW96em8uY29tPg0KPiBTZW50OiAx OCBNYXJjaCAyMDE5IDE1OjE3OjU2DQo+IFRvOiBQYW5rYWogU3VyeWF3YW5zaGk7IFZsYXN0 aW1pbCBCYWJrYTsgTWljaGFsIEhvY2tvOyBhbmVlc2gua3VtYXJAbGludXguaWJtLmNvbQ0K PiBDYzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbWluY2hhbkBrZXJuZWwub3Jn OyBsaW51eC1tbUBrdmFjay5vcmc7IGtoYW5kdWFsQGxpbnV4LnZuZXQuaWJtLmNvbTsgaGls bGYuempAYWxpYmFiYS1pbmMuY29tDQo+IFN1YmplY3Q6IFJlOiBbRXh0ZXJuYWxdIFJlOiB2 bXNjYW46IFJlY2xhaW0gdW5ldmljdGFibGUgcGFnZXMNCg0KQWxzbywgcGxlYXNlLCBhdm9p ZCBpcnJpdGF0aW5nIHF1b3RpbmcgbGlrZSBiZWxvdyBeXl4uIFRoZXkganVzdCBkaXN0cmFj dCBhdHRlbnRpb24uDQogDQo+IE9uIDE4LjAzLjIwMTkgMTI6NDMsIFBhbmthaiBTdXJ5YXdh bnNoaSB3cm90ZToNCj4+IEhpIEtpcmlsbCBUa2hhaSwNCj4+DQo+IA0KPiBQbGVhc2UsIGRv IG5vdCB0b3AgcG9zdGluZzogIGh0dHBzOi8va2VybmVsbmV3Ymllcy5vcmcvbWFpbGluZ2xp c3RndWlkZWxpbmVzDQo+IA0KPiBPa2F5Lg0KPiANCj4gbWFpbGluZ2xpc3RndWlkZWxpbmVz IC0gTGludXggS2VybmVsIE5ld2JpZXMNCj4ga2VybmVsbmV3Ymllcy5vcmcNCj4gU2V0IG9m IEZBUXMgZm9yIGtlcm5lbG5ld2JpZXMgbWFpbGluZyBsaXN0LiBJZiB5b3UgYXJlIG5ldyB0 byB0aGlzIGxpc3QgcGxlYXNlIHJlYWQgdGhpcyBwYWdlIGJlZm9yZSB5b3UgZ28gb24geW91 ciBxdWVzdCBmb3Igc3F1ZWV6aW5nIGFsbCB0aGUga25vd2xlZGdlIGZyb20gZmVsbG93IG1l bWJlcnMuDQoNCkFuZCB0aGlzIHNwZXcgXl5eLg0KDQo+PiBQbGVhc2Ugc2VlIG1tL3Ztc2Nh bi5jIGluIHdoaWNoIGl0IGZpcnN0IGFkZGVkIHRvIGxpc3QgYW5kIHRoYW4gdGhyb3cgdGhl IGVycm9yIDoNCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+PiBrZWVwOg0KPj4goKCgoKCgoKCgoKCgoKCgoCBsaXN0X2FkZCgmcGFnZS0+bHJ1 LCAmcmV0X3BhZ2VzKTsNCj4+IKCgoKCgoKCgoKCgoKCgoKAgVk1fQlVHX09OX1BBR0UoUGFn ZUxSVShwYWdlKSB8fCBQYWdlVW5ldmljdGFibGUocGFnZSksIHBhZ2UpOw0KPj4gLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+Pg0KPj4gQmVmb3Jl IHRocm93aW5nIGVycm9yLCBwYWdlcyBhcmUgYWRkZWQgdG8gbGlzdCwgdGhpcyBpcyB1bmRl ciBpdGVyYXRpb24gb2Ygc2hyaW5rX3BhZ2VfbGlzdCgpLg0KPiANCj4gSSBzYXkgYWJvdXQg YWJvdXQgdGhlIGxpc3QsIHdoaWNoIGlzIHBhc3NlZCB0byBzaHJpbmtfcGFnZV9saXN0KCkg YXMgZmlyc3QgYXJndW1lbnQuDQo+IERpZCB5b3UgbWVhbiBjYW5kaWRhdGUgbGlzdCB3aGlj aCBpcyBwYXNzZWQgdG8gc2hyaW5rX3BhZ2VfbGlzdCgpLg0KPiANCj4gc2hyaW5rX2luYWN0 aXZlX2xpc3QoKQ0KPiB7DQo+IKCgoKCgoKAgaXNvbGF0ZV9scnVfcGFnZXMoJnBhZ2VfbGlz dCk7IC8vIDwtLSB5b3UgY2FuJ3Qgb2J0YWluIHVuZXZpY3RhYmxlIHBhZ2VzIGhlcmUuDQo+ IKCgoKCgoKAgc2hyaW5rX3BhZ2VfbGlzdCgmcGFnZV9saXN0KTsNCj4gfQ0KPiANCj4gYmVs b3cgaXMgdGhlIG92ZXJ2aWV3IG9mIGZsb3cgb2YgY2FsbHMgZm9yIHlvdXIgaW5mb3JtYXRp b24uDQo+IA0KPiBjbWFfYWxsb2MoKSAtPg0KPiBhbGxvY19jb250aWdfcmFuZ2UoKSAtPg0K PiBzdGFydF9pc29sYXRlX3BhZ2VfcmFuZ2UoKSAtPg0KPiBfX2FsbG9jX2NvbnRpZ19taWdy YXRlX3JhbmdlKCkgLT4NCj4gaXNvbGF0ZV9taWdyYXRlcGFnZXNfcmFuZ2UoKSAtPg0KPiBy ZWNsYWltX2NsZWFuX3BhZ2VzX2Zyb21fbGlzdCgpIC0+DQo+IHNocmlua19wYWdlX2xpc3Qo KQ0KDQpIbSwgaXNvbGF0ZV9taWdyYXRlcGFnZXNfcmFuZ2UoKSBjYW4gdGFrZSB1bmV2aWN0 YWJsZSBwYWdlcywNCmJ1dCB0aGVuIHdpdGggeW91ciBwYXRjaCB3ZSBqdXN0IHNraXAgdGhl bSBpbiBzaHJpbmtfcGFnZV9saXN0KCkuDQpXaXRob3V0IHlvdXIgcGF0Y2ggd2UgYnVtcCBp bnRvIGJ1ZyBvbi4NCg0KVGhlc2UgYm90aCBsb29rIGluY29ycmVjdCBmb3IgbWUuIExldCdz IHdhaXQgc29tZW9uZSB3aG8gZmFtaWxpYXINCndpdGggdGhpcyBsb2dpYy4NCiCgDQo+PiBG cm9tOiBLaXJpbGwgVGtoYWkgPGt0a2hhaUB2aXJ0dW96em8uY29tPg0KPj4gU2VudDogMTgg TWFyY2ggMjAxOSAxNTowMzoxNQ0KPj4gVG86IFBhbmthaiBTdXJ5YXdhbnNoaTsgVmxhc3Rp bWlsIEJhYmthOyBNaWNoYWwgSG9ja287IGFuZWVzaC5rdW1hckBsaW51eC5pYm0uY29tDQo+ PiBDYzogbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsgbWluY2hhbkBrZXJuZWwub3Jn OyBsaW51eC1tbUBrdmFjay5vcmc7IGtoYW5kdWFsQGxpbnV4LnZuZXQuaWJtLmNvbTsgaGls bGYuempAYWxpYmFiYS1pbmMuY29tDQo+PiBTdWJqZWN0OiBSZTogW0V4dGVybmFsXSBSZTog dm1zY2FuOiBSZWNsYWltIHVuZXZpY3RhYmxlIHBhZ2VzDQo+PiCgIA0KPj4NCj4+IEhpLCBQ YW5rYWosDQo+Pg0KPj4gT24gMTguMDMuMjAxOSAxMjowOSwgUGFua2FqIFN1cnlhd2Fuc2hp IHdyb3RlOg0KPj4+DQo+Pj4gSGVsbG8NCj4+Pg0KPj4+IHNocmlua19wYWdlX2xpc3QoKSBy ZXR1cm5zICwgbnVtYmVyIG9mIHBhZ2VzIHJlY2xhaW1lZCwgd2hlbiBwYWdlcyBpcyB1bmV2 aWN0YWJsZSBpdCByZXR1cm5zIFZNX0JVR19PTl9QQUdFKFBhZ2VMUlUocGFnZSkgfHwgUGFn ZVVuZXZpY2F0YmxlKHBhZ2UpLHBhZ2UpOw0KPj4NCj4+IHRoZSBnZW5lcmFsIGlkZWEgaXMg c2hyaW5rX3BhZ2VfbGlzdCgpIGNhbid0IGl0ZXJhdGUgUGFnZVVuZXZpY3RhYmxlKCkgcGFn ZXMuDQo+PiBQYWdlVW5ldmljdGFibGUoKSBwYWdlcyBhcmUgbmV2ZXIgYmVpbmcgYWRkZWQg dG8gbGlzdHMsIHdoaWNoIHNocmlua19wYWdlX2xpc3QoKQ0KPj4gdXNlcyBmb3IgaXRlcmF0 aW9uLiBBbHNvLCBhIHBhZ2UgY2FuJ3QgYmUgbWFya2VkIGFzIFBhZ2VVbmV2aWN0YWJsZSgp LCB3aGVuDQo+PiBpdCdzIGF0dGFjaGVkIHRvIGEgc2hyaW5rYWJsZSBsaXN0Lg0KPj4NCj4+ IFNvLCB0aGUgcHJvYmxlbSBzaG91bGQgYmUgc29tZXdoZXJlIG91dHNpZGUgc2hyaW5rX3Bh Z2VfbGlzdCgpLg0KPj4NCj4+IEkgd29uJ3Qgc3VnZ2VzdCB5b3Ugc29tZXRoaW5nIGFib3V0 IENNQSwgc2luY2UgSSBoYXZlbid0IGRpdmVkIGluIHRoYXQgY29kZS4NCj4+DQo+Pj4gV2Ug Y2FuIGFkZCB0aGUgdW5ldmljdGFibGUgcGFnZXMgaW4gcmVjbGFpbSBsaXN0IGluIHNocmlu a19wYWdlX2xpc3QoKSwgcmV0dXJuIHRvdGFsIG51bWJlciBvZiByZWNsYWltIHBhZ2VzIGlu Y2x1ZGluZyB1bmV2aWN0YWJsZSBwYWdlcywgbGV0IHRoZSBjYWxsZXIgaGFuZGxlIHVuZXZp Y3RhYmxlIHBhZ2VzLg0KPj4+DQo+Pj4gSSB0aGluayB0aGUgcHJvYmxlbSBpcyBzaHJpbmtf cGFnZV9saXN0IGlzIGF3a2FyZC4gSWYgcGFnZSBpcyB1bmV2aWN0YWJsZSBpdCBnb3RvIGFj dGl2YXRlX2xvY2tlZC0+a2VlcF9sb2NrZWQtPmtlZXAgbGFibGVzLCBrZWVwIGxhYmxlIGxp c3RfYWRkIHRoZSB1bmV2aWN0YWJsZSBwYWdlcyBhbmQgdGhyb3cgdGhlIFZNX0JVRyBpbnN0 ZWFkIG9mIHBhc3NpbmcgaXQgdG8gY2FsbGVyIHdoaWxlIGl0IHJlbGllcyBvbiBjYWxsZXIg Zm9yIG5vbi1yZWNsYWltZWQtbm9uLXVuZXZpY3RhYmxloKAgIHBhZ2UncyBwdXRiYWNrLg0K Pj4+IEkgdGhpbmsgd2UgY2FuIG1ha2UgaXQgY29uc2lzdGVudCBzbyB0aGF0IHNocmlua19w YWdlX2xpc3QgY291bGQgcmV0dXJuIG5vbi1yZWNsYWltZWQgcGFnZXMgdmlhIHBhZ2VfbGlz dCBhbmQgY2FsbGVyIGNhbiBoYW5kbGUgaXQuIEFzIGFuIGFkdmFuY2UsIGl0IGNvdWxkIHRy eSB0byBtaWdyYXRlIG1sb2NrZWQgcGFnZXMgd2l0aG91dCByZXRyaWFsLg0KPj4+DQo+Pj4N Cj4+PiBCZWxvdyBpcyB0aGUgaXNzdWUgb2YgQ01BX0FMTE9DIG9mIGxhcmdlIHNpemUgYnVm ZmVyIDogKEtlcm5lbCB2ZXJzaW9uIC0gNC4xNC42NSAoT24gQW5kcm9pZCBwaWUgW0FSTV0p KS4NCj4+Pg0KPj4+IFugoCAyNC43MTg3OTJdIHBhZ2UgZHVtcGVkIGJlY2F1c2U6IFZNX0JV R19PTl9QQUdFKFBhZ2VMUlUocGFnZSkgfHwgUGFnZVVuZXZpY3RhYmxlKHBhZ2UpKQ0KPj4+ IFugoCAyNC43MjY5NDldIHBhZ2UtPm1lbV9jZ3JvdXA6YmQwMDhjMDANCj4+PiBboKAgMjQu NzMwNjkzXSAtLS0tLS0tLS0tLS1bIGN1dCBoZXJlIF0tLS0tLS0tLS0tLS0NCj4+PiBboKAg MjQuNzM1MzA0XSBrZXJuZWwgQlVHIGF0IG1tL3Ztc2Nhbi5jOjEzNTAhDQo+Pj4gW6CgIDI0 LjczOTQ3OF0gSW50ZXJuYWwgZXJyb3I6IE9vcHMgLSBCVUc6IDAgWyMxXSBQUkVFTVBUIFNN UCBBUk0NCj4+Pg0KPj4+DQo+Pj4gQmVsb3cgaXMgdGhlIHBhdGNoIHdoaWNoIHNvbHZlZCB0 aGlzIGlzc3VlIDoNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS9tbS92bXNjYW4uYyBiL21tL3Zt c2Nhbi5jDQo+Pj4gaW5kZXggYmU1NmUyZS4uMTJhYzM1MyAxMDA2NDQNCj4+PiAtLS0gYS9t bS92bXNjYW4uYw0KPj4+ICsrKyBiL21tL3Ztc2Nhbi5jDQo+Pj4gQEAgLTk5OCw3ICs5OTgs NyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBzaHJpbmtfcGFnZV9saXN0KHN0cnVjdCBsaXN0 X2hlYWQgKnBhZ2VfbGlzdCwNCj4+PiCgoKCgoKCgoKCgoKCgoKAgc2MtPm5yX3NjYW5uZWQr KzsNCj4+PiCgDQo+Pj4goKCgoKCgoKCgoKCgoKCgIGlmICh1bmxpa2VseSghcGFnZV9ldmlj dGFibGUocGFnZSkpKQ0KPj4+IC2goKCgoKCgoKCgoKCgoKCgoKCgoKCgIGdvdG8gYWN0aXZh dGVfbG9ja2VkOw0KPj4+ICugoKCgoKCgoKCgoKCgoKCgoKCgoKAgZ290byBjdWxsX21sb2Nr ZWQ7DQo+Pj4goA0KPj4+IKCgoKCgoKCgoKCgoKCgoCBpZiAoIXNjLT5tYXlfdW5tYXAgJiYg cGFnZV9tYXBwZWQocGFnZSkpDQo+Pj4goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgZ290byBr ZWVwX2xvY2tlZDsNCj4+PiBAQCAtMTMzMSw3ICsxMzMxLDEyIEBAIHN0YXRpYyB1bnNpZ25l ZCBsb25nIHNocmlua19wYWdlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqcGFnZV9saXN0LA0K Pj4+IKCgoKCgoKCgoKCgoKCgoCB9IGVsc2UNCj4+PiCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oCBsaXN0X2FkZCgmcGFnZS0+bHJ1LCAmZnJlZV9wYWdlcyk7DQo+Pj4goKCgoKCgoKCgoKCg oKCgIGNvbnRpbnVlOw0KPj4+IC0NCj4+PiArY3VsbF9tbG9ja2VkOg0KPj4+ICugoKCgoKCg oKCgoKCgoKAgaWYgKFBhZ2VTd2FwQ2FjaGUocGFnZSkpDQo+Pj4gK6CgoKCgoKCgoKCgoKCg oKCgoKCgoKCgIHRyeV90b19mcmVlX3N3YXAocGFnZSk7DQo+Pj4gK6CgoKCgoKCgoKCgoKCg oCB1bmxvY2tfcGFnZShwYWdlKTsNCj4+PiAroKCgoKCgoKCgoKCgoKCgIGxpc3RfYWRkKCZw YWdlLT5scnUsICZyZXRfcGFnZXMpOw0KPj4+ICugoKCgoKCgoKCgoKCgoKAgY29udGludWU7 DQo+Pj4goGFjdGl2YXRlX2xvY2tlZDoNCj4+PiCgoKCgoKCgoKCgoKCgoKAgLyogTm90IGEg Y2FuZGlkYXRlIGZvciBzd2FwcGluZywgc28gcmVjbGFpbSBzd2FwIHNwYWNlLiAqLw0KPj4+ IKCgoKCgoKCgoKCgoKCgoCBpZiAoUGFnZVN3YXBDYWNoZShwYWdlKSAmJiAobWVtX2Nncm91 cF9zd2FwX2Z1bGwocGFnZSkgfHwNCj4+Pg0KPj4+DQo+Pj4NCj4+Pg0KPj4+IEl0IGZpeGVz IHRoZSBiZWxvdyBpc3N1ZS4NCj4+Pg0KPj4+IDEuIExhcmdlIHNpemUgYnVmZmVyIGFsbG9j YXRpb24gdXNpbmcgY21hX2FsbG9jIHN1Y2Nlc3NmdWwgd2l0aCB1bmV2aWN0YWJsZSBwYWdl cy4NCj4+Pg0KPj4+IGNtYV9hbGxvYyBvZiBjdXJyZW50IGtlcm5lbCB3aWxsIGZhaWwgZHVl IHRvIHVuZXZpY3RhYmxlIHBhZ2UNCj4+Pg0KPj4+IFBsZWFzZSBsZXQgbWUga25vdyBpZiBh bnl0aGluZyBpIGFtIG1pc3NpbmcuDQo+Pj4NCj4+PiBSZWdhcmRzLA0KPj4+IFBhbmthag0K Pj4+IKCgIA0KPj4+IEZyb206IFZsYXN0aW1pbCBCYWJrYSA8dmJhYmthQHN1c2UuY3o+DQo+ Pj4gU2VudDogMTggTWFyY2ggMjAxOSAxNDoxMjo1MA0KPj4+IFRvOiBQYW5rYWogU3VyeWF3 YW5zaGk7IEtpcmlsbCBUa2hhaTsgTWljaGFsIEhvY2tvOyBhbmVlc2gua3VtYXJAbGludXgu aWJtLmNvbQ0KPj4+IENjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBtaW5jaGFu QGtlcm5lbC5vcmc7IGxpbnV4LW1tQGt2YWNrLm9yZzsga2hhbmR1YWxAbGludXgudm5ldC5p Ym0uY29tOyBoaWxsZi56akBhbGliYWJhLWluYy5jb20NCj4+PiBTdWJqZWN0OiBSZTogW0V4 dGVybmFsXSBSZTogdm1zY2FuOiBSZWNsYWltIHVuZXZpY3RhYmxlIHBhZ2VzDQo+Pj4goCAN Cj4+Pg0KPj4+IE9uIDMvMTUvMTkgMTE6MTEgQU0sIFBhbmthaiBTdXJ5YXdhbnNoaSB3cm90 ZToNCj4+Pj4NCj4+Pj4gWyBjYyBBbmVlc2gga3VtYXIsIEFuc2h1bWFuLCBIaWxsZiwgVmxh c3RpbWlsXQ0KPj4+DQo+Pj4gQ2FuIHlvdSBzZW5kIGEgcHJvcGVyIHBhdGNoIHdpdGggY2hh bmdlbG9nIGV4cGxhaW5pbmcgdGhlIGNoYW5nZT8gSQ0KPj4+IGRvbid0IGtub3cgdGhlIGNv bnRleHQgb2YgdGhpcyB0aHJlYWQuDQo+Pj4NCj4+Pj4gRnJvbTogUGFua2FqIFN1cnlhd2Fu c2hpDQo+Pj4+IFNlbnQ6IDE1IE1hcmNoIDIwMTkgMTE6MzU6MDUNCj4+Pj4gVG86IEtpcmls bCBUa2hhaTsgTWljaGFsIEhvY2tvDQo+Pj4+IENjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJu ZWwub3JnOyBtaW5jaGFuQGtlcm5lbC5vcmc7IGxpbnV4LW1tQGt2YWNrLm9yZw0KPj4+PiBT dWJqZWN0OiBSZTogUmU6IFtFeHRlcm5hbF0gUmU6IHZtc2NhbjogUmVjbGFpbSB1bmV2aWN0 YWJsZSBwYWdlcw0KPj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+PiBbIGNjIGxpbnV4LW1tIF0NCj4+ Pj4NCj4+Pj4NCj4+Pj4gRnJvbTogUGFua2FqIFN1cnlhd2Fuc2hpDQo+Pj4+IFNlbnQ6IDE0 IE1hcmNoIDIwMTkgMTk6MTQ6NDANCj4+Pj4gVG86IEtpcmlsbCBUa2hhaTsgTWljaGFsIEhv Y2tvDQo+Pj4+IENjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnOyBtaW5jaGFuQGtl cm5lbC5vcmcNCj4+Pj4gU3ViamVjdDogUmU6IFJlOiBbRXh0ZXJuYWxdIFJlOiB2bXNjYW46 IFJlY2xhaW0gdW5ldmljdGFibGUgcGFnZXMNCj4+Pj4NCj4+Pj4NCj4+Pj4NCj4+Pj4gSGVs bG8gLA0KPj4+Pg0KPj4+PiBQbGVhc2UgaWdub3JlIHRoZSBjdXJseSBicmFjZXMsIHRoZXkg YXJlIGp1c3QgZm9yIGRlYnVnZ2luZy4NCj4+Pj4NCj4+Pj4gQmVsb3cgaXMgdGhlIHVwZGF0 ZWQgcGF0Y2guDQo+Pj4+DQo+Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS9tbS92bXNjYW4uYyBi L21tL3Ztc2Nhbi5jDQo+Pj4+IGluZGV4IGJlNTZlMmUuLjEyYWMzNTMgMTAwNjQ0DQo+Pj4+ IC0tLSBhL21tL3Ztc2Nhbi5jDQo+Pj4+ICsrKyBiL21tL3Ztc2Nhbi5jDQo+Pj4+IEBAIC05 OTgsNyArOTk4LDcgQEAgc3RhdGljIHVuc2lnbmVkIGxvbmcgc2hyaW5rX3BhZ2VfbGlzdChz dHJ1Y3QgbGlzdF9oZWFkICpwYWdlX2xpc3QsDQo+Pj4+IKCgoKCgoKCgoKCgoKCgoKAgc2Mt Pm5yX3NjYW5uZWQrKzsNCj4+Pj4NCj4+Pj4goKCgoKCgoKCgoKCgoKCgoCBpZiAodW5saWtl bHkoIXBhZ2VfZXZpY3RhYmxlKHBhZ2UpKSkNCj4+Pj4gLaCgoKCgoKCgoKCgoKCgoKCgoKCg oKAgZ290byBhY3RpdmF0ZV9sb2NrZWQ7DQo+Pj4+ICugoKCgoKCgoKCgoKCgoKCgoKCgoKAg Z290byBjdWxsX21sb2NrZWQ7DQo+Pj4+DQo+Pj4+IKCgoKCgoKCgoKCgoKCgoKAgaWYgKCFz Yy0+bWF5X3VubWFwICYmIHBhZ2VfbWFwcGVkKHBhZ2UpKQ0KPj4+PiCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKAgZ290byBrZWVwX2xvY2tlZDsNCj4+Pj4gQEAgLTEzMzEsNyArMTMzMSwx MiBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBzaHJpbmtfcGFnZV9saXN0KHN0cnVjdCBsaXN0 X2hlYWQgKnBhZ2VfbGlzdCwNCj4+Pj4goKCgoKCgoKCgoKCgoKCgoCB9IGVsc2UNCj4+Pj4g oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIGxpc3RfYWRkKCZwYWdlLT5scnUsICZmcmVlX3Bh Z2VzKTsNCj4+Pj4goKCgoKCgoKCgoKCgoKCgoCBjb250aW51ZTsNCj4+Pj4gLQ0KPj4+PiAr Y3VsbF9tbG9ja2VkOg0KPj4+PiAroKCgoKCgoKCgoKCgoKCgIGlmIChQYWdlU3dhcENhY2hl KHBhZ2UpKQ0KPj4+PiAroKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgdHJ5X3RvX2ZyZWVfc3dh cChwYWdlKTsNCj4+Pj4gK6CgoKCgoKCgoKCgoKCgoCB1bmxvY2tfcGFnZShwYWdlKTsNCj4+ Pj4gK6CgoKCgoKCgoKCgoKCgoCBsaXN0X2FkZCgmcGFnZS0+bHJ1LCAmcmV0X3BhZ2VzKTsN Cj4+Pj4gK6CgoKCgoKCgoKCgoKCgoCBjb250aW51ZTsNCj4+Pj4goCBhY3RpdmF0ZV9sb2Nr ZWQ6DQo+Pj4+IKCgoKCgoKCgoKCgoKCgoKAgLyogTm90IGEgY2FuZGlkYXRlIGZvciBzd2Fw cGluZywgc28gcmVjbGFpbSBzd2FwIHNwYWNlLiAqLw0KPj4+PiCgoKCgoKCgoKCgoKCgoKCg IGlmIChQYWdlU3dhcENhY2hlKHBhZ2UpICYmIChtZW1fY2dyb3VwX3N3YXBfZnVsbChwYWdl KSB8fA0KPj4+Pg0KPj4+Pg0KPj4+Pg0KPj4+PiBSZWdhcmRzLA0KPj4+PiBQYW5rYWoNCj4+ Pj4NCj4+Pj4NCj4+Pj4gRnJvbTogS2lyaWxsIFRraGFpIDxrdGtoYWlAdmlydHVvenpvLmNv bT4NCj4+Pj4gU2VudDogMTQgTWFyY2ggMjAxOSAxNDo1NTozNA0KPj4+PiBUbzogUGFua2Fq IFN1cnlhd2Fuc2hpOyBNaWNoYWwgSG9ja28NCj4+Pj4gQ2M6IGxpbnV4LWtlcm5lbEB2Z2Vy Lmtlcm5lbC5vcmc7IG1pbmNoYW5Aa2VybmVsLm9yZw0KPj4+PiBTdWJqZWN0OiBSZTogUmU6 IFtFeHRlcm5hbF0gUmU6IHZtc2NhbjogUmVjbGFpbSB1bmV2aWN0YWJsZSBwYWdlcw0KPj4+ Pg0KPj4+Pg0KPj4+PiBPbiAxNC4wMy4yMDE5IDExOjUyLCBQYW5rYWogU3VyeWF3YW5zaGkg d3JvdGU6DQo+Pj4+Pg0KPj4+Pj4gSSBhbSB1c2luZyBrZXJuZWwgdmVyc2lvbiA0LjE0LjY1 IChvbiBBbmRyb2lkIHBpZSBbQVJNXSkuDQo+Pj4+Pg0KPj4+Pj4gTm8gYWRkaXRpb25hbCBw YXRjaGVzIGFwcGxpZWQgb24gdG9wIG9mIHZhbmlsbGEuKENvcmUgTU0pLg0KPj4+Pj4NCj4+ Pj4+IElmoCBJIGNoYW5nZSBpbiB0aGUgdm1zY2FuLmMgYXMgYmVsb3cgcGF0Y2gsIGl0IHdp bGwgd29yay4NCj4+Pj4NCj4+Pj4gU29ycnksIGJ1dCA0LjE0LjY1IGRvZXMgbm90IGhhdmUg YnJhY2VzIGFyb3VuZCB0cnlsb2NrX3BhZ2UoKSwNCj4+Pj4gbGlrZSBpbiB5b3VyIHBhdGNo IGJlbG93Lg0KPj4+Pg0KPj4+PiBTZWWgoKCgoKAgIGh0dHBzOi8vZ2l0Lmtlcm5lbC5vcmcv cHViL3NjbS9saW51eC9rZXJuZWwvZ2l0L3N0YWJsZS9saW51eC5naXQvdHJlZS9tbS92bXNj YW4uYz9oPXY0LjE0LjY1DQo+Pj4+DQo+Pj4+IFsuLi5dDQo+Pj4+DQo+Pj4+Pj4gZGlmZiAt LWdpdCBhL21tL3Ztc2Nhbi5jIGIvbW0vdm1zY2FuLmMNCj4+Pj4+PiBpbmRleCBiZTU2ZTJl Li4yZTUxZWRjIDEwMDY0NA0KPj4+Pj4+IC0tLSBhL21tL3Ztc2Nhbi5jDQo+Pj4+Pj4gKysr IGIvbW0vdm1zY2FuLmMNCj4+Pj4+PiBAQCAtOTkwLDE1ICs5OTAsMTcgQEAgc3RhdGljIHVu c2lnbmVkIGxvbmcgc2hyaW5rX3BhZ2VfbGlzdChzdHJ1Y3QgbGlzdF9oZWFkICpwYWdlX2xp c3QsDQo+Pj4+Pj4goKCgoKCgoKCgoKCgoKCgoKAgcGFnZSA9IGxydV90b19wYWdlKHBhZ2Vf bGlzdCk7DQo+Pj4+Pj4goKCgoKCgoKCgoKCgoKCgoKAgbGlzdF9kZWwoJnBhZ2UtPmxydSk7 DQo+Pj4+Pj4NCj4+Pj4+PiCgoKCgoKCgoKCgoKCgoKCgIGlmICghdHJ5bG9ja19wYWdlKHBh Z2UpKSB7DQo+Pj4+Pj4goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCBnb3RvIGtlZXA7DQo+ Pj4+Pj4goKCgoKCgoKCgoKCgoKCgoCB9DQo+Pj4+DQo+Pj4+ICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogZUluZm9jaGlwcyBCdXNpbmVzcyBE aXNjbGFpbWVyOiBUaGlzIGUtbWFpbCBtZXNzYWdlIGFuZCBhbGwgYXR0YWNobWVudHMgdHJh bnNtaXR0ZWQgd2l0aCBpdCBhcmWgICBpbnRlbmRlZKAgc29sZWx5IGZvciB0aGUgdXNlIG9m IHRoZSBhZGRyZXNzZWUgYW5kIG1heSBjb250YWluIGxlZ2FsbHkgcHJpdmlsZWdlZCBhbmQg Y29uZmlkZW50aWFsIGluZm9ybWF0aW9uLiBJZiB0aGUgcmVhZGVyIG9mIHRoaXMgbWVzc2Fn ZSBpcyBub3QgdGhlIGludGVuZGVkIHJlY2lwaWVudCwgb3IgYW4gZW1wbG95ZWUgb3IgYWdl bnQgcmVzcG9uc2libGUgZm9yIGRlbGl2ZXJpbmcgdGhpcyBtZXNzYWdlIHRvIHRoZSBpbnRl bmRlZCByZWNpcGllbnQsoCAgeW91oCBhcmUgaGVyZWJ5IG5vdGlmaWVkIHRoYXQgYW55IGRp c3NlbWluYXRpb24sIGRpc3RyaWJ1dGlvbiwgY29weWluZywgb3Igb3RoZXIgdXNlIG9mIHRo aXMgbWVzc2FnZSBvciBpdHMgYXR0YWNobWVudHMgaXMgc3RyaWN0bHkgcHJvaGliaXRlZC4g SWYgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBtZXNzYWdlIGluIGVycm9yLCBwbGVhc2Ugbm90 aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYnkgcmVwbHlpbmcgdG8gdGhpcyBtZXNzYWdl IGFuZKAgIHBsZWFzZaAgZGVsZXRlIGl0IGZyb20geW91ciBjb21wdXRlci4gQW55IHZpZXdz IGV4cHJlc3NlZCBpbiB0aGlzIG1lc3NhZ2UgYXJlIHRob3NlIG9mIHRoZSBpbmRpdmlkdWFs IHNlbmRlciB1bmxlc3Mgb3RoZXJ3aXNlIHN0YXRlZC4gQ29tcGFueSBoYXMgdGFrZW4gZW5v dWdoIHByZWNhdXRpb25zIHRvIHByZXZlbnQgdGhlIHNwcmVhZCBvZiB2aXJ1c2VzLiBIb3dl dmVyIHRoZSBjb21wYW55IGFjY2VwdHMgbm8gbGlhYmlsaXR5IGZvciBhbnkgZGFtYWdloCAg Y2F1c2VkoCBieSBhbnkgdmlydXMgdHJhbnNtaXR0ZWQgYnkgdGhpcyBlbWFpbC4gKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KPj4+Pg0KPj4+ DQo+Pj4goKCgoCANCj4+Pg0KPj4goKCgoCANCj4+DQo+ICAgICANCj4gDQo=