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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 57BD0FD376C for ; Wed, 25 Feb 2026 16:01:22 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5BD7410E77D; Wed, 25 Feb 2026 16:01:21 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=ursulin.net header.i=@ursulin.net header.b="kwekfssq"; dkim-atps=neutral Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by gabe.freedesktop.org (Postfix) with ESMTPS id 39E5010E1C6 for ; Wed, 25 Feb 2026 16:01:20 +0000 (UTC) Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-4806cc07ce7so66369005e9.1 for ; Wed, 25 Feb 2026 08:01:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ursulin.net; s=google; t=1772035279; x=1772640079; darn=lists.freedesktop.org; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:from:to :cc:subject:date:message-id:reply-to; bh=QYTH6TRxaDTqbQ4lt+lqgj9OS3vmhH7j+1w2VyEOxF0=; b=kwekfssqe8qLothdyhXsNlYtif79fUR7WK5/Z84BTUmlGODLzfZwktmOm/RwmGx1ky Gp+fk7aTx3mU8kEaG1pmSWs2zs34dX3R09AmiIc89znVFxpGimLR/8GBgFqEx47hjRXQ GvNBCGN6+V9oHCYaIn8SdNyQBxejSHkMo3yrYJJ9W8R6HS1phl0WkfZdpMQ1nn+oUEHe 4/p++KNGBzv70vBpcyr9m25TPmr7wm3SfWGOJUPqYKMBF+JchClnfqAL1kByM3ndGfR7 BkK3btjaY0K0+LQjP9LiY4clRRT5bmLhLFNPqM68XFdG7zWT7xWItA0hkkcjkGzFfYiR DZ7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772035279; x=1772640079; h=content-transfer-encoding:in-reply-to:content-language:references :cc:to:from:subject:user-agent:mime-version:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=QYTH6TRxaDTqbQ4lt+lqgj9OS3vmhH7j+1w2VyEOxF0=; b=NuK/O04g7XvBSaJN+Fl7gwtuCX+/wp6SWRmapuqNFtGfFGCK0x1rKgyPLuM7HFXnkz ZKULPAn8RYG06IVNwN3xkIhD5mUQsh2zrU/5z6GXfZN9kS8D0iBtE/dsktN8ggl1UR3o nLac7XZ1MdB8Lp45FZm2Q+ALIiolJGcatrM8tnCIARPcSdOYWUaaPz0XBZnq4U6g/KbW fgIGftvqNKhD9Gb47Zi0U+e1lBbQlIvC3l2dN0x/+Ui7iN3phlX/HPNdb/SKOQsEFFDt PLiuTlaGPDrT8Nu4479v28UCyJz+KxF743Q4MEGsLrhh/PYv6EfObynaolbeB9iO+mzj xhnw== X-Forwarded-Encrypted: i=1; AJvYcCXxorJ2Mt6HuigH4Mtg1iSAc146CdhEL3I74wF4SwXnYMWRumGq34IJ/M3eaYXfXo4K1kLf2ZXIM3s=@lists.freedesktop.org X-Gm-Message-State: AOJu0YxDMg7cPzzUfy/KXw9iizyUlugM9JCZOGSxJrGdG4jTZjKnpshE zAOQGYerWJuVmR0vqIV4WvUhz0xp4eFAYQZQHEMKr7RB4PyLxvZGw5abK0VsDRJafJQ= X-Gm-Gg: ATEYQzzlunKknFtxZT1uOxA+usO7AH4KFhAf4O4JhRCoa7VqoCUTuh6jLCEesOMRf4l piUjNGKnN7AnacwweyxWaUtlG51sbgbbTMcj2CyW+chNTZsw4lxUDeWhULwzv5wUduQvvUWOPXR HJ7/d7ulsV14rE6BzGp+CBTvtVCkXdGe3dYWKYMpBEYGD2ETYZA8r7BTU/i37MazU1PUiEvBy9M ZbS78RlvvvvJLaj/VzUuFkpEpGg3WlWCxouQbQFw6Q90OkFFnnsXfnxmq21o7G8x5XaC6kQgFUe 5JxZDcxrwha+9tR+22tQbGxGkggEA3ti3JE9A2k23131xaqvI7yvpMegSx3PRHpon7EBO8kbT5z deS3M4hzF2BdxJEqwYwDJ7ZeyhIqmJ9Zt5UD2iKV7YkvgjJKJ/k0KxyPxSLF9srcL2fLn9xuFL8 RlKTOrjJl1jVExg6WBfJl8/u7RzQbMvm2lp/j1PWU19Aag X-Received: by 2002:a05:600c:6291:b0:477:8985:4036 with SMTP id 5b1f17b1804b1-483a95b5a7dmr281901675e9.1.1772035277667; Wed, 25 Feb 2026 08:01:17 -0800 (PST) Received: from [192.168.0.101] ([90.240.106.137]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-483bd75df9fsm81675695e9.13.2026.02.25.08.01.15 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 25 Feb 2026 08:01:16 -0800 (PST) Message-ID: Date: Wed, 25 Feb 2026 16:01:15 +0000 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 4/6] drm/ttm: Split cgroup charge and resource allocation From: Tvrtko Ursulin To: Natalie Vock , Maarten Lankhorst , Maxime Ripard , Tejun Heo , Johannes Weiner , =?UTF-8?Q?Michal_Koutn=C3=BD?= , Christian Koenig , Huang Rui , Matthew Auld , Matthew Brost , Maarten Lankhorst , Thomas Zimmermann , David Airlie , Simona Vetter Cc: cgroups@vger.kernel.org, dri-devel@lists.freedesktop.org References: <20260225-dmemcg-aggressive-protect-v4-0-de847ab35184@gmx.de> <20260225-dmemcg-aggressive-protect-v4-4-de847ab35184@gmx.de> <9f726505-cce3-430a-8d16-fd9695dc4577@ursulin.net> Content-Language: en-GB In-Reply-To: <9f726505-cce3-430a-8d16-fd9695dc4577@ursulin.net> Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Ck9uIDI1LzAyLzIwMjYgMTU6MzMsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+IAo+IE9uIDI1LzAy LzIwMjYgMTI6MTAsIE5hdGFsaWUgVm9jayB3cm90ZToKPj4gQ291cGxpbmcgcmVzb3VyY2UgYWxs b2NhdGlvbiBhbmQgY2dyb3VwIGNoYXJnaW5nIGlzIHJhY3kgd2hlbiBjaGFyZ2luZwo+PiBzdWNj ZWVkcywgYnV0IHN1YnNlcXVlbnQgcmVzb3VyY2UgYWxsb2NhdGlvbiBmYWlscy4gQ2VydGFpbiBl dmljdGlvbgo+PiBkZWNpc2lvbnMgYXJlIG1hZGUgb24gdGhlIGJhc2lzIG9mIHdoZXRoZXIgdGhl IGFsbG9jYXRpbmcgY2dyb3VwIGlzCj4+IHByb3RlY3RlZCwgaS5lLiB3aXRoaW4gaXRzIG1pbi9s b3cgbGltaXRzLCBidXQgd2l0aCB0aGUgY2hhcmdlIGJlaW5nCj4+IHRpZWQgdG8gcmVzb3VyY2Ug YWxsb2NhdGlvbiAoYW5kIHVuY2hhcmdlZCB3aGVuIHRoZSByZXNvdXJjZSBhbGxvY2F0aW9uCj4+ IGZhaWxzKSwgdGhpcyBjaGVjayBpcyBkb25lIGF0IGEgcG9pbiB3aGVyZSB0aGUgYWxsb2NhdGlv biBpcyBub3QgYWN0dWFsbHkKPiAKPiBzL3BvaW4vcG9pbnQvCj4gCj4+IGNoYXJnZWQgdG8gdGhl IGNncm91cC4KPj4KPj4gVGhpcyBpcyBzdWJ0bHkgd3JvbmcgaWYgdGhlIGFsbG9jYXRpb24gd2Vy ZSB0byBjYXVzZSB0aGUgY2dyb3VwIHRvIGV4Y2VlZAo+PiB0aGUgbWluL2xvdyBwcm90ZWN0aW9u LCBidXQgaXQncyBldmVuIG1vcmUgd3JvbmcgaWYgdGhlIHNhbWUgY2dyb3VwIHRyaWVzCj4+IGFs bG9jYXRpbmcgbXVsdGlwbGUgYnVmZmVycyBjb25jdXJyZW50bHk6IEluIHRoaXMgY2FzZSwgdGhl IG1pbi9sb3cKPj4gcHJvdGVjdGlvbiBtYXkgcGFzcyBmb3IgYWxsIGFsbG9jYXRpb24gYXR0ZW1w dHMgd2hlbiB0aGUgcmVhbCBtaW4vbG93Cj4+IHByb3RlY3Rpb24gY292ZXJzIG9ubHkgc29tZSwg b3IgcG90ZW50aWFsbHkgbm9uZSBvZiB0aGUgYWxsb2NhdGVkCj4+IGJ1ZmZlcnMuCj4gCj4gSW50 ZXJlc3RpbmchIERvIEkgdW5kZXJzdGFuZCBjb3JyZWN0bHkgdGhpcyB3b3VsZCBiZSBhIHNjZW5h cmlvIHdpdGggCj4gbXVsdGktdGhyZWFkZWQgYnVmZmVyIGFsbG9jYXRpb24gb3IgdGhlcmUgaXMg YW5vdGhlciBwYXRoIHRvIGl0Pwo+IAo+IEluIGFueSBjYXNlIG1vdmluZyB0aGUgY2hhcmdlIHRv IGJlZm9yZSBhbGxvY2F0aW9uIG1ha2VzIHNlbnNlIHRvIG1lLiAKPiBXaXRoIGEgY2F2ZWF0IHRo YXQgSSB3YXNuJ3QgaW52b2x2ZWQgaW4gdGhlIGRtZW0gY2dyb3VwIGNvbnRyb2xsZXIgCj4gZGVz aWduIHNvIG1heSBiZSBtaXNzaW5nIHNvbWV0aGluZy4KPiAKPj4gSW5zdGVhZCwgY2hhcmdlIHRo ZSBhbGxvY2F0aW9uIHRvIHRoZSBjZ3JvdXAgb25jZSBhbmQga2VlcCB0aGUgY2hhcmdlCj4+IGZv ciBhcyBsb25nIGFzIHdlIHRyeSB0byBhbGxvY2F0ZSBhIHR0bV9yZXNvdXJjZSwgYW5kIG9ubHkg dW5kbyB0aGUgCj4+IGNoYXJnZQo+PiBpZiBhbGxvY2F0aW5nIHRoZSByZXNvdXJjZSBpcyB1bHRp bWF0ZWx5IHVuc3VjY2Vzc2Z1bCBhbmQgd2UgbW92ZSBvbiB0bwo+PiBhIGRpZmZlcmVudCB0dG1f cGxhY2UuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE5hdGFsaWUgVm9jayA8bmF0YWxpZS52b2NrQGdt eC5kZT4KPj4gLS0tCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmPCoMKgwqDCoMKg wqAgfCAyOCArKysrKysrKysrKysrKystLS0tLS0tCj4+IMKgIGRyaXZlcnMvZ3B1L2RybS90dG0v dHRtX3Jlc291cmNlLmMgfCA0OCArKysrKysrKysrKysrKysrKysrKysrKysrKyAKPj4gKy0tLS0t LS0tLS0tCj4+IMKgIGluY2x1ZGUvZHJtL3R0bS90dG1fcmVzb3VyY2UuaMKgwqDCoMKgIHzCoCA2 ICsrKystCj4+IMKgIDMgZmlsZXMgY2hhbmdlZCwgNjAgaW5zZXJ0aW9ucygrKSwgMjIgZGVsZXRp b25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jIGIv ZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwo+PiBpbmRleCA0OGRiYWFhNDY4MjRjLi5hODkx NGQyMGIwYzMyIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCj4+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKPj4gQEAgLTQ5MCw2ICs0OTAsOCBA QCBpbnQgdHRtX2JvX2V2aWN0X2ZpcnN0KHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCAKPj4gc3Ry dWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4KPj4gwqAgfQo+PiDCoCBzdHJ1Y3QgdHRtX2Jv X2FsbG9jX3N0YXRlIHsKPj4gK8KgwqDCoCAvKiogQGNoYXJnZV9wb29sOiBUaGUgbWVtb3J5IHBv b2wgdGhlIHJlc291cmNlIGlzIGNoYXJnZWQgdG8gKi8KPj4gK8KgwqDCoCBzdHJ1Y3QgZG1lbV9j Z3JvdXBfcG9vbF9zdGF0ZSAqY2hhcmdlX3Bvb2w7Cj4+IMKgwqDCoMKgwqAgLyoqIEBsaW1pdF9w b29sOiBXaGljaCBwb29sIGxpbWl0IHdlIHNob3VsZCB0ZXN0IGFnYWluc3QgKi8KPj4gwqDCoMKg wqDCoCBzdHJ1Y3QgZG1lbV9jZ3JvdXBfcG9vbF9zdGF0ZSAqbGltaXRfcG9vbDsKPj4gwqAgfTsK Pj4gQEAgLTU0Niw3ICs1NDgsNyBAQCBzdGF0aWMgczY0IHR0bV9ib19ldmljdF9jYihzdHJ1Y3Qg dHRtX2xydV93YWxrIAo+PiAqd2Fsaywgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICoKPj4gwqDC oMKgwqDCoCBldmljdF93YWxrLT5ldmljdGVkKys7Cj4+IMKgwqDCoMKgwqAgaWYgKGV2aWN0X3dh bGstPnJlcykKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGxyZXQgPSB0dG1fcmVzb3VyY2VfYWxsb2Mo ZXZpY3Rfd2Fsay0+ZXZpY3RvciwgZXZpY3Rfd2Fsay0gCj4+ID5wbGFjZSwKPj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBldmljdF93YWxrLT5yZXMsIE5VTEwp Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGV2aWN0X3dh bGstPnJlcywgZXZpY3Rfd2Fsay0+YWxsb2Nfc3RhdGUtIAo+PiA+Y2hhcmdlX3Bvb2wpOwo+PiDC oMKgwqDCoMKgIGlmIChscmV0ID09IDApCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gMTsK Pj4gwqAgb3V0Ogo+PiBAQCAtNzI0LDEwICs3MjYsOCBAQCBzdGF0aWMgaW50IHR0bV9ib19hbGxv Y19hdF9wbGFjZShzdHJ1Y3QgCj4+IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gwqDCoMKgwqDC oCBpbnQgcmV0Owo+PiDCoMKgwqDCoMKgIG1heV9ldmljdCA9IChmb3JjZV9zcGFjZSAmJiBwbGFj ZS0+bWVtX3R5cGUgIT0gVFRNX1BMX1NZU1RFTSk7Cj4+IC0KPj4gLcKgwqDCoCByZXQgPSB0dG1f cmVzb3VyY2VfYWxsb2MoYm8sIHBsYWNlLCByZXMsCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBmb3JjZV9zcGFjZSA/ICZhbGxvY19zdGF0ZS0+bGltaXRfcG9vbCA6IE5VTEwp Owo+PiAtCj4+ICvCoMKgwqAgcmV0ID0gdHRtX3Jlc291cmNlX3RyeV9jaGFyZ2UoYm8sIHBsYWNl LCAmYWxsb2Nfc3RhdGUtPmNoYXJnZV9wb29sLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGZvcmNlX3NwYWNlID8gJmFsbG9jX3N0YXRlLT5saW1pdF9wb29s IDogTlVMTCk7Cj4+IMKgwqDCoMKgwqAgaWYgKHJldCkgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg LyoKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiAtRUFHQUlOIG1lYW5zIHRoZSBjaGFyZ2UgZmFp bGVkLCB3aGljaCB3ZSB0cmVhdCBsaWtlIGFuCj4+IEBAIC03MzcsMTQgKzczNywyMyBAQCBzdGF0 aWMgaW50IHR0bV9ib19hbGxvY19hdF9wbGFjZShzdHJ1Y3QgCj4+IHR0bV9idWZmZXJfb2JqZWN0 ICpibywKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBhdHRlbXB0Lgo+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoCAqLwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJldCA9PSAtRUFHQUlOKQo+PiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gbWF5X2V2aWN0ID8gLUVCVVNZIDogLUVOT1NQ QzsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gbWF5X2V2aWN0ID8gLUVCVVNZIDog LUVOT1NQQzsKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7Cj4+ICvCoMKgwqAgfQo+PiAt wqDCoMKgwqDCoMKgwqAgaWYgKHJldCA9PSAtRU5PU1BDICYmIG1heV9ldmljdCkKPj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIC1FQlVTWTsKPj4gK8KgwqDCoCByZXQgPSB0dG1fcmVz b3VyY2VfYWxsb2MoYm8sIHBsYWNlLCByZXMsIGFsbG9jX3N0YXRlLT5jaGFyZ2VfcG9vbCk7Cj4g Cj4gTm8gbmVlZCBmb3IgYSBibGFuayBsaW5lIGhlcmUuCj4gCj4+ICvCoMKgwqAgaWYgKHJldCkg ewo+PiArwqDCoMKgwqDCoMKgwqAgaWYgKHJldCA9PSAtRU5PU1BDICYmIG1heV9ldmljdCkKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0gLUVCVVNZOwo+IAo+IFdoeSBkaWQgeW91IHJl bW92ZSBFQUdBSU4gaGFuZGxpbmcgZnJvbSBhZnRlciB0dG1fcmVzb3VyY2VfYWxsb2MoKT8KCkkg ZmlndXJlZCB0aGlzIHBhcnQgb3V0LiBJIGd1ZXNzIEVBR0FJTiBjYW4gb25seSBjb21lIG91dCAK ZG1lbV9jZ3JvdXBfdHJ5X2NoYXJnZSgpIHdoaWNoIGlzIG5vIGxvbmdlciBoZXJlLiBNYWtlcyBz ZW5zZS4KClJldHVybiBjb2RlIGhhbmRsaW5nIGNoYW5nZXMgbG9vayBmaW5lIHRvIG1lIGluIHRo aXMgY2FzZS4gSnVzdCB0aGUgCnF1ZXN0aW9uIG9mIHVuY2hhcmdpbmcgcmVtYWlucy4KClJlZ2Fy ZHMsCgpUdnJ0a28KCj4gCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+PiDCoMKg wqDCoMKgIH0KPj4gK8KgwqDCoCAvKgo+PiArwqDCoMKgwqAgKiBPd25lcnNoaXAgb2YgY2hhcmdl X3Bvb2wgaGFzIGJlZW4gdHJhbnNmZXJyZWQgdG8gdGhlIFRUTSAKPj4gcmVzb3VyY2UsCj4+ICvC oMKgwqDCoCAqIGRvbid0IG1ha2UgdGhlIGNhbGxlciB0aGluayB3ZSBzdGlsbCBob2xkIGEgcmVm ZXJlbmNlIHRvIGl0Lgo+PiArwqDCoMKgwqAgKi8KPj4gK8KgwqDCoCBhbGxvY19zdGF0ZS0+Y2hh cmdlX3Bvb2wgPSBOVUxMOwo+PiDCoMKgwqDCoMKgIHJldHVybiAwOwo+PiDCoCB9Cj4+IEBAIC03 OTksNiArODA4LDcgQEAgc3RhdGljIGludCB0dG1fYm9fYWxsb2NfcmVzb3VyY2Uoc3RydWN0IAo+ PiB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgcmVzLCAmYWxsb2Nfc3RhdGUpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJldCA9 PSAtRU5PU1BDKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRtZW1fY2dyb3VwX3Bvb2xf c3RhdGVfcHV0KGFsbG9jX3N0YXRlLmNoYXJnZV9wb29sKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZG1lbV9jZ3JvdXBfcG9vbF9zdGF0ZV9wdXQoYWxsb2Nfc3RhdGUubGltaXRfcG9v bCk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgfSBlbHNlIGlmIChyZXQgPT0gLUVCVVNZKSB7Cj4+IEBAIC04MDgsMTEgKzgxOCwx MyBAQCBzdGF0aWMgaW50IHR0bV9ib19hbGxvY19yZXNvdXJjZShzdHJ1Y3QgCj4+IHR0bV9idWZm ZXJfb2JqZWN0ICpibywKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZG1lbV9jZ3JvdXBf cG9vbF9zdGF0ZV9wdXQoYWxsb2Nfc3RhdGUubGltaXRfcG9vbCk7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGlmIChyZXQpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBkbWVtX2Nncm91cF9wb29sX3N0YXRlX3B1dChhbGxvY19zdGF0ZS5jaGFyZ2VfcG9vbCk7Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJldCAhPSAtRUJVU1kpCj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlOwo+PiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKHJl dCkgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkbWVtX2Nncm91cF9wb29sX3N0YXRlX3B1 dChhbGxvY19zdGF0ZS5jaGFyZ2VfcG9vbCk7Cj4gCj4gSXMgdW5jaGFyZ2UgaW4gdGhlIGZhaWx1 cmUgY2FzZSBoaWRkZW4gaW4gZG1lbV9jZ3JvdXBfcG9vbF9zdGF0ZV9wdXQoKSAKPiBzb21laG93 Pwo+IAo+IFJlZ2FyZHMsCj4gCj4gVHZydGtvCj4gCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGRtZW1fY2dyb3VwX3Bvb2xfc3RhdGVfcHV0KGFsbG9jX3N0YXRlLmxpbWl0X3Bvb2wpOwo+ PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgfQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcmVzb3VyY2Uu YyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vIAo+PiB0dG1fcmVzb3VyY2UuYwo+PiBpbmRleCAxOTJm Y2EyNGYzN2U0Li5hOGE4MzZmNmUzNzZhIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9yZXNvdXJjZS5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Jlc291 cmNlLmMKPj4gQEAgLTM3MywzMCArMzczLDUyIEBAIHZvaWQgdHRtX3Jlc291cmNlX2Zpbmkoc3Ry dWN0IAo+PiB0dG1fcmVzb3VyY2VfbWFuYWdlciAqbWFuLAo+PiDCoCB9Cj4+IMKgIEVYUE9SVF9T WU1CT0wodHRtX3Jlc291cmNlX2ZpbmkpOwo+PiArLyoqCj4+ICsgKiB0dG1fcmVzb3VyY2VfdHJ5 X2NoYXJnZSAtIGNoYXJnZSBhIHJlc291cmNlIG1hbmFnZXIncyBjZ3JvdXAgcG9vbAo+PiArICog QGJvOiBidWZmZXIgZm9yIHdoaWNoIGFuIGFsbG9jYXRpb24gc2hvdWxkIGJlIGNoYXJnZWQKPj4g KyAqIEBwbGFjZTogd2hlcmUgdGhlIGFsbG9jYXRpb24gaXMgYXR0ZW1wdGVkIHRvIGJlIHBsYWNl ZAo+PiArICogQHJldF9wb29sOiBvbiBjaGFyZ2Ugc3VjY2VzcywgdGhlIHBvb2wgdGhhdCB3YXMg Y2hhcmdlZAo+PiArICogQHJldF9saW1pdF9wb29sOiBvbiBjaGFyZ2UgZmFpbHVyZSwgdGhlIHBv b2wgcmVzcG9uc2libGUgZm9yIHRoZSAKPj4gZmFpbHVyZQo+PiArICoKPj4gKyAqIFNob3VsZCBi ZSB1c2VkIHRvIGNoYXJnZSBjZ3JvdXBzIGJlZm9yZSBhdHRlbXB0aW5nIHJlc291cmNlIAo+PiBh bGxvY2F0aW9uLgo+PiArICogV2hlbiBjaGFyZ2luZyBzdWNjZWVkcywgdGhlIHZhbHVlIG9mIHJl dF9wb29sIHNob3VsZCBiZSBwYXNzZWQgdG8KPj4gKyAqIHR0bV9yZXNvdXJjZV9hbGxvYy4KPj4g KyAqCj4+ICsgKiBSZXR1cm5zOiAwIG9uIGNoYXJnZSBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBv biBmYWlsdXJlLgo+PiArICovCj4+ICtpbnQgdHRtX3Jlc291cmNlX3RyeV9jaGFyZ2Uoc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBjb25zdCBzdHJ1Y3QgdHRtX3BsYWNlICpwbGFjZSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBzdHJ1Y3QgZG1lbV9jZ3JvdXBfcG9vbF9zdGF0ZSAqKnJldF9wb29sLAo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkbWVtX2Nncm91cF9wb29sX3N0 YXRlICoqcmV0X2xpbWl0X3Bvb2wpCj4+ICt7Cj4+ICvCoMKgwqAgc3RydWN0IHR0bV9yZXNvdXJj ZV9tYW5hZ2VyICptYW4gPQo+PiArwqDCoMKgwqDCoMKgwqAgdHRtX21hbmFnZXJfdHlwZShiby0+ YmRldiwgcGxhY2UtPm1lbV90eXBlKTsKPj4gKwo+PiArwqDCoMKgIGlmICghbWFuLT5jZykgewo+ PiArwqDCoMKgwqDCoMKgwqAgKnJldF9wb29sID0gTlVMTDsKPj4gK8KgwqDCoMKgwqDCoMKgIGlm IChyZXRfbGltaXRfcG9vbCkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKnJldF9saW1pdF9w b29sID0gTlVMTDsKPj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAwOwo+PiArwqDCoMKgIH0KPj4g Kwo+PiArwqDCoMKgIHJldHVybiBkbWVtX2Nncm91cF90cnlfY2hhcmdlKG1hbi0+Y2csIGJvLT5i YXNlLnNpemUsIHJldF9wb29sLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHJldF9saW1pdF9wb29sKTsKPj4gK30KPj4gKwo+PiDCoCBpbnQgdHRtX3Jlc291 cmNlX2FsbG9jKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCB0dG1fcGxhY2UgKnBsYWNlLAo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgdHRtX3Jlc291cmNlICoqcmVzX3B0 ciwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRtZW1fY2dyb3VwX3Bv b2xfc3RhdGUgKipyZXRfbGltaXRfcG9vbCkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgc3RydWN0IGRtZW1fY2dyb3VwX3Bvb2xfc3RhdGUgKmNoYXJnZV9wb29sKQo+PiDCoCB7Cj4+ IMKgwqDCoMKgwqAgc3RydWN0IHR0bV9yZXNvdXJjZV9tYW5hZ2VyICptYW4gPQo+PiDCoMKgwqDC oMKgwqDCoMKgwqAgdHRtX21hbmFnZXJfdHlwZShiby0+YmRldiwgcGxhY2UtPm1lbV90eXBlKTsK Pj4gLcKgwqDCoCBzdHJ1Y3QgZG1lbV9jZ3JvdXBfcG9vbF9zdGF0ZSAqcG9vbCA9IE5VTEw7Cj4+ IMKgwqDCoMKgwqAgaW50IHJldDsKPj4gLcKgwqDCoCBpZiAobWFuLT5jZykgewo+PiAtwqDCoMKg wqDCoMKgwqAgcmV0ID0gZG1lbV9jZ3JvdXBfdHJ5X2NoYXJnZShtYW4tPmNnLCBiby0+YmFzZS5z aXplLCAmcG9vbCwgCj4+IHJldF9saW1pdF9wb29sKTsKPj4gLcKgwqDCoMKgwqDCoMKgIGlmIChy ZXQpCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7Cj4+IC3CoMKgwqAgfQo+ PiAtCj4+IMKgwqDCoMKgwqAgcmV0ID0gbWFuLT5mdW5jLT5hbGxvYyhtYW4sIGJvLCBwbGFjZSwg cmVzX3B0cik7Cj4+IC3CoMKgwqAgaWYgKHJldCkgewo+PiAtwqDCoMKgwqDCoMKgwqAgaWYgKHBv b2wpCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRtZW1fY2dyb3VwX3VuY2hhcmdlKHBvb2ws IGJvLT5iYXNlLnNpemUpOwo+PiArwqDCoMKgIGlmIChyZXQpCj4+IMKgwqDCoMKgwqDCoMKgwqDC oCByZXR1cm4gcmV0Owo+PiAtwqDCoMKgIH0KPj4gLcKgwqDCoCAoKnJlc19wdHIpLT5jc3MgPSBw b29sOwo+PiArwqDCoMKgICgqcmVzX3B0ciktPmNzcyA9IGNoYXJnZV9wb29sOwo+PiDCoMKgwqDC oMKgIHNwaW5fbG9jaygmYm8tPmJkZXYtPmxydV9sb2NrKTsKPj4gwqDCoMKgwqDCoCB0dG1fcmVz b3VyY2VfYWRkX2J1bGtfbW92ZSgqcmVzX3B0ciwgYm8pOwo+PiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oIGIvaW5jbHVkZS9kcm0vdHRtLyAKPj4gdHRtX3Jlc291 cmNlLmgKPj4gaW5kZXggMzNlODBmMzBiOGI4Mi4uNTQ5YjViNzk2ODg0ZCAxMDA2NDQKPj4gLS0t IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9yZXNvdXJjZS5oCj4+ICsrKyBiL2luY2x1ZGUvZHJtL3R0 bS90dG1fcmVzb3VyY2UuaAo+PiBAQCAtNDU2LDEwICs0NTYsMTQgQEAgdm9pZCB0dG1fcmVzb3Vy Y2VfaW5pdChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgCj4+ICpibywKPj4gwqAgdm9pZCB0dG1f cmVzb3VyY2VfZmluaShzdHJ1Y3QgdHRtX3Jlc291cmNlX21hbmFnZXIgKm1hbiwKPj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHR0bV9yZXNvdXJjZSAqcmVzKTsKPj4g K2ludCB0dG1fcmVzb3VyY2VfdHJ5X2NoYXJnZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJv LAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IHN0cnVjdCB0dG1fcGxh Y2UgKnBsYWNlLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkbWVt X2Nncm91cF9wb29sX3N0YXRlICoqcmV0X3Bvb2wsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgc3RydWN0IGRtZW1fY2dyb3VwX3Bvb2xfc3RhdGUgKipyZXRfbGltaXRfcG9vbCk7 Cj4+IMKgIGludCB0dG1fcmVzb3VyY2VfYWxsb2Moc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3Qgc3RydWN0IHR0bV9w bGFjZSAqcGxhY2UsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB0 dG1fcmVzb3VyY2UgKipyZXMsCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVj dCBkbWVtX2Nncm91cF9wb29sX3N0YXRlICoqcmV0X2xpbWl0X3Bvb2wpOwo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZG1lbV9jZ3JvdXBfcG9vbF9zdGF0ZSAqY2hhcmdl X3Bvb2wpOwo+PiDCoCB2b2lkIHR0bV9yZXNvdXJjZV9mcmVlKHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8sIHN0cnVjdCAKPj4gdHRtX3Jlc291cmNlICoqcmVzKTsKPj4gwqAgYm9vbCB0dG1f cmVzb3VyY2VfaW50ZXJzZWN0cyhzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKPj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB0dG1fcmVzb3VyY2UgKnJlcywKPj4K PiAKCg==