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 ADEA8E95A67 for ; Sun, 8 Oct 2023 22:05:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2ED776B0197; Sun, 8 Oct 2023 18:05:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 29D6B6B0198; Sun, 8 Oct 2023 18:05:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 164F26B0199; Sun, 8 Oct 2023 18:05:30 -0400 (EDT) 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 045766B0197 for ; Sun, 8 Oct 2023 18:05:30 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id C1FDA80114 for ; Sun, 8 Oct 2023 22:05:29 +0000 (UTC) X-FDA: 81323676378.29.D0024DB Received: from mail-yb1-f182.google.com (mail-yb1-f182.google.com [209.85.219.182]) by imf28.hostedemail.com (Postfix) with ESMTP id 105F4C000F for ; Sun, 8 Oct 2023 22:05:27 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=utcLkoFz; spf=pass (imf28.hostedemail.com: domain of surenb@google.com designates 209.85.219.182 as permitted sender) smtp.mailfrom=surenb@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=1696802728; 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=Iuc4pBYSWde9uYVtKX5iw0WluyI3+OEY+TWaSmhRIPI=; b=qumJjRJzDIDJ23ya8ZyZ0lvRPw6ZVnIBZ9uXtDARr3kOWEdPfutnHWvDQENxF0bL1mdPDi xH5uwAaJxuRrF5a4oXFGrruC/qvIvSklDH4ksUyWvNm9TtYLMjqgI/M73KRkgofq1bCsQJ KtDg1VtIQegXypkDY4/KZPl2qWKyamU= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=utcLkoFz; spf=pass (imf28.hostedemail.com: domain of surenb@google.com designates 209.85.219.182 as permitted sender) smtp.mailfrom=surenb@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696802728; a=rsa-sha256; cv=none; b=kq7yJP2c0kMDM9IQfN28u2AQzHPZl1xzCjMZsan1K8ta1Zl1BixlXnME29+L2FJdm+Nj19 ZvIGBWAfbYzwjD1ti1Rs6ApkhKzgQ4IJLjswrb9wYlQ2fkTcxgAb+i4eQJRqKsQ0nHc2Ct Ga2DN2k0bRBCCFkJqxWissbvb8xYRxk= Received: by mail-yb1-f182.google.com with SMTP id 3f1490d57ef6-d865685f515so4326928276.1 for ; Sun, 08 Oct 2023 15:05:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1696802727; x=1697407527; darn=kvack.org; 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=Iuc4pBYSWde9uYVtKX5iw0WluyI3+OEY+TWaSmhRIPI=; b=utcLkoFzYyDxcSjb/TdfkS5LZJ1oBC9VY+rGPtLC7cHsU5wFk/qqZ3r2lDeT7Yo4b6 GDADimoCHY8PjiAMGKrr5XXtMlypf5e6FIA5LTEjUEGzMgmYY0OUDbVbI9P8/d84UJp9 XxXHncCgaSf7nM1lLgqZS36/rMqGm8dF3qrMBEQ5HiUfrIstrmDi41RbLX8bSwbH90Ro /X0mxTipjRXYgutk/dv72yNnBiwpFENCkpi3MHdAbPtUeCTNLoRUh2o7G5TkZ7HuRsEP wDjNAoGj0LybbKY5PeVMGMJVnYf/peQOeEereUVFXse89cdYpMcbcWKzG4uyyzN3U4x5 FLdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696802727; x=1697407527; 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=Iuc4pBYSWde9uYVtKX5iw0WluyI3+OEY+TWaSmhRIPI=; b=WDKJNcrvgcba0w3SorlNUrDrz038ZLtRmOcwDmfD4cukszPaehRD7dwV8OkkVkRcKf DZd2eGdqdPLgTQ8K2gwzqkq9sYRGBYMP9nWIDAOYF8cdbbOqb0ZcwIa2VbvIJbaDEqTA IOX2WpW8Z0n5nKvQp2ExPnG8la3bspnoa4YVZfAswnqKwLwr37BwFWQhuEd9ZeG/znFq soV5y3H9nTaTVVz5ZCw07HiYY6KEMq6P2+AwE0dLhTETgvxoU32zbkoTS+GWqfSDseqC eoyZqr9wu1L5VXmK/yDPcVoBBa7dDNwyrwYL3saIKrMGB7Dvm0RZbZkevkSM5a+0ZW9c QVsw== X-Gm-Message-State: AOJu0Yzi2U/RM6U1FLH73x8X8L67S3NDqIm/0USlx6IECccir53zVWtH p5PEQPwmWLhqPtHEuwIuQkM2dwOZ9kyMn0SuaTaRgQ== X-Google-Smtp-Source: AGHT+IEX/YIuUf/0uXeGny5d6e+V++P8S9yJtObIHOp7r8301cnik36A3/V5yTc3LliJ5folffMMD0e40TOsZMjrt8I= X-Received: by 2002:a25:a023:0:b0:d71:f3bf:d5f with SMTP id x32-20020a25a023000000b00d71f3bf0d5fmr5927234ybh.5.1696802726925; Sun, 08 Oct 2023 15:05:26 -0700 (PDT) MIME-Version: 1.0 References: <20231006195318.4087158-1-willy@infradead.org> <20231006195318.4087158-5-willy@infradead.org> In-Reply-To: <20231006195318.4087158-5-willy@infradead.org> From: Suren Baghdasaryan Date: Sun, 8 Oct 2023 15:05:16 -0700 Message-ID: Subject: Re: [PATCH v2 4/6] mm: Handle COW faults under the VMA lock To: "Matthew Wilcox (Oracle)" Cc: Andrew Morton , linux-mm@kvack.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 105F4C000F X-Rspam-User: X-Stat-Signature: 3hpjwuc4k5jbqdmfmuta7t5ekh1osuwu X-Rspamd-Server: rspam01 X-HE-Tag: 1696802727-609095 X-HE-Meta: U2FsdGVkX1+jJ3j/P0iw07Y9Aq7JKH+9uolAKsVhgItPcBRf9hIyuUOkgwYOG+CgZ3UKdOKGXtsbI0ODSpFY3XIxLqlon5bayfDH60Bej7ADyZt+UH0tdDo5DSTTcAihTVBMCebrmZsyWliC8ZClGegR/YL6cURrozbLS6eu9qQ4gDsMn790RLkALAIi5aA9JJbu6HTfUMp6q84uKGm88MmORD+ABMQIvlJcQRSkurgYzVBV8knPmI1cprlZHJc3NVREb4aAgqIXPvukqBhHUiHudezYL28b65IGkHTeUNJC76ZIwBhnY4SxShTw9TLoSq2QVKhLHpUwIvlUHAfYA7OMkcnXl81poPqM5wYxSpQVw4AHi1s1Km9X2ksNRYTa51JbdxdTkjUTEbx0zdUPu3Ff3oQN1Cvsl1N6jO082e3hW6Utf0N74E2A+0yzhQzb7Gozg2va3Ou4x8hleBVgHrerHM68UxsYtQwJMWeUPfTNdvGVeFnY/NkRYJwN2Hu2kqt3/pnS7dAZ/0pAQiUZQkCTePGFgMbd3NljN4YFw9c2tiNquiEtoWguppWCVD8/J2dgNnmP6et5+JkH135FVUTJ1XoI3wUU5jjITMWh68aHLonQGArcGaec+F7/mJd77jpHkz1Np7YXzrdk1VsPjEoEop05DGMrJqBwkkrFMpacm8+w2N0hVYHtPQYw2ZOucCK2PY9XYM+sn5aX2bfsuJq/WkOaeyYWBl6V7FiiQ7e4FS9fe833/BL4clrPQ6U0prCDQu6PEtXpep10jixJPyvIV2L4DtzrmJEl9Elpkd6BaVTVT//Iiuvzetva79IBBU5Q8nrXdLb8bibYV+++pc8kLePkk+/Kv+gSclEh35P85k5fuWtSmHKhK6f+jdYSTczsPqJYdeYlr0ihqlbzIhw5abMz6FuaCTXCboepRKXog3XJBIzXwICtcgosZrhQA83S9GHBN5HS9vHQgb5 QR5EZU74 QOx86wbcMqD4c2fXsBcKhskUv1EysbCHsRoyc+aw8ZGkhc3A5woP1pCe5Cpi4A7iOVrIuH4L0VMyMfFnNXe5QH9tZKUOGnCKHFssjeBZ/443Yn2V6iPlj9VFzCOgfwNfYhclwACxgOzm5zbMMMZJ8+O2B+zs2yt8D5BU3AgE5u6jypF4Od1IbqPaz0VxF4/A3ha29qCfAkSzsD1PIKRlGt1PKJ8FavzDUxV+QWpE7LFbjByM7rOzPqoM028SoUlblYN1DrH0tkca8Z5yLbSFBv4Od6Re80Lin7DjyGoqOlITwQqgrlU8XqpuwhA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000048, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, Oct 6, 2023 at 12:53=E2=80=AFPM Matthew Wilcox (Oracle) wrote: > > If the page is not currently present in the page tables, we need to call > the page fault handler to find out which page we're supposed to COW, > so we need to both check that there is already an anon_vma and that the > fault handler doesn't need the mmap_lock. > > Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Suren Baghdasaryan > --- > mm/memory.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index a9b0c135209a..938f481df0ab 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4639,13 +4639,11 @@ static vm_fault_t do_cow_fault(struct vm_fault *v= mf) > struct vm_area_struct *vma =3D vmf->vma; > vm_fault_t ret; > > - if (vmf->flags & FAULT_FLAG_VMA_LOCK) { > - vma_end_read(vma); > - return VM_FAULT_RETRY; > - } > - > - if (unlikely(anon_vma_prepare(vma))) > - return VM_FAULT_OOM; > + ret =3D vmf_can_call_fault(vmf); > + if (!ret) > + ret =3D vmf_anon_prepare(vmf); > + if (ret) > + return ret; > > vmf->cow_page =3D alloc_page_vma(GFP_HIGHUSER_MOVABLE, vma, vmf->= address); > if (!vmf->cow_page) > -- > 2.40.1 >