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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 53EC9D68BCF for ; Fri, 15 Nov 2024 19:43:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C8F526B0088; Fri, 15 Nov 2024 14:43:33 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C3F706B0089; Fri, 15 Nov 2024 14:43:33 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ADFC86B008A; Fri, 15 Nov 2024 14:43:33 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 92D256B0088 for ; Fri, 15 Nov 2024 14:43:33 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 4D031A1303 for ; Fri, 15 Nov 2024 19:43:33 +0000 (UTC) X-FDA: 82789353444.28.91B3DC4 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by imf14.hostedemail.com (Postfix) with ESMTP id 5FB02100007 for ; Fri, 15 Nov 2024 19:42:40 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=NTmdxbPn; spf=pass (imf14.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.46 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731699721; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=8q/u2kGW54Efg3y1/zjzLgFIuit0NCZFXIw/u2X2600=; b=4dgnYag1SDp8fXvNVr9ZkwJBJUFwuCLk+gRlj+sGAPbrPqaEGcyY88bDO/3YZS3/865lBU erCPR27oIBaKsJVRwp2f0MQITGZKCL4xUXaXuA/eLI7a+DmVtSUW+WOxqGO9jhNdHAJIcV Uq9tFISiwocsBsWzASksEuSqffNslyk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731699721; a=rsa-sha256; cv=none; b=z4fxEpJyTN1yM621lBIg+5tlojeDEQ++xtKekmtymjlISYyPns7usmEnzOxl2Ac9v4FvnU ytjg77/9BOiWHrV6OCiNytbW01+fqbdg7x0arDwFmN+2LDEaKk62sr6mttF5PnK6JC6bj9 Hxmf1+7ezwh469c8baC/zpM9srKW+GY= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=NTmdxbPn; spf=pass (imf14.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.46 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-a9a6acac4c3so371692666b.0 for ; Fri, 15 Nov 2024 11:43:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1731699809; x=1732304609; darn=kvack.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=8q/u2kGW54Efg3y1/zjzLgFIuit0NCZFXIw/u2X2600=; b=NTmdxbPnRb054PU4xpqJcyekIGo4k3wWD29lltGS64b3Kp72yI2UQOPsPK3I7enG1C jNvwYeCylePCa5nqyPMWPBFe8ntYs+i1MwPJVrEUBpsyuQTR/2uB7PBXfMK0ZYU1jYLh Dn1oFdv3Pxfsur6f8m3T7gL6BkzJ8KlMIgQmw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731699809; x=1732304609; 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=8q/u2kGW54Efg3y1/zjzLgFIuit0NCZFXIw/u2X2600=; b=ZgCEujAoTzd+1pPWtoxEgPclMw+pd0kq+TJcy4Fp76nJNaTjwMz1VdLhB9AYU7wkGl XWIaTE3XMgb2Bp4ak8JnG4/hCzTYJssSHzoHJANKaLuRPs7JB5GtZOEEjHVOYBr1V8lg qz1m5yijF/nO9mTW46AEzKhK1iVPZ1JBlAG4LhDSNkjzFnMSfhYC+D0vHBn+PFKXk3fo 3ApMeCls4I6uubna3Hx6yYLNE5eDTpCMGWBJxC7KvJSEDr+yArCX+QWt7pExBP0dAPTx n20vWZ/DiGpOunydB813cUTKfroislDz8qsqzHhY3H27zSwBA/kSdDZxKFw9CVziwPYf RVQw== X-Forwarded-Encrypted: i=1; AJvYcCUYdgM3xQrTB51rhFULT67ZXfUQbF6dDlbdw+G4j43ys9OwwbQFi9oGeEA6+Daor+D4Ndg2n0MJtA==@kvack.org X-Gm-Message-State: AOJu0YzZGjMBQfd67hnlvxGfjUs40iu+jthFox0ySqpgku/jpNtfc0C4 HIu/sBABPCpNVi/BvBAeN3gLBzh1LNNM22rNHhIbKVPLyv5GvlLfgRBEHmPvMrrLBeQOZ7QTKmo jvpg= X-Google-Smtp-Source: AGHT+IFVuN5KDKBo5XTqLssBSReUS8EpUtar6aD6kRn5MDJ3qo+67xn0hJRw4lPGuh42hyL5Ew2EfQ== X-Received: by 2002:a17:906:fe01:b0:a99:ffdb:6fef with SMTP id a640c23a62f3a-aa483526a0cmr333064466b.46.1731699809351; Fri, 15 Nov 2024 11:43:29 -0800 (PST) Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com. [209.85.218.45]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-aa20e08aa47sm207209266b.196.2024.11.15.11.43.27 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 15 Nov 2024 11:43:27 -0800 (PST) Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-a9a0ec0a94fso323820166b.1 for ; Fri, 15 Nov 2024 11:43:27 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCVo1C785nN6e/ziyDg7Vj58gFkHdf838duMVyPoVOuhKLTCOkygQ9b2gMP+ENTKWXeWUc8D0EwlNA==@kvack.org X-Received: by 2002:a17:906:f589:b0:a9a:2a56:91f with SMTP id a640c23a62f3a-aa4833f685cmr343442266b.2.1731699807210; Fri, 15 Nov 2024 11:43:27 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Linus Torvalds Date: Fri, 15 Nov 2024 11:43:10 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [LSF/MM/BPF TOPIC] Measuring limits and enhancing buffered IO To: Luis Chamberlain Cc: Al Viro , Matthew Wilcox , lsf-pc@lists.linux-foundation.org, linux-fsdevel@vger.kernel.org, linux-mm , Daniel Gomez , Pankaj Raghav , Jens Axboe , Dave Chinner , Christoph Hellwig , Chris Mason , Johannes Weiner Content-Type: multipart/mixed; boundary="000000000000de0ba40626f8c7b2" X-Rspamd-Server: rspam10 X-Stat-Signature: cagrpuh9uqqwbdg9yosyy1qhjkqmd8o8 X-Rspamd-Queue-Id: 5FB02100007 X-Rspam-User: X-HE-Tag: 1731699760-132865 X-HE-Meta: U2FsdGVkX1+ivkS4230ItUKnZq/qKP27C3w03zKwpSRmQ7pGTipEwP+QDAu5k2yPQJxdPysUdyAPjib+wgpXJhGmPYtPiS7PmtFDWgQXqDZW8udlJzZ0cuMZRdJYKo1VqihQ2oSZCiP3hFeIMC0XNEf+QfLMRl6TxGIZrOxbtzIrmRKAZ9imKxIScYZjCBeX3hgZHDZKOZMY/aCs/2QSzzHsg4ZEs7zAWsgjz4yVqczsMtcZiBIRiEzXdUZmVWQuziWUp4A7/0TzO8lvw7xsT0LAORsFX2i+m8o+y1uc+aJQrIfBZW8dkYNFEa8yskwlmkRsObp/MLPG627jdVHFe2ADRlnPJApuO/MoJeF+1AnE28csOVgA4R5kn1wSI59rhoYzxW9kDx9bN8K26Og45SzWK5V/p/thctnpWzFec7H0btIO1IOQgDVcn3kjnJ87OEQT7KkP39/7lWNbkykckhHzsmjMY6PGtiTYi03S2cEUHZ1KQoALCa++HrKfS1mH3QpxRGm+3v3g2FsHpfqJblVK1WzIunGbrLgbzaIpZO7w07gcPY1f/vewLYZdMqP2ffQ7O/culjFXHvmvgTciSOSvBEHVsRlePpdePAAAJD6dmjm/nDgnYPdBEI9sq9k3aTpl+n2YmLJGMhpLwc1jtr3IlgxOhDY5pwuxOHojv8Y0Ooy2pX0KJAlMLiOCtL4zV+OdqzQWoHdTKD3rKSmrRXubalGZ5t3ITWv0KHsGx9Ta9E4f3M11OMRpfu+O1i/94YEmf2ADcu0eIsZ/hJW1syMaQkbAHSrpnY8C0HraSHPKtxnvQS2dEvYJq212Zpw8m9ae6VqwYL+zpOX+cta0bPPgPs7OEuGg+9GD+dq17Lue5iD61uItLi/J1GmGMPjobMMKAOL0o5Lvuojk0gMvpzZvAcrIrrtPNqibUyGz48GnfW1hwHstpTYjYp9cbVeC6LYM78MOjvFi445IiyM NYANpGA9 69Epbichi56TiLDC22dwmeM5CO998WAG7XsbNrek//n7DKdzgx4dOCn0S0vnpQQ0NUlwv4fOFTqwoQjFLnxJOW4wHRcXbV3IrtqkR4yEhGiOfb6hnGEtagmo8wCT2CvPMbfmh6Lc4kjcLejKVfqT/o3kf/X+wuIVTMkXNbA+gUTDTNR6jQ7grpX+X0CG5E2e4LmX7mzpb6fh2LxeCdMCsf5DQNglPlDmp/cUjsNEopawCuPBI2ZoSz48zEuEDlPQj/sNxAnbY7KLjyprW2fI+JoI0KqkchtY6k3dIL4rwN4f4jR/hhqnAcxKA7cbmaSaYbwHO7X1Hx67cnc6+bwbNRT3CgTDfwJvuMNdPGYHvCKh9YfkfLSeySrmQJ+MhWI0TH/04dpjYHGWRtxMXNCyGd/h7xqgZOz+ayh9Jzg4sTSQJjYNgZyzEQKS8kZ9IfvDjsyL5cu9nE3Iu6T5Cvttx4bUl2UeUZwiAyT+bcBJRZQTHDxTCFAHu3QMzWOfIetThXSVHb7Dr8eBWy07Mbbl/djhM8xvbkrQlnbOacCyZnZKwv0KsE2mXp/mQ+c9mB9ZYovd9TS8tOVkp1cBkAcZUlZ9PZE8XNDrCiPeK4h+9W3dwoJwUzfnkDe/xukGsO+5361Ps7U+BLMhHT7B9M8pm0NS5iJY2wCtnR+2DxkeTFb6TZUFOycH90dW4nK1zuDZ6V3r6hi6xuVmNTEZJAMoRXy4J8gB4VGberwlF2D/MFpiehRerjoVJRJnKJJlwGGCtYpVS3zazpTPvmfaHP4omZESRnnYke7ECSWEf03brpmTWfwZAwZoOUcSd0WibdxJTO1PlsFD56XGrfF3827F8q/LIwA== 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: List-Subscribe: List-Unsubscribe: --000000000000de0ba40626f8c7b2 Content-Type: text/plain; charset="UTF-8" I'm coming back to this ancient discussion, because I've actually been running that odd small-reads patch on my machine since February, because it's been in my random pile of "local test patches". I had to rebase the patch because it conflicted with a recent fix, and as part of rebasing it I looked at it again. And I did find that the "do small reads entirely under RCU" didn't test for one condition that filemap_get_read_batch() checked for: the xa_is_sibling() check. So... On Tue, 14 May 2024 at 04:52, Luis Chamberlain wrote: > > On Mon, Feb 26, 2024 at 02:46:56PM -0800, Linus Torvalds wrote: > > I really haven't tested this AT ALL. I'm much too scared. But I don't > > actually hate how the code looks nearly as much as I *thought* I'd > > hate it. > > Thanks for this, obviously those interested in this will have to test > this and fix the below issues. I've tested for regressions just against > xfs on 4k reflink profile and detected only two failures, generic/095 > fails with a failure rate of about 1/2 or so: > > * generic/095 > * generic/741 Would you mind seeing if that ancient patch with the xa_is_sibling() check added, and rebased to be on top of current -git maybe works for you now? I still haven't "really" tested this in any real way, except for running all my normal desktop loads on it. Which isn't really saying much. I compile kernels, and read email. That's pretty much all I do. So no fstests or anything like that. But it *has* worked in that capacity for 8+ months now. So it's not entirely broken, but the fact that it failed fstests for you clearly means that *something* was subtly but horribly broken in the original version. Linus --000000000000de0ba40626f8c7b2 Content-Type: text/x-patch; charset="US-ASCII"; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3j5bthr0 RnJvbSAyZGFmZDE1Y2ViMDBhNDFiOWY2YjM3YzFkODQ2NjIwMzliYTJkMTQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRh dGlvbi5vcmc+CkRhdGU6IE1vbiwgMjYgRmViIDIwMjQgMTU6MTg6NDQgLTA4MDAKU3ViamVjdDog W1BBVENIXSBtbS9maWxlbWFwOiBkbyBzbWFsbCByZWFkcyBpbiBSQ1UtbW9kZSByZWFkIHdpdGhv dXQgcmVmY291bnRzCgpIYWNrZXR5IGhhY2sgaGFjayBjb25jZXB0IGZyb20gcmVwb3J0IGJ5IFdp bGx5LgoKTW9tbXksIEknbSBzY2FyZWQuCgpMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9h bGwvWmR1dG8zMExVRXFJSGc0aEBjYXNwZXIuaW5mcmFkZWFkLm9yZy8KTm90LXlldC1zaWduZWQt b2ZmLWJ5OiBMaW51cyBUb3J2YWxkcyA8dG9ydmFsZHNAbGludXgtZm91bmRhdGlvbi5vcmc+Ci0t LQogbW0vZmlsZW1hcC5jIHwgMTE3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTA3IGluc2VydGlvbnMo KyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL21tL2ZpbGVtYXAuYyBiL21tL2ZpbGVt YXAuYwppbmRleCA1NmZhNDMxYzUyYWYuLjkxZGQwOWM0M2FmNSAxMDA2NDQKLS0tIGEvbW0vZmls ZW1hcC5jCisrKyBiL21tL2ZpbGVtYXAuYwpAQCAtMjU5NCw2ICsyNTk0LDg1IEBAIHN0YXRpYyBp bmxpbmUgYm9vbCBwb3Nfc2FtZV9mb2xpbyhsb2ZmX3QgcG9zMSwgbG9mZl90IHBvczIsIHN0cnVj dCBmb2xpbyAqZm9saW8pCiAJcmV0dXJuIChwb3MxID4+IHNoaWZ0ID09IHBvczIgPj4gc2hpZnQp OwogfQogCisvKgorICogSSBjYW4ndCBiZSBib3RoZXJlZCB0byBjYXJlIGFib3V0IEhJR0hNRU0g Zm9yIHRoZSBmYXN0IHJlYWQgY2FzZQorICovCisjaWZkZWYgQ09ORklHX0hJR0hNRU0KKyNkZWZp bmUgZmlsZW1hcF9mYXN0X3JlYWQobWFwcGluZywgcG9zLCBidWZmZXIsIHNpemUpIDAKKyNlbHNl CisKKy8qCisgKiBDYWxsZWQgdW5kZXIgUkNVIHdpdGggc2l6ZSBsaW1pdGVkIHRvIHRoZSBmaWxl IHNpemUgYW5kIG9uZSBwYWdlCisgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBmaWxl bWFwX2ZvbGlvX2NvcHlfcmN1KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBsb2ZmX3Qg cG9zLCBjaGFyICpidWZmZXIsIHNpemVfdCBzaXplKQoreworCVhBX1NUQVRFKHhhcywgJm1hcHBp bmctPmlfcGFnZXMsIHBvcyA+PiBQQUdFX1NISUZUKTsKKwlzdHJ1Y3QgZm9saW8gKmZvbGlvOwor CXNpemVfdCBvZmZzZXQ7CisKKwl4YXNfcmVzZXQoJnhhcyk7CisJZm9saW8gPSB4YXNfbG9hZCgm eGFzKTsKKwlpZiAoeGFzX3JldHJ5KCZ4YXMsIGZvbGlvKSkKKwkJcmV0dXJuIDA7CisKKwlpZiAo IWZvbGlvIHx8IHhhX2lzX3ZhbHVlKGZvbGlvKSB8fCB4YV9pc19zaWJsaW5nKGZvbGlvKSkKKwkJ cmV0dXJuIDA7CisKKwlpZiAoIWZvbGlvX3Rlc3RfdXB0b2RhdGUoZm9saW8pKQorCQlyZXR1cm4g MDsKKworCS8qIE5vIGZhc3QtY2FzZSBpZiB3ZSBhcmUgc3VwcG9zZWQgdG8gc3RhcnQgcmVhZGFo ZWFkICovCisJaWYgKGZvbGlvX3Rlc3RfcmVhZGFoZWFkKGZvbGlvKSkKKwkJcmV0dXJuIDA7CisJ LyogLi4gb3IgbWFyayBpdCBhY2Nlc3NlZCAqLworCWlmICghZm9saW9fdGVzdF9yZWZlcmVuY2Vk KGZvbGlvKSkKKwkJcmV0dXJuIDA7CisKKwkvKiBEbyB0aGUgZGF0YSBjb3B5ICovCisJb2Zmc2V0 ID0gcG9zICYgKGZvbGlvX3NpemUoZm9saW8pIC0gMSk7CisJbWVtY3B5KGJ1ZmZlciwgZm9saW9f YWRkcmVzcyhmb2xpbykgKyBvZmZzZXQsIHNpemUpOworCisJLyogV2Ugc2hvdWxkIHByb2JhYmx5 IGRvIHNvbWUgc2lsbHkgbWVtb3J5IGJhcnJpZXIgaGVyZSAqLworCWlmICh1bmxpa2VseShmb2xp byAhPSB4YXNfcmVsb2FkKCZ4YXMpKSkKKwkJcmV0dXJuIDA7CisKKwlyZXR1cm4gc2l6ZTsKK30K KworLyoKKyAqIElmZiB3ZSBjYW4gY29tcGxldGUgdGhlIHJlYWQgY29tcGxldGVseSBpbiBvbmUg YXRvbWljIGdvIHVuZGVyIFJDVSwKKyAqIGRvIHNvIGhlcmUuIE90aGVyd2lzZSByZXR1cm4gMCAo bm8gcGFydGlhbCByZWFkcywgcGxlYXNlIC0gdGhpcyBpcworICogcHVyZWx5IGZvciB0aGUgdHJp dmlhbCBmYXN0IGNhc2UpLgorICovCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZmlsZW1h cF9mYXN0X3JlYWQoc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcsIGxvZmZfdCBwb3MsIGNo YXIgKmJ1ZmZlciwgc2l6ZV90IHNpemUpCit7CisJc3RydWN0IGlub2RlICppbm9kZTsKKwlsb2Zm X3QgZmlsZV9zaXplOworCXVuc2lnbmVkIGxvbmcgcGdvZmY7CisKKwkvKiBEb24ndCBldmVuIHRy eSBmb3IgcGFnZS1jcm9zc2VycyAqLworCXBnb2ZmID0gcG9zICYgflBBR0VfTUFTSzsKKwlpZiAo cGdvZmYgKyBzaXplID4gUEFHRV9TSVpFKQorCQlyZXR1cm4gMDsKKworCS8qIExpbWl0IGl0IHRv IHRoZSBmaWxlIHNpemUgKi8KKwlpbm9kZSA9IG1hcHBpbmctPmhvc3Q7CisJZmlsZV9zaXplID0g aV9zaXplX3JlYWQoaW5vZGUpOworCWlmICh1bmxpa2VseShwb3MgPj0gZmlsZV9zaXplKSkKKwkJ cmV0dXJuIDA7CisJZmlsZV9zaXplIC09IHBvczsKKwlpZiAoZmlsZV9zaXplIDwgc2l6ZSkKKwkJ c2l6ZSA9IGZpbGVfc2l6ZTsKKworCS8qIExldCdzIHNlZSBpZiB3ZSBjYW4ganVzdCBkbyB0aGUg cmVhZCB1bmRlciBSQ1UgKi8KKwlyY3VfcmVhZF9sb2NrKCk7CisJc2l6ZSA9IGZpbGVtYXBfZm9s aW9fY29weV9yY3UobWFwcGluZywgcG9zLCBidWZmZXIsIHNpemUpOworCXJjdV9yZWFkX3VubG9j aygpOworCisJcmV0dXJuIHNpemU7Cit9CisjZW5kaWYgLyogIUhJR0hNRU0gKi8KKwogLyoqCiAg KiBmaWxlbWFwX3JlYWQgLSBSZWFkIGRhdGEgZnJvbSB0aGUgcGFnZSBjYWNoZS4KICAqIEBpb2Ni OiBUaGUgaW9jYiB0byByZWFkLgpAQCAtMjYxNCw3ICsyNjkzLDEwIEBAIHNzaXplX3QgZmlsZW1h cF9yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVyLAogCXN0cnVj dCBmaWxlX3JhX3N0YXRlICpyYSA9ICZmaWxwLT5mX3JhOwogCXN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nID0gZmlscC0+Zl9tYXBwaW5nOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBw aW5nLT5ob3N0OwotCXN0cnVjdCBmb2xpb19iYXRjaCBmYmF0Y2g7CisJdW5pb24geworCQlzdHJ1 Y3QgZm9saW9fYmF0Y2ggZmJhdGNoOworCQlfX0RFQ0xBUkVfRkxFWF9BUlJBWShjaGFyLCBidWZm ZXIpOworCX0gYXJlYTsKIAlpbnQgaSwgZXJyb3IgPSAwOwogCWJvb2wgd3JpdGFibHlfbWFwcGVk OwogCWxvZmZfdCBpc2l6ZSwgZW5kX29mZnNldDsKQEAgLTI2MjYsNyArMjcwOCwyMiBAQCBzc2l6 ZV90IGZpbGVtYXBfcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqaXRl ciwKIAkJcmV0dXJuIDA7CiAKIAlpb3ZfaXRlcl90cnVuY2F0ZShpdGVyLCBpbm9kZS0+aV9zYi0+ c19tYXhieXRlcyAtIGlvY2ItPmtpX3Bvcyk7Ci0JZm9saW9fYmF0Y2hfaW5pdCgmZmJhdGNoKTsK KworCWlmIChpb3ZfaXRlcl9jb3VudChpdGVyKSA8PSBzaXplb2YoYXJlYSkpIHsKKwkJdW5zaWdu ZWQgbG9uZyBjb3VudCA9IGlvdl9pdGVyX2NvdW50KGl0ZXIpOworCisJCWNvdW50ID0gZmlsZW1h cF9mYXN0X3JlYWQobWFwcGluZywgaW9jYi0+a2lfcG9zLCBhcmVhLmJ1ZmZlciwgY291bnQpOwor CQlpZiAoY291bnQpIHsKKwkJCXNpemVfdCBjb3BpZWQgPSBjb3B5X3RvX2l0ZXIoYXJlYS5idWZm ZXIsIGNvdW50LCBpdGVyKTsKKwkJCWlmICh1bmxpa2VseSghY29waWVkKSkKKwkJCQlyZXR1cm4g YWxyZWFkeV9yZWFkID8gYWxyZWFkeV9yZWFkIDogLUVGQVVMVDsKKwkJCXJhLT5wcmV2X3BvcyA9 IGlvY2ItPmtpX3BvcyArPSBjb3BpZWQ7CisJCQlmaWxlX2FjY2Vzc2VkKGZpbHApOworCQkJcmV0 dXJuIGNvcGllZCArIGFscmVhZHlfcmVhZDsKKwkJfQorCX0KKworCWZvbGlvX2JhdGNoX2luaXQo JmFyZWEuZmJhdGNoKTsKIAogCWRvIHsKIAkJY29uZF9yZXNjaGVkKCk7CkBAIC0yNjQyLDcgKzI3 MzksNyBAQCBzc2l6ZV90IGZpbGVtYXBfcmVhZChzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBp b3ZfaXRlciAqaXRlciwKIAkJaWYgKHVubGlrZWx5KGlvY2ItPmtpX3BvcyA+PSBpX3NpemVfcmVh ZChpbm9kZSkpKQogCQkJYnJlYWs7CiAKLQkJZXJyb3IgPSBmaWxlbWFwX2dldF9wYWdlcyhpb2Ni LCBpdGVyLT5jb3VudCwgJmZiYXRjaCwgZmFsc2UpOworCQllcnJvciA9IGZpbGVtYXBfZ2V0X3Bh Z2VzKGlvY2IsIGl0ZXItPmNvdW50LCAmYXJlYS5mYmF0Y2gsIGZhbHNlKTsKIAkJaWYgKGVycm9y IDwgMCkKIAkJCWJyZWFrOwogCkBAIC0yNjcwLDExICsyNzY3LDExIEBAIHNzaXplX3QgZmlsZW1h cF9yZWFkKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICppdGVyLAogCQkgKiBt YXJrIGl0IGFzIGFjY2Vzc2VkIHRoZSBmaXJzdCB0aW1lLgogCQkgKi8KIAkJaWYgKCFwb3Nfc2Ft ZV9mb2xpbyhpb2NiLT5raV9wb3MsIGxhc3RfcG9zIC0gMSwKLQkJCQkgICAgZmJhdGNoLmZvbGlv c1swXSkpCi0JCQlmb2xpb19tYXJrX2FjY2Vzc2VkKGZiYXRjaC5mb2xpb3NbMF0pOworCQkJCSAg ICBhcmVhLmZiYXRjaC5mb2xpb3NbMF0pKQorCQkJZm9saW9fbWFya19hY2Nlc3NlZChhcmVhLmZi YXRjaC5mb2xpb3NbMF0pOwogCi0JCWZvciAoaSA9IDA7IGkgPCBmb2xpb19iYXRjaF9jb3VudCgm ZmJhdGNoKTsgaSsrKSB7Ci0JCQlzdHJ1Y3QgZm9saW8gKmZvbGlvID0gZmJhdGNoLmZvbGlvc1tp XTsKKwkJZm9yIChpID0gMDsgaSA8IGZvbGlvX2JhdGNoX2NvdW50KCZhcmVhLmZiYXRjaCk7IGkr KykgeworCQkJc3RydWN0IGZvbGlvICpmb2xpbyA9IGFyZWEuZmJhdGNoLmZvbGlvc1tpXTsKIAkJ CXNpemVfdCBmc2l6ZSA9IGZvbGlvX3NpemUoZm9saW8pOwogCQkJc2l6ZV90IG9mZnNldCA9IGlv Y2ItPmtpX3BvcyAmIChmc2l6ZSAtIDEpOwogCQkJc2l6ZV90IGJ5dGVzID0gbWluX3QobG9mZl90 LCBlbmRfb2Zmc2V0IC0gaW9jYi0+a2lfcG9zLApAQCAtMjcwNSw5ICsyODAyLDkgQEAgc3NpemVf dCBmaWxlbWFwX3JlYWQoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKml0ZXIs CiAJCQl9CiAJCX0KIHB1dF9mb2xpb3M6Ci0JCWZvciAoaSA9IDA7IGkgPCBmb2xpb19iYXRjaF9j b3VudCgmZmJhdGNoKTsgaSsrKQotCQkJZm9saW9fcHV0KGZiYXRjaC5mb2xpb3NbaV0pOwotCQlm b2xpb19iYXRjaF9pbml0KCZmYmF0Y2gpOworCQlmb3IgKGkgPSAwOyBpIDwgZm9saW9fYmF0Y2hf Y291bnQoJmFyZWEuZmJhdGNoKTsgaSsrKQorCQkJZm9saW9fcHV0KGFyZWEuZmJhdGNoLmZvbGlv c1tpXSk7CisJCWZvbGlvX2JhdGNoX2luaXQoJmFyZWEuZmJhdGNoKTsKIAl9IHdoaWxlIChpb3Zf aXRlcl9jb3VudChpdGVyKSAmJiBpb2NiLT5raV9wb3MgPCBpc2l6ZSAmJiAhZXJyb3IpOwogCiAJ ZmlsZV9hY2Nlc3NlZChmaWxwKTsK --000000000000de0ba40626f8c7b2--