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 47F63D6DDEC for ; Fri, 15 Nov 2024 09:30:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 97FE76B0082; Fri, 15 Nov 2024 04:30:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 908816B0085; Fri, 15 Nov 2024 04:30:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 782C56B0089; Fri, 15 Nov 2024 04:30:30 -0500 (EST) 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 546D86B0082 for ; Fri, 15 Nov 2024 04:30:30 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 02C57813BF for ; Fri, 15 Nov 2024 09:30:29 +0000 (UTC) X-FDA: 82787807634.30.AF81E8E Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf27.hostedemail.com (Postfix) with ESMTP id E466E40003 for ; Fri, 15 Nov 2024 09:29:41 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=GvhZklWI; spf=pass (imf27.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731662790; 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=nYyixuKVzYBcQTLRFxXlHciXBG+s7v14S0hRbAQwaNI=; b=Uh1pFHvkIqblgzcclJk8//kNgiJIlAQaZdVD0f4njmAlGcLkC7gEjT5GnUWpGuYEGFQI1i JuBMOnCSx4/ySU5FHdvkMh9pEns5lERWffJYX9dsnNIs5LXv5s6WyVwXGzWNWbeP7vXWlw Hmavgv1RCToEV/m8mJ6AbyO5XlZXIMQ= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=GvhZklWI; spf=pass (imf27.hostedemail.com: domain of bhe@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=bhe@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731662790; a=rsa-sha256; cv=none; b=n0cRSnxW51PbNnkoEWF38uXEMuap16W6/W6E6PuX/Fnu/H6GJ92Znl3FIBl/VCqI3dFsjZ 9D4XIjel8lD/E1/TypphLYPFLd3STg5bQL55imn9eIZk4JvVv58Tc+K7FutPNeXjWYtYOU gkEt9mFgHCl6UfKzxBZp/8yE7PSIvrc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1731663027; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=nYyixuKVzYBcQTLRFxXlHciXBG+s7v14S0hRbAQwaNI=; b=GvhZklWI02VHm6AuA3mrXnHTmJTyXQMmHd7mECnaKQdN5vUYpo6IQEex+8kNXIJwBuONAw ppxkBklfqsqQq1AWOlJMG8T+u3M/dFnsjRunqdq9miAXm1TZ7Bkr4L5B8oVi6ZzHHv7Pam QRoBMqBU4dg/tDlxjXpUnDPUes4SBKA= Received: from mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-14-pEcRDYRUN_6afERbkTTXPQ-1; Fri, 15 Nov 2024 04:30:23 -0500 X-MC-Unique: pEcRDYRUN_6afERbkTTXPQ-1 X-Mimecast-MFC-AGG-ID: pEcRDYRUN_6afERbkTTXPQ Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 0AF361945114; Fri, 15 Nov 2024 09:30:20 +0000 (UTC) Received: from localhost (unknown [10.72.113.10]) by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 2783F1956089; Fri, 15 Nov 2024 09:30:17 +0000 (UTC) Date: Fri, 15 Nov 2024 17:30:14 +0800 From: Baoquan He To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-s390@vger.kernel.org, virtualization@lists.linux.dev, kvm@vger.kernel.org, linux-fsdevel@vger.kernel.org, kexec@lists.infradead.org, Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , Eugenio =?iso-8859-1?Q?P=E9rez?= , Vivek Goyal , Dave Young , Thomas Huth , Cornelia Huck , Janosch Frank , Claudio Imbrenda , Eric Farman , Andrew Morton Subject: Re: [PATCH v1 01/11] fs/proc/vmcore: convert vmcore_cb_lock into vmcore_mutex Message-ID: References: <20241025151134.1275575-1-david@redhat.com> <20241025151134.1275575-2-david@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241025151134.1275575-2-david@redhat.com> X-Scanned-By: MIMEDefang 3.0 on 10.30.177.15 X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: E466E40003 X-Stat-Signature: xt3roo7qt7edhe8fghdezfatbz1ca437 X-Rspam-User: X-HE-Tag: 1731662981-813861 X-HE-Meta: U2FsdGVkX19b982+tEiz4YmfkadomHWMKu9umjalcUlTYjt8vSPiZnSkUdu5bnQUhS2J1JxWbNQAzBk38NxlQy6A8sWBmt88ml4x2obWoTZfBMkNdB9Tr18zF7oE8MXnUtgqpI3U71mr84MbXaKxhsO9jBKGWmur8CmAiz1ArLniDeGTLWZ0UQA4zog/mtQg7zPss+4UR4WCByeCsCKtOt8Igjj+Lr1fC54Gh25pDHz/Cu6v4tDDreDuAEq0HprI11v/XXd3xMeVTzO6j8oaNIyDfDjwwms/qWoQ9trZsfK+Cob88jU6+1XQ0epwK99uoA4ilNf9cLthSRinp9UY03AihJEAV7gMckgIsISuqICnkgfoQ2ji3SK6Dq72cc7ihNmzYDaF2z2Dl2qodVifsQRlhYvknwSjcJw+UCnibdylXa83nf6zqdb0fkNaXCMXwzwS8xAYBPCaHzfb5A2ldyWjGofGS3iORlDoQwF4WTS42g5AHBGUSk2i8tmZ3rklPj3afcvAdgiKt74+9vKTnJHvKSl4won1pDkMjHMOJzeZKyTk3zCdRFSFJ1AWiTSw59JSplALox8Fgb+/wRkokSzT5feKGuq0QJJjP/J4NYmwfhd2xHeRnvHIQTbdARxStXqtKYHLmDJetT0twc/WtyZ4NRSbOYduqsXzMAQxaIzwA3o8XEPA0spFXoR7gfblSvXKlIhxNvOfDxqj9z1e/2ftPMf1PDwoYSV8m7SU8Lf/JCFNP1ds/p/jffForEwSkCDA9N9+V9hnxsi8lxnfIyNvOUB+Y0d80UTplEckUbDpcm/H7e3/kFfgSo3wb8YhLc48opk22sVBBEARSkvmij/wVOeMUdwt9dwcfQB3oo1SA+mbOvue2lWe0fYjS5vhCC/XXa5FoS5uZ/gHQOhBg0O7o7mVgcQLdNziLlP8Y+Dr6ydtRlxBmyJSOe4xhvPyIUBw1gS5zDOgp0BxiNR ZlpgccxK RNLGRaNJRkvYN4/aety4frgzyUVkLrS4gF4tSrO14EZEvTNNMrU19DVFNOJDdhOqS8qt+grYDj+v63Cnl/3jX70uyqyrkx7KSPCtEqCmb2Q3MmEERxOk7hWNKrMQi9su+z2/jtejXavWkIq2rf1oTtgoPAPPTi0C98MndvfJy1QIh0bOYQRccd6JWqdADLgzLdjRn4kKIEPokTJ4oglFJSBNk/ndzOc+jjIs4hQ3bxvhRrExO67DcBxnCfgCxrkjO7MtRzhVcN5uHQKelhY/RbN6DcCoOgu35JhHxR/YMnmoa2XoSDo+bas9jMb+kqJD6mdctrQRBJpyTsAnjtN2qxyabVjx7ektuQq1GEEg/99/aHNnOI7WfK3lACZspD8jRERC9OLxdaAoF/PIW3KpH/fU7xHrgjYiP6hVvk9J7aq5OLwg= 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 10/25/24 at 05:11pm, David Hildenbrand wrote: > We want to protect vmcore modifications from concurrent opening of > the vmcore, and also serialize vmcore modiciations. Let's convert the > spinlock into a mutex, because some of the operations we'll be > protecting might sleep (e.g., memory allocations) and might take a bit > longer. Could you elaborate this a little further. E.g the concurrent opening of vmcore is spot before this patchset or have been seen, and in which place the memory allocation is spot. Asking this becasue I'd like to learn and make clear if this is a existing issue and need be back ported into our old RHEL distros. Thanks in advance. > > Signed-off-by: David Hildenbrand > --- > fs/proc/vmcore.c | 15 ++++++++------- > 1 file changed, 8 insertions(+), 7 deletions(-) > > diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c > index b52d85f8ad59..110ce193d20f 100644 > --- a/fs/proc/vmcore.c > +++ b/fs/proc/vmcore.c > @@ -62,7 +62,8 @@ core_param(novmcoredd, vmcoredd_disabled, bool, 0); > /* Device Dump Size */ > static size_t vmcoredd_orig_sz; > > -static DEFINE_SPINLOCK(vmcore_cb_lock); > +static DEFINE_MUTEX(vmcore_mutex); > + > DEFINE_STATIC_SRCU(vmcore_cb_srcu); > /* List of registered vmcore callbacks. */ > static LIST_HEAD(vmcore_cb_list); > @@ -72,7 +73,7 @@ static bool vmcore_opened; > void register_vmcore_cb(struct vmcore_cb *cb) > { > INIT_LIST_HEAD(&cb->next); > - spin_lock(&vmcore_cb_lock); > + mutex_lock(&vmcore_mutex); > list_add_tail(&cb->next, &vmcore_cb_list); > /* > * Registering a vmcore callback after the vmcore was opened is > @@ -80,13 +81,13 @@ void register_vmcore_cb(struct vmcore_cb *cb) > */ > if (vmcore_opened) > pr_warn_once("Unexpected vmcore callback registration\n"); > - spin_unlock(&vmcore_cb_lock); > + mutex_unlock(&vmcore_mutex); > } > EXPORT_SYMBOL_GPL(register_vmcore_cb); > > void unregister_vmcore_cb(struct vmcore_cb *cb) > { > - spin_lock(&vmcore_cb_lock); > + mutex_lock(&vmcore_mutex); > list_del_rcu(&cb->next); > /* > * Unregistering a vmcore callback after the vmcore was opened is > @@ -95,7 +96,7 @@ void unregister_vmcore_cb(struct vmcore_cb *cb) > */ > if (vmcore_opened) > pr_warn_once("Unexpected vmcore callback unregistration\n"); > - spin_unlock(&vmcore_cb_lock); > + mutex_unlock(&vmcore_mutex); > > synchronize_srcu(&vmcore_cb_srcu); > } > @@ -120,9 +121,9 @@ static bool pfn_is_ram(unsigned long pfn) > > static int open_vmcore(struct inode *inode, struct file *file) > { > - spin_lock(&vmcore_cb_lock); > + mutex_lock(&vmcore_mutex); > vmcore_opened = true; > - spin_unlock(&vmcore_cb_lock); > + mutex_unlock(&vmcore_mutex); > > return 0; > } > -- > 2.46.1 >