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 7501CC02198 for ; Mon, 10 Feb 2025 08:28:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0F711280002; Mon, 10 Feb 2025 03:28:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0A6EE280001; Mon, 10 Feb 2025 03:28:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E8977280002; Mon, 10 Feb 2025 03:28:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id CA310280001 for ; Mon, 10 Feb 2025 03:28:27 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 7C59147E72 for ; Mon, 10 Feb 2025 08:28:27 +0000 (UTC) X-FDA: 83103358254.23.A42E1BD Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf27.hostedemail.com (Postfix) with ESMTP id 26DB440011 for ; Mon, 10 Feb 2025 08:28:25 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=M+YP1i4o; spf=pass (imf27.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739176105; a=rsa-sha256; cv=none; b=rDixgd/JIZF1bZHg9CCBwejRoGe3bAb+y1ITLoF9BFqVl/gNrO0LSm4/AiKPBudzXJ+7ts VGKbSATx1Ij+GZgaC9pl/2ZWT7QV4+EKrX/+hTGL7mzbARAJfIFmzPYCUbzJtTsg3o9gs3 WMscukIX6tkYNRN++GUecT7EcC1WzZI= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=M+YP1i4o; spf=pass (imf27.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@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=1739176105; 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=bicHG7zjx2UMOO4n8zha5UgWZ2e74X0E23kGVMNRanQ=; b=ZzLOZmik5zb+KrFai9HgnRl+VOhwhxiUQ46NghNXObtwxC/GgJC7Yi/lxltDhWsycNsaIW +bfL+Ao0ZJ3Rm0wceExEWg6pTXPFlBHjgKqUFJpBV2YsrMRQSWwZNlx2c9ADj2CpRMjiK2 83cGOmTKobqEXRohpW3sxSXG1ZJavNc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1739176104; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=bicHG7zjx2UMOO4n8zha5UgWZ2e74X0E23kGVMNRanQ=; b=M+YP1i4ov1YX7VO7QzVXrUeDafkSoLJJxts1lQqabdATlAc+sPwGUs1he2sfHX7lV71PNV soeGAPSFKlD2tp18N94+lNkPNUVAWDSmyO9BdOS7MLWJuxHGV2I43tNp3YQHxyyiZYZyiP PzhdqJCaCloavZCLxQxwmzlDPqzDedc= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-657-PDbPe-nhMq-TTZ66pf4VqA-1; Mon, 10 Feb 2025 03:28:22 -0500 X-MC-Unique: PDbPe-nhMq-TTZ66pf4VqA-1 X-Mimecast-MFC-AGG-ID: PDbPe-nhMq-TTZ66pf4VqA Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-4361ecebc5bso22817855e9.1 for ; Mon, 10 Feb 2025 00:28:22 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739176101; x=1739780901; h=content-transfer-encoding:in-reply-to:organization:autocrypt :content-language:from:references:cc:to:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=bicHG7zjx2UMOO4n8zha5UgWZ2e74X0E23kGVMNRanQ=; b=LRtrv1qNjEzYSqlRNTy536pML0lk3OPDCsgYph7KcJwgCMeoEnO5fq4C+rumgWnnIe h5UDmlQDn00/r4YLo+kzcDc5pP3xrLdr+5hzdTnzPdGXveljhmtJXj177gAQxf2uAej2 S7xdU0cO7lACp0g8HHChSTaCZ/xp0kPR1YfnkPpfT6ZCi4keEM2/oQswhghz25QSGpIX 9/ylhQnWEJf06RZtG2nMTsSDcLWvzwW6FoVlhPuu1jErtrLwE40zhEanwCe7MCyuP6W1 XmVhRijau8Y9O8n2wEc7qBjJVTqGKX/BcYvz5gz4gcD68/pwcXqA/T+pZbrcNATU8lQv o8yA== X-Forwarded-Encrypted: i=1; AJvYcCXc3/OP+sHvy/zvUg2tvxe15kQqO6p8DB5gCmq12Vr7DTRncs3ZdEC+HdI+IurlQOwmE0DhIWL78Q==@kvack.org X-Gm-Message-State: AOJu0YzjDEJ+YyKlPIZmTZjET/VPWOxAGrzti2h0ri07YWbnuzop10Hm u98Dtbwi3P8LuKAuDIKJADCdSfTb6Q5k9G1r/PiGmyoGRKsN0rXCA9jY+miI5BS+ulEiA4ph1Ju dVxA+18oIklUST1wAVMLLmzNZKv+W3vbkWWZdRDXg3lS9cfKm06vU7MEz X-Gm-Gg: ASbGncsL+beiWTw1YLcd7vF5SwqoI28O2nvRBRY1LmbL2/aLP+zhfUkVRK6Tr0pXpFb H0uHmzD9UEANLDRr6gnKtfuEnV7djNWTAZGZCBCUHFZMJ4tKCO3Wq2mmRGPYcwynZer3ieKwuLL txzUwqTYWTmS3NWWUkfsyTpt4bKwSVWDXYDhf/q0h2h3zqwsXwjXh4EwLBSakuk3Okb0B2lCjWv 6KSwMOTCkTQTHbjg8dSg6S036X8hf8t3wrwd8hOBJ2SqSvNsb25ttjrW9AZGiUnWVLmUy55JVnb Iv0CyCmqDulD24G/DtXSVpdXmjJ40/YbhH+nO2VOr/739z/GNbQJYpe7ndYuzyR3gu0soxnp83F 5FGsygYMaj0n6ThVlp7a9xCc6FpvNTX1c X-Received: by 2002:a05:600c:3c8f:b0:439:3e90:c535 with SMTP id 5b1f17b1804b1-4393e90c71cmr40397975e9.0.1739176101211; Mon, 10 Feb 2025 00:28:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IGVe5xArCsukLiDpa1Z9D7uo1ruE78+ptabaMmnnCZmgUIOVJ8TIj/+l2P6inhlogLtasPzog== X-Received: by 2002:a05:600c:3c8f:b0:439:3e90:c535 with SMTP id 5b1f17b1804b1-4393e90c71cmr40397635e9.0.1739176100798; Mon, 10 Feb 2025 00:28:20 -0800 (PST) Received: from ?IPV6:2003:cb:c734:b800:12c4:65cd:348a:aee6? (p200300cbc734b80012c465cd348aaee6.dip0.t-ipconnect.de. [2003:cb:c734:b800:12c4:65cd:348a:aee6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38dd295200asm6517640f8f.44.2025.02.10.00.28.18 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 10 Feb 2025 00:28:19 -0800 (PST) Message-ID: Date: Mon, 10 Feb 2025 09:28:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/cma: add an API to enable/disable concurrent memory allocation for the CMA To: Barry Song <21cnbao@gmail.com>, Ge Yang Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org, baolin.wang@linux.alibaba.com, aisheng.dong@nxp.com, liuzixing@hygon.cn References: <1737717687-16744-1-git-send-email-yangge1116@126.com> <28edc5df-eed5-45b8-ab6d-76e63ef635a9@126.com> From: David Hildenbrand Autocrypt: addr=david@redhat.com; keydata= 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 WNyWQQ== Organization: Red Hat In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: hP0xiddjEQcd0mDt3I-9f8gaIoWnbn95PzeBPHiw4Pk_1739176101 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Stat-Signature: 6p7ditsmcmtagxh8r4xecyiir4scmzi3 X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 26DB440011 X-Rspam-User: X-HE-Tag: 1739176105-519510 X-HE-Meta: U2FsdGVkX1+tD8xU9Qrzsm6vM+AAAoAhWnDL+G9EzNfxICqwXA+rgpfXW1jcZMHy0oRLCb0c8ZGGuRxDmREjpmhkErKIXDL4PiaFBo4Cb/h2LdTzt+A2Go5L51TXxXazr9wYtlDjDyyfb7gNhcVdoamPxi2S2VEZXb5gruvU/yClSL4X50c1Zyz+a7iQwU+DvNdx0HCjeSix8KY/8dgbp57DHL5i9R0hqWT9WaBuu6gbBkaFxjvdZ77zrJPcKe7J/vZWN2AwD6hXj2I4QwRITwI0Rb0gAn06C8UKy3JFjJZsX3l+HhxyT1ePxOmZEjrGyTSCEehqPjOhLhOSWtexDXI6K4xQz8D1al8tFX4QyqxxPubOj5xqetup7wNxt0WB8icewMIJRyoF72ijFIHFVhE2IOdoTfj2xCQnzl6GjUOJBuApsfCB32++e14Ov/PS1gDALi59zAzVKTJuHbZVj1yqW+EJQiaXHjWIibvVINQdCd8zoI/66KW9ssQ5PAbNJvHa3hFuzt7/rEKw8VsLXyznaSYxCZkDA6YBf0MXeFur+rFKPjhorSMmYFz2nY4XS9/2UisyH1xpJ8wcXUn7sgaHgtAPEcOEsGNCoUFnFTSeyGdNgwqTjA5ANT/HSFGdhppv1culVogZL16GkwNhjg27Bu9YEWbl61pwnnwseYAKDiZwE0me7GY+GvOV1VI9wGRZLU99p1NlQNefGJdOd+qcNqjfnhWioS+4y1WiRRtEru1GlH/xC7HNL2xJ4zc2T+98TQiEdBDyAptLn9VDMDLkmKxWa5UFxkChW/Fwf9Hu7J4csxqyOrmmmjy742nDwmRHs/7PMA0pBkjrq5NSyR8mpX3dLhS6rvc/AzhmlIOtGJY4gD3qLFdy+KtU4RMFIeNG2Xs1xmJJQnRCZQ+PhcJ/NhrNXZ16pcPlEl+Gxbz99/tpIfz4/QGChi+e1pJyP+qkprFYcxNhhF30ftl cAfpmAlq 4qDn5fa43Gng9P6HIy+PTA+4uA3/XexYrHr+d+lvr6o+UdVqD9DJjQgC6jfBsGHiON3Qv57m/dapoiErBAvi/JZgsxKowgSJ7jIDKnAK/VDFGBmJv1Cdx4dwUzugX50oJbU+hhpbaTvdbBNgtdyXvB+bFu1pFCEkUqdJ5XXyjDqif7GgfVb9r8xVztu5IB3MIPGuorP6VvYBClNZTN9GlVPxncozdH/KuVgGZQhBURejdSrbnO4C0VjRakdkovbWRgjCIw17K/TNaVE8vVqlLDIuwaZgzvfk/kBo/DkIQ+esG8SfEFlJzZnga++4OAhY6D7A/nvhxl0JUcwq1BMjydGBiXZNN5KKvEpCdUxg154DBTGmX5md6k2AU9wxSMY65Dh6ydWVRBTeXg9svfMtrrCCYihkkwTwqN7Iad+ZSeXGpAxHpb7RWKcO5/osolLGe2w/jmSHYfQEeQHJNPwm64HCbgvCUk0VGdMsL 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 08.02.25 22:34, Barry Song wrote: > On Sat, Feb 8, 2025 at 9:50 PM Ge Yang wrote: >> >> >> >> 在 2025/1/28 17:58, Barry Song 写道: >>> On Sat, Jan 25, 2025 at 12:21 AM wrote: >>>> >>>> From: yangge >>>> >>>> Commit 60a60e32cf91 ("Revert "mm/cma.c: remove redundant cma_mutex lock"") >>>> simply reverts to the original method of using the cma_mutex to ensure >>>> that alloc_contig_range() runs sequentially. This change was made to avoid >>>> concurrency allocation failures. However, it can negatively impact >>>> performance when concurrent allocation of CMA memory is required. >>> >>> Do we have some data? >> Yes, I will add it in the next version, thanks. >>> >>>> >>>> To address this issue, we could introduce an API for concurrency settings, >>>> allowing users to decide whether their CMA can perform concurrent memory >>>> allocations or not. >>> >>> Who is the intended user of cma_set_concurrency? >> We have some drivers that use cma_set_concurrency(), but they have not >> yet been merged into the mainline. The cma_alloc_mem() function in the >> mainline also supports concurrent allocation of CMA memory. By applying >> this patch, we can also achieve significant performance improvements in >> certain scenarios. I will provide performance data in the next version. >> I also feel it is somewhat >>> unsafe since cma->concurr_alloc is not protected by any locks. >> Ok, thanks. >>> >>> Will a user setting cma->concurr_alloc = 1 encounter the original issue that >>> commit 60a60e32cf91 was attempting to fix? >>> >> Yes, if a user encounters the issue described in commit 60a60e32cf91, >> they will not be able to set cma->concurr_alloc to 1. > > A user who hasn't encountered a problem yet doesn't mean they won't > encounter it; it most likely just means the testing time hasn't been long > enough. > > Is it possible to implement a per-CMA lock or range lock that simultaneously > improves performance and prevents the original issue that commit > 60a60e32cf91 aimed to fix? > > I strongly believe that cma->concurr_alloc is not the right approach. Let's > not waste our time on this kind of hack or workaround. Instead, we should > find a proper fix that remains transparent to users. Fully agreed. IIUC, the problem is that we find a pageblock is already isolated. It might be sufficient to return -EAGAIN in that case from alloc_contig_range_noprof()->start_isolate_page_range() and retry in CMA. ideally, we'd have a way to wait on some event (e.g., any pageblock transitioning from isolated -> !isolated). -- Cheers, David / dhildenb