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 054E6C77B71 for ; Tue, 18 Apr 2023 08:13:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 102D96B0071; Tue, 18 Apr 2023 04:13:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0B36E6B0072; Tue, 18 Apr 2023 04:13:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EBD078E0001; Tue, 18 Apr 2023 04:13:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id D9FB16B0071 for ; Tue, 18 Apr 2023 04:13:18 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A0A43401C9 for ; Tue, 18 Apr 2023 08:13:18 +0000 (UTC) X-FDA: 80693796876.09.6666B57 Received: from mail-lf1-f54.google.com (mail-lf1-f54.google.com [209.85.167.54]) by imf02.hostedemail.com (Postfix) with ESMTP id C84D680018 for ; Tue, 18 Apr 2023 08:13:15 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=bKYT1lQF; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf02.hostedemail.com: domain of stevensd@chromium.org designates 209.85.167.54 as permitted sender) smtp.mailfrom=stevensd@chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1681805596; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=5fuQkHKWI/lgpNcFt6ZdMNne2pX3w0YtDWS0YTqJBCI=; b=gNLa1Uxlkznt6KlIUK+i4wWSD0DdLU3mC032l70amfBOZxpK0sANDCzrSIPZLIY32LgWZa Y+qwJMzpYSY+F3UBpAWU3Y6Hgd2eVqDkSASvWsjfeN7MYqO54iVHdpQqryyskMklc3Uwpw xzezNKLOLzmhEMpAL32Au+rRxA3QzVM= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=bKYT1lQF; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf02.hostedemail.com: domain of stevensd@chromium.org designates 209.85.167.54 as permitted sender) smtp.mailfrom=stevensd@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1681805596; a=rsa-sha256; cv=none; b=PCeXZwC+AMpdd/ha6fKSLfAN4hY6JOE+SozCfotXSxnBlli0FDe/oPKuaMvU4JXq+U64q8 GDyxnxPbwmG+s4XCC4HvQ1D6vEuWE1jTPszJ7DfDrx7Lx24XXoZrexj1UjLfeG1Y368F9V t7lu+ERh9IdNv4Yh0HrtwLw/pcMHaGE= Received: by mail-lf1-f54.google.com with SMTP id 2adb3069b0e04-4ec8133c59eso1939594e87.0 for ; Tue, 18 Apr 2023 01:13:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1681805593; x=1684397593; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=5fuQkHKWI/lgpNcFt6ZdMNne2pX3w0YtDWS0YTqJBCI=; b=bKYT1lQF+ceywACbQRsaGEYOk9yAX3tfN/xOqXX9bhvZZf6j6UTjmGixXbFHfp4+YE zdw4u3y0ZPeZCUBFWtiwbwtX7p8OTfU3e1abCNbqqoa+GS8vK9GT6INbvWfqdfHipeNn YSi24AcgUJfX86Cu9UFpPw+PyjT/J/ZYJ1Fh8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1681805593; x=1684397593; h=content-transfer-encoding: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=5fuQkHKWI/lgpNcFt6ZdMNne2pX3w0YtDWS0YTqJBCI=; b=iqoh6N7MZcVcZGUHuBdAth0Tpu/e1rwwHP4OgM2aCZ6awxrzNzKsPP5WmsTsP5hI9T 68MXye1XIBebvZUla8WP51x3tmMUlKAJoFnkzJ5l29fv3RUSM6h8wffq3GVH1qv8gImJ FozeWpV1ZttA9615bydVlilyfItal4I6BznCnO6/AsmKof0jM2F8ZNDx4rPDnsyKBQH1 vUzLyCXfOHen/wGrr8rKwNlvgdJ7M9+fzlcpVK1q1lLswUOTxZKXRgQXEvN6xdZ+1eij Gd+Owv7c9Nt5MOUhEtRFzjrbUdMR/aiHLMqAqpNoR5Ed+v6txCFNd3Np27Guts1zfacu 43iA== X-Gm-Message-State: AAQBX9eO090Lx9pxJfZcKJAfydTvsPjGlJR6D+qUP7B6DxhXvcbtiUAz tUTWjr3JpKjs4JWee3AHKxd3QB7N1wxpcCumrNRH/MVVZwfaxeYl9vc= X-Google-Smtp-Source: AKy350b6SrZ1TIvMFfizitLoXeV1f9MlUcZAN/8+gQQrtYTkDshwXQBWP3COlcIoKs6VFaiig0JHBR7o/686hWK9VRY= X-Received: by 2002:a19:f60d:0:b0:4ec:8ca6:65ad with SMTP id x13-20020a19f60d000000b004ec8ca665admr2961873lfe.11.1681805593322; Tue, 18 Apr 2023 01:13:13 -0700 (PDT) MIME-Version: 1.0 References: <20230418061933.3282785-1-stevensd@google.com> In-Reply-To: <20230418061933.3282785-1-stevensd@google.com> From: David Stevens Date: Tue, 18 Apr 2023 17:13:02 +0900 Message-ID: Subject: Re: [PATCH] mm/shmem: Fix race in shmem_undo_range w/THP To: linux-mm@kvack.org Cc: Andrew Morton , "Matthew Wilcox (Oracle)" , Suleiman Souhlal , linux-kernel@vger.kernel.org, stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: C84D680018 X-Stat-Signature: kss8bfrab4bfaafh9ife19uowtzn8msu X-HE-Tag: 1681805595-394705 X-HE-Meta: U2FsdGVkX19L18Wfm11hk1obBaUZ0QBc+bD44qy6xWUGLPMQbxZ+c8h9UJAWKYFVz4j4kRqHuzETeDoXaPL/ZNNQLSHpFucppFZYxd02GH2Cfh0RZGRu0sTNw4bs2c/ngG+ZKG2GmQSaejuPDYZHb6/afPx1WjTeY20utIgkDd6e9+iryc0MtwdVVmSmYyUbcVahW2xKwhsS0EyJIMSesWj56vhjnrLwpMoGFT4Om9Ox8O6978/hboZwWVpN5WSLyjg53CuVELOHt641cPUU56YQfX91WPZjcX+kHKm59G7lmKJbhjZG2sixcLQ7mIgemNfyiWaFMl4gQf8GmZ4a/l1UT800XtuB/SHQdts+JEs9R9Zz6HOFF0C9ciBvsYGGTM1Vnr2yrJAISC4d0s6i9dphLYy3eeHZ+kY6ZW3guYib0yIqs+stNG1UPulMuiAc70xW/dpmOhwT9DJ+N/FSIoyjcvjhRyOTFSh1Y3CpppJJEEnSb4JNrYcE6HQJFsDt+0Xs61xU3NajfPC2gOvdHujTH/GCdw01N5sZTMDvgHh9prQXUzkMgqRXXGpy5bhqNlPeV83tb5KvrpWvfSFrlMp8pLWCpC1Hs6tsBQ2mdtkydCuzjtm1CsPmKFsgy/Mta9vLyOGbQxIU8kw5sY7+E1Uw1fQomcn/318A5rPkxdznco4w8LzS7kf+WYEA8M8bOBcflFPtAlLkqRIZfz9cm/Pv7fNebQ3GtlMgISG4dsI6Bm1Ok6sao9Xt202AP3ZJJScmgCiapvJz7VsPWiNqotXxK/N+a5QDBfOqXbVr+RyahSzt3lLDBvfvcIYD6aNcvctGFjth0kXsVH5qkdH3+vYkGodNZ5VTNH/7Q5NevhSioNZSnaqCzhyDDDckw08iq9BUeU887P8nlFB3ObZFPVFJZCc+VtWWIDBWmAahldEarorp/gU1BzZJWKyHu6p1E4vYvta36JifP11H68u AkH7qa1w OjE+/9/6u4zF+4n68aE2HI02zqhfmQo4hp+yq1in3EyWHJLFGCHGVlszBUQqBjm0cqF3ZaI8ctsl3ac6l842pRXKLMc3wfLPr2i3nm0ya/rO1AB+hvme9rX4lLkeyIJmrQeaWKLmWpiSORJ+MpRb5oKv0GVS5WXoehmJJ8rEIzZ8sjsL1arJpH/jsNsZoVFJLPPHwgqeYiKGp9HPIcaWh7HIv7kW/d3vwstDoS3/0oHDmMulI+wxO8Ub1WCi8MGNFBF5vrotPTMj+CzWD6Oy0UL6aRgheuVcyGRBm/L+MFJC0YEwchUtlAZHeqfPe5akNwVMPHmNB5J/n769icl9N2lH6A6GTpyH+KGJa+Io59hE8cXdHUoiP+DoZyI8ct5LjlmSycF3p/+9obbe98PvcNR681Q== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000385, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Tue, Apr 18, 2023 at 3:22=E2=80=AFPM David Stevens wrote: > > From: David Stevens > > Split folios during the second loop of shmem_undo_range. It's not > sufficient to only split folios when dealing with partial pages, since > it's possible for a THP to be faulted in after that point. Calling > truncate_inode_folio in that situation can result in throwing away data > outside of the range being targeted. > > Fixes: b9a8a4195c7d ("truncate,shmem: Handle truncates that split large f= olios") > Cc: stable@vger.kernel.org > Signed-off-by: David Stevens > --- > mm/shmem.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/shmem.c b/mm/shmem.c > index 9218c955f482..317cbeb0fb6b 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -1033,7 +1033,7 @@ static void shmem_undo_range(struct inode *inode, l= off_t lstart, loff_t lend, > } > VM_BUG_ON_FOLIO(folio_test_writeback(foli= o), > folio); > - truncate_inode_folio(mapping, folio); > + truncate_inode_partial_folio(folio, lstar= t, lend); It was pointed out to me that truncate_inode_partial_folio only sometimes frees the target pages. So this patch does fix the data loss, but it ends up making partial hole punches on a THP not actually free memory. I'll send out a v2 that properly calls truncate_inode_folio after splitting a THP. -David > } > folio_unlock(folio); > } > -- > 2.40.0.634.g4ca3ef3211-goog >