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 9508FC2BD09 for ; Thu, 27 Jun 2024 22:54:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F01386B009B; Thu, 27 Jun 2024 18:54:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E89D86B009C; Thu, 27 Jun 2024 18:54:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D03716B009D; Thu, 27 Jun 2024 18:54:29 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id AE7F46B009B for ; Thu, 27 Jun 2024 18:54:29 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 56AF8C10BB for ; Thu, 27 Jun 2024 22:54:29 +0000 (UTC) X-FDA: 82278174258.25.A0BE0EC Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf16.hostedemail.com (Postfix) with ESMTP id 8F90818000E for ; Thu, 27 Jun 2024 22:54:27 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=1f+ja6sy; spf=pass (imf16.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1719528851; 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=EMhZPYgxLwtvCuOgXR3hTcBm9fLV4e7To7NUxw/2JRQ=; b=43y9yzjsT1zYwS9dFJwT1hajRCNiFEQ8xirVQO4GTNxnOZ5FqcGw2BdAik6XBXS087YND9 ioViExVb4cTR5TtMehHENrQ4qUdZO+NBKDXjLTVmdUUTLMX2EWZiwK+B3GzIrERoq2+eV3 oIKSMRKeC9U0TOIJ2WjkH/Xhz+5m3Ps= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1719528851; a=rsa-sha256; cv=none; b=M6rt81h34uH1XhYdBZV8AjuBECSDZiMZ1TT6QQ6rY5tdr8r2NwTAInZDn8c1o8798vY7gX UdrF7vyOZJ5zOA1wnNuBFZq54kY/kVntW7QEUkS1gauIopM1xAKMH43rcvfYdIpUhbpjhf 0W1CGMdJKMmBqzfTAVvzqpLy9LMc2sg= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=1f+ja6sy; spf=pass (imf16.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 9DC8A62029; Thu, 27 Jun 2024 22:54:26 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 056ABC2BBFC; Thu, 27 Jun 2024 22:54:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1719528866; bh=+qEPYpz8xtAY3td5Z6Cp6xlrXoZsas6tJ0SWNWrPBrE=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=1f+ja6syF1eHjxkjAo9/tlTkfg97XktIheL7Mj0c0QPK3G2R5zsF3qwIHDYEK6zU2 X+b68C3cQ8uToCehyGamUMQv5hiWgQCeG411Lmq1XzJaIUoa65M0gCHk2lQRDMuIRS Hk9VPY3PcVUpXSzppOP2+FlJ1I5VW7mg1e7+fxiw= Date: Thu, 27 Jun 2024 15:54:25 -0700 From: Andrew Morton To: Yang Shi Cc: peterx@redhat.com, yangge1116@126.com, david@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, Vivek Kasireddy Subject: Re: [v2 PATCH] mm: gup: do not call try_grab_folio() in slow path Message-Id: <20240627155425.a31792e7c4709facfcbd417c@linux-foundation.org> In-Reply-To: <20240627221413.671680-1-yang@os.amperecomputing.com> References: <20240627221413.671680-1-yang@os.amperecomputing.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 8F90818000E X-Stat-Signature: yc9a7ku6nub867euhpaqhbeahry587fw X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1719528867-392472 X-HE-Meta: U2FsdGVkX1+Qw+ejHDkOi84pWi6E4CDbkZuPdQUxN3JTecIkuI+KsRdi3qgOHBNZbsBCCbe/DYpWR8LVJhcZd26l2Ge12Jb8WYWugidm1vXJaCEBKDfcYfUEMBy9bXPbJHhzeTOjJKwe6v2j52ks/fMn6I1d78GSWrVC3ILjLtYyLvJWKy2JKRPUBUwT4GCwAbqAX8KSxG37I7rZeSraLrRNeVKnbwbYqd7pSRLmRDhMd52J0Gy9QO68YsfWJrwR2G9+3fvoFz/EEEYF2DSG3JhKD6/l36XJTPhJOaPtIeOE7NKh2ZfnZOxMKh945HCFJ5d/T2VZAL93hjHHjqBxUZ6in48touM7nIAqrwK9bomtVgLKSKzRKqdWVjDGBmVgF3kcADTwr3ls/yltnMeGHxdbnoM+YYXmManC6UUYJc4UpqB83yL7UuEac09ijraX8C9/oqv3kJy237VRCqoQWQb1Nb/FRNCD47xN0/HqRwBHHpr+t9vGzFxWJq97XQ1cvfvaxB82R0SHiryfuT7BBwzRL77zuNqQnq4FiMQJDHtJMgfms1OyPdHKm3PA07Bu/wPVbSqJ23olEbEdOZVFNv6DKEbjlgn96Y0mN9uZTayf3b8OZW2NM3OGHmN+uhSYzeMIDv6/k03GD9BH+Ofjps4bTsG7ldqtXktx88lIcW54OzR6W3XR6K2RBTJHHyqnkeeauHW166aRbpxx+jflIGCzvUCkmLBlA0Zys3GiY++zqWF+9HoU/COL/xaaYn27L98ktl3e44yqJsLUX7SX9LC6J/V/J4KRLQiZCnUfIe2In8uXCUckKjWvHkyajz2i5HvrACDfG7/YOB69L7nTsD9Utt4QeiU4Ju2pHzZaf66qex4N7VN1NIReVnkjAn+T8AjmJVXvSywobPe3rBJJzKGwOwwcNsNPcStdOH61pqVNnv18qqGBEOYfNoQCO6W3YR0X82NLgjsdxLUWYan ZZBJloqc O0PSPaU8mlX9OlSvF87sHoMeWQ6MC5VmTMMbhNFVb+JhEFYDslYDiQB9qSsWKPj9OVyo4SBMgDJAOnhewrK+dNQFZkkeNjEnnbDImaMsoIyDst9v4F3iENFvBDD4hm3JGbOa+/JqqTydM9NSL+ZBf33BkZOUV1970DWXgnR+e4QSTfWdMGxFVIGgR1Y4muaYzPk6k1aDEIfSVuWF5L38wZ5z+j69iqWqEKNWz56FW2uzACLDhypBAHEIAFaqBfsli4lCMGUjQTF+8jRZorBEenkMlqLU4kA3y+ogqK/6hMKFvgwoX2Xme23raAH3divLOi3TM1We0+/jaXNMGgLiXBqZkWxrab7xFCc88+K/z8R3oWq4id7jXyZcpZavdBckX3A+iSmLrTnuGHvE= 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: On Thu, 27 Jun 2024 15:14:13 -0700 Yang Shi wrote: > The try_grab_folio() is supposed to be used in fast path and it elevates > folio refcount by using add ref unless zero. We are guaranteed to have > at least one stable reference in slow path, so the simple atomic add > could be used. The performance difference should be trivial, but the > misuse may be confusing and misleading. > > In another thread [1] a kernel warning was reported when pinning folio > in CMA memory when launching SEV virtual machine. The splat looks like: > > [ 464.325306] WARNING: CPU: 13 PID: 6734 at mm/gup.c:1313 __get_user_pages+0x423/0x520 > [ 464.325464] CPU: 13 PID: 6734 Comm: qemu-kvm Kdump: loaded Not tainted 6.6.33+ #6 > [ 464.325477] RIP: 0010:__get_user_pages+0x423/0x520 > [ 464.325515] Call Trace: > [ 464.325520] > [ 464.325523] ? __get_user_pages+0x423/0x520 > [ 464.325528] ? __warn+0x81/0x130 > [ 464.325536] ? __get_user_pages+0x423/0x520 > [ 464.325541] ? report_bug+0x171/0x1a0 > [ 464.325549] ? handle_bug+0x3c/0x70 > [ 464.325554] ? exc_invalid_op+0x17/0x70 > [ 464.325558] ? asm_exc_invalid_op+0x1a/0x20 > [ 464.325567] ? __get_user_pages+0x423/0x520 > [ 464.325575] __gup_longterm_locked+0x212/0x7a0 > [ 464.325583] internal_get_user_pages_fast+0xfb/0x190 > [ 464.325590] pin_user_pages_fast+0x47/0x60 > [ 464.325598] sev_pin_memory+0xca/0x170 [kvm_amd] > [ 464.325616] sev_mem_enc_register_region+0x81/0x130 [kvm_amd] > > ... > > Fixes: 57edfcfd3419 ("mm/gup: accelerate thp gup even for "pages != NULL"") > Cc: [6.6+] So we want something against Linus mainline for backporting ease. > 3. Rebased onto the latest mm-unstable mm-unstable is quite different - memfd_pin_folios() doesn't exist in mainline! So can you please prepare the fix against current -linus? I'll hang onto this patch to guide myself when I redo Vivek's "mm/gup: Introduce memfd_pin_folios() for pinning memfd folios" series on top.