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 49797C433EF for ; Thu, 24 Mar 2022 14:04:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 89DBE6B0071; Thu, 24 Mar 2022 10:04:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 84D7B6B0073; Thu, 24 Mar 2022 10:04:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 73C236B0074; Thu, 24 Mar 2022 10:04:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.28]) by kanga.kvack.org (Postfix) with ESMTP id 64C2D6B0071 for ; Thu, 24 Mar 2022 10:04:07 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 2B6B424732 for ; Thu, 24 Mar 2022 14:04:07 +0000 (UTC) X-FDA: 79279448934.02.47FC382 Received: from alexa-out.qualcomm.com (alexa-out.qualcomm.com [129.46.98.28]) by imf23.hostedemail.com (Postfix) with ESMTP id 1F39F14004D for ; Thu, 24 Mar 2022 14:04:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1648130646; x=1679666646; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=PIk/w/RBaLqMusauG9U27ohA+VfrT1MXk+SdCIDQlq8=; b=tXNZJxy2QlX2WxnGzbkkI5/rpb1Y+SuT3EOp9kaiY2kNlwPBPwKEiixm elVi8yufwPpUWzX61Vaij0PyAed9WEjN5bzlmbVEtxNNL/2gRLQz6YGh5 7ImgfbHfwQwQ3eFGOGA7AaX9xlbVWCShEp3CVOeeG5iPQPx3AKBzxokk5 w=; Received: from ironmsg08-lv.qualcomm.com ([10.47.202.152]) by alexa-out.qualcomm.com with ESMTP; 24 Mar 2022 07:04:05 -0700 X-QCInternal: smtphost Received: from nasanex01c.na.qualcomm.com ([10.47.97.222]) by ironmsg08-lv.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Mar 2022 07:04:04 -0700 Received: from nalasex01a.na.qualcomm.com (10.47.209.196) by nasanex01c.na.qualcomm.com (10.47.97.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Thu, 24 Mar 2022 07:04:04 -0700 Received: from [10.216.20.42] (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Thu, 24 Mar 2022 07:04:00 -0700 Message-ID: Date: Thu, 24 Mar 2022 19:33:56 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Subject: Re: [PATCH 1/2] Revert "mm: madvise: skip unmapped vma holes passed to process_madvise" Content-Language: en-US To: Michal Hocko CC: , , , , , , , , References: From: Charan Teja Kalla In-Reply-To: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=quicinc.com header.s=qcdkim header.b=tXNZJxy2; spf=pass (imf23.hostedemail.com: domain of quic_charante@quicinc.com designates 129.46.98.28 as permitted sender) smtp.mailfrom=quic_charante@quicinc.com; dmarc=pass (policy=none) header.from=quicinc.com X-Stat-Signature: jqno1qzpw88o67pgqsrsg369xprb3zhd X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 1F39F14004D X-HE-Tag: 1648130645-522031 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: Thanks Michal. On 3/24/2022 6:18 PM, Michal Hocko wrote: > On Wed 23-03-22 20:54:09, Charan Teja Kalla wrote: >> This reverts commit 08095d6310a7 ("mm: madvise: skip unmapped vma holes >> passed to process_madvise") as process_madvise() fails to return exact >> processed bytes at other cases too. As an example: if the >> process_madvise() hits mlocked pages after processing some initial bytes >> passed in [start, end), it just returns EINVAL though some bytes are >> processed. Thus making an exception only for ENOMEM is partially fixing >> the problem of returning the proper advised bytes. >> >> Thus revert this patch and return proper bytes advised, if there any, >> for all the error types in the following patch. > > I do agree with the revert. I am not sure the above really is a proper > justification though. 08095d6310a7 was changing one (arguably) dubious > semantic by another one without a proper justification and wider > consensus which I would expect from a patch which changes an existing > semantic. Not to mention it being marked for stable tree. Thanks for pointing this out. Since 08095d6310a7 is marked for stable tree, doing the same for this change. Cc: # 5.10+ > > But let's not nit pick on that now. Let's send this revert ASAP and use > some more time to discuss the semantic and whether any change is really > required. > >> Signed-off-by: Charan Teja Kalla > > Acked-by: Michal Hocko > Thanks for the quick ack. >> --- >> mm/madvise.c | 9 +-------- >> 1 file changed, 1 insertion(+), 8 deletions(-) >> >> diff --git a/mm/madvise.c b/mm/madvise.c >> index 39b712f..0d8fd17 100644 >> --- a/mm/madvise.c >> +++ b/mm/madvise.c >> @@ -1433,16 +1433,9 @@ SYSCALL_DEFINE5(process_madvise, int, pidfd, const struct iovec __user *, vec, >> >> while (iov_iter_count(&iter)) { >> iovec = iov_iter_iovec(&iter); >> - /* >> - * do_madvise returns ENOMEM if unmapped holes are present >> - * in the passed VMA. process_madvise() is expected to skip >> - * unmapped holes passed to it in the 'struct iovec' list >> - * and not fail because of them. Thus treat -ENOMEM return >> - * from do_madvise as valid and continue processing. >> - */ >> ret = do_madvise(mm, (unsigned long)iovec.iov_base, >> iovec.iov_len, behavior); >> - if (ret < 0 && ret != -ENOMEM) >> + if (ret < 0) >> break; >> iov_iter_advance(&iter, iovec.iov_len); >> } >> -- >> 2.7.4 >