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 5B7E8C54E94 for ; Wed, 25 Jan 2023 19:16:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DEF026B0072; Wed, 25 Jan 2023 14:16:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D9F336B0073; Wed, 25 Jan 2023 14:16:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C67336B0074; Wed, 25 Jan 2023 14:16:14 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id B73906B0072 for ; Wed, 25 Jan 2023 14:16:14 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 90AF28094B for ; Wed, 25 Jan 2023 19:16:14 +0000 (UTC) X-FDA: 80394277068.22.7AC9393 Received: from mail-ej1-f42.google.com (mail-ej1-f42.google.com [209.85.218.42]) by imf30.hostedemail.com (Postfix) with ESMTP id A694180003 for ; Wed, 25 Jan 2023 19:16:12 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=cQIGVXdl; spf=pass (imf30.hostedemail.com: domain of zokeefe@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=zokeefe@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674674172; a=rsa-sha256; cv=none; b=foO0Ru5VssPApn9/pzoCpWE/KS5AqfHy4N+/MyQ5qKzFdkogC64aOrUBEU/H4SJBZ6sOHq MOZr1tGkUcU1sCJkLI4YZIyeC+5FRxXhgiQy3vpqsCKbLxIbCkPMPOEDGbimB6+n+J4MSg V2crks+mApIJOzpNuM5Z/f9ftON48B8= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=cQIGVXdl; spf=pass (imf30.hostedemail.com: domain of zokeefe@google.com designates 209.85.218.42 as permitted sender) smtp.mailfrom=zokeefe@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674674172; 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=BpHOzPSp0+2DVR/IBcmdeeYd61gBn1vynCwibN+pOkE=; b=ie0CA0wRpOeQiHBG4MSLCeu4dmjRa1/yUijTixrATbIXjCeovUvdptoopIhuzsxz2Uvja2 FzbeqAQ6X/zLK/HPACspt8X96Mals1m45BxlyrKaDatX0gc20V1IrKj9ObfwmCi9svJq3j NlywlRQuEM/JgK++rX4AOU55Qn2Knuk= Received: by mail-ej1-f42.google.com with SMTP id os24so6608525ejb.8 for ; Wed, 25 Jan 2023 11:16:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=BpHOzPSp0+2DVR/IBcmdeeYd61gBn1vynCwibN+pOkE=; b=cQIGVXdlZr5h+z0gvRmUwKcGYka6xYqdS+WGzhpAJT3CvI3E7xt44LpyFEfKMzz1lF vYaxf2dK5jLgitazYDJZVD3O3vBBvUW7ZLUe5dHKuzQLdJy74ArtqjZD9hPlzxRoGNG3 /bew91YduRwZNbWH92+zOG8DJJzcXqe/Ip3ZJ1/AUsXJ53Tu43JPupQ3Xsv8jpFKMk5V nHSL6mUsw7I/hr4mxEA5pLhBKfpHDNLFilq1yUTelK4bfE9mFQcA3WoY6A1DIZ6+q/mR zKSRadM5sp5YbHdEPDarGDtaCZ8FB3PE79xUMR+oj0rCuo1atPeenTQyNUSvQuxM61sF dnqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=BpHOzPSp0+2DVR/IBcmdeeYd61gBn1vynCwibN+pOkE=; b=bN9T0Hl4zx/rsvDcabivkbSalslaNXNjdJCuIqBPMbISrVXWIFHBoMSV0ApBOvkq2o ITH4MQcG4mRNdoL/uvVUmRcfE+43WzlI4oQYxpbFaGsN4xuAOaKmPC9EmN1KyLHqfXZL 8UIjMVrFxhMiR2ejxGgW6I65Qtds6D+DbfCB7kulwGXZqwhzv+p+6q8KAvrQwpfVMWUx 0jIn0C6jQ0jDjawth4hN+T12Fz9H3y9Ey+XDn6rQ66lNL18vLLdk7xL9sIVgNNeSS6b4 2s0jop9H6blZmXgRsAa4tjjkkzRBJykgK7AJWvKUYUAdFp5MgR771HJRIXK204rKK5LB RPxg== X-Gm-Message-State: AFqh2kpfx4iIqpTAYW6qJgghnCW9L+VgtB4zjNttn0HIBpzKVUM/20sx Opjpaa7YIS3Ka7+pO9l6Xlt3Qzu2w1OYHkD98i4o2g== X-Google-Smtp-Source: AMrXdXsQXSEjRXyJwHDDL6MhuMFTJ4G2vBKWsi2XwmtB50ZOdY40wNWBTow7hyW4IHJ2RZBeJUEIrT0kjuyLvMjYSjc= X-Received: by 2002:a17:906:7754:b0:86f:2cc2:7028 with SMTP id o20-20020a170906775400b0086f2cc27028mr3333891ejn.133.1674674171046; Wed, 25 Jan 2023 11:16:11 -0800 (PST) MIME-Version: 1.0 References: <20230125015738.912924-1-zokeefe@google.com> In-Reply-To: From: "Zach O'Keefe" Date: Wed, 25 Jan 2023 11:15:34 -0800 Message-ID: Subject: Re: [PATCH 1/2] mm/MADV_COLLAPSE: set EAGAIN on unexpected page refcount To: Yang Shi Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , Hugh Dickins Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Queue-Id: A694180003 X-Rspamd-Server: rspam01 X-Stat-Signature: hyscjtbwfi89zdzz1j7i18jjzmuar7ux X-HE-Tag: 1674674172-239641 X-HE-Meta: U2FsdGVkX1+9YALO2Tz0Qq9caCG33TBngIczAK78prCScMoxlotQfRHzG5QKXeVHZ4OUxF+ncdaMgCN/nBE8T8cboYmNWB7LR8jssn5ZbpEs7H0wxyUOOnhU/F4X61QASK1hMaQHTQABxPoZj5xaY9BhWpsCunOof80wfe7nG14VD16luKCJBAaLScDm5T1mf15uYgaeFrIRASqRXaYStCm67SekraUsjuYhdJU8949laF5lBInPhDem9aRQhYccNgyjfIbkXG/qoJVNehaVmtEr624ARXEUBipIKfvWSOkaj7RSNFT7PMavskiB5YD8/rdiRwXfleHWUXnZDa9WfDy4tPqc0gvcyt1GNvIg49KLXkE4DcgSlQ0//+Y2g87L7aWdtdgHsx7JxB78U+uwZzvC8yRBIy803p18j6iVz9DfGCwVc5ggGyXGrSMIF3fKJopOIdqsCuJjCVfvJa26JmZV/M4j2YXN3cqHlwoJuvvaTwrBJD4gFDXxAFqG/CoUsX3UUhvQI2rD2BcqgIb5AX7krg9E4E/hm77QF8L4ptxD5D8TBlsZttnIFpvKuJ2jB2nisG3tAyRIVxoV/FT9ORcW+11WweC2IePzdf/2RxpQLKm82QngM9U2U8YWk0NJwnQk44U3aWVLB7Y95BtvznmEIPvRvtQTc3ZV7/jQVBOKVSi1qehTBv1BbRZv2Efro6Xcdu7kN7BFb8CQmPO6hDVSjdCSsNsE1fWZVskZNwBFltB+q8eTCd9a087Az19mM1QBVUzJmlbEMEZnpN0Atpklhubs+Vh7EC7ygpVZW/xqoBhF0NM2oBLku1Mjqv60OCa5Rue062Ei+yCzqZpqjP9I/bVp1UljXw7vhwpw/vGzvYHQO59Idko/cH+zqa8zlGWUX3DYT295gHhfIV5SttqcpJncrbTp2B7Rads9S+B1NyAOmnRDU4eDnfSlTU/pWsabyk4hXBXdEOHyoaM R4eQubpv 7iMYpz9HwAjUibWwcWbCshq4VMWWcVZtniClr/pIorx/cm4lA3DbxyRfXjEsCbV4k1dp10zIuK9CgUhXur5zf/QZs2bHFdbWYTJt4LDBt424FEbTwP4FEgWGwb8JTzoO46aIV71RYyhy6MsxPN2+FSKOYlqp4rsT3Pejq1fJegEr+P17gpPcY+ncTdDEJxO5ak7zN+2BCKAV5QdMf9Btyq8Hu1mR0CBjp2kmEPDXLchhTQzAi+Y5+CObYOu4Xpa/mRuqI/5dF4CGjwHr5g2wudoQ2Ny+fY3Zq+Ws8psFHDff9LF8HnsrGPXWO038mHNhsCzjIljsgf8zZRB8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000045, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Jan 25, 2023 at 10:06 AM Yang Shi wrote: > > On Tue, Jan 24, 2023 at 5:58 PM Zach O'Keefe wrote: > > > > During collapse, in a few places we check to see if a given small page > > has any unaccounted references. If the refcount on the page doesn't > > match our expectations, it must be there is an unknown user concurrently > > interested in the page, and so it's not safe to move the contents > > elsewhere. However, the unaccounted pins are likely an ephemeral state. > > > > In such a situation, make MADV_COLLAPSE set EAGAIN errno, indicating that > > collapse may succeed on retry. > > The page may be DMA pinned (for example, pin_user_pages()), it is not > worth retrying for such pages. But it may also not be worth optimizing > for this case at this point. > > So the patch looks good to me. Reviewed-by: Yang Shi Thanks as always, Yang, and good point about DMA pinning. As you mentioned, I don't know if it's worth considering that too much right now, as it's unlikely these two uses (MADV_COLLAPSE and DMA pining) would be used together. We can revisit if necessary later if it's an issue, but for now, I think it's a win that MADV_COLLAPSE (+ a bounded userspace retry loop based off erno) is more likely to succeed.