Received: by 2002:a25:ef43:0:0:0:0:0 with SMTP id w3csp55687ybm; Tue, 26 May 2020 10:35:50 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzn2LGsFnBYTTG/0IYnmiz3caYqszUvMWr/OTOIWFizU1ZFJtA1AYKIyWaWuHw78pZ//3gK X-Received: by 2002:a50:8707:: with SMTP id i7mr12990255edb.180.1590514550364; Tue, 26 May 2020 10:35:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590514550; cv=none; d=google.com; s=arc-20160816; b=lsXjGHVwEUkyfusihIEnqNYhLc5QGZ5HJfLWI1w2Wc6bwfa2G4JccokoThFUATzDBb /ybqEqypMwtgMv5dkQNt1LRCJv7fIiqSzQ6OjmtRtHjnkmR3r9GMQG5VQEC89+SWRAgh 0eoqb40vX6cnZW1CoS/KAlgYXK/tQwLeMF8nDX+LOkUnazD5f+Cr02QdN0sOFOnvt17b tcE0LDW9iFiEXdVX8jXjIC4F9xmCAn0Fp0iIOiuocCGBwKS/qhX2YRSh4sltiXE9XS6j eRwuu1vRtm+SWPnS5yPe90rKuspwBZsI4Vkrdky4Dk37LKsvDyNuauzPS6xh1qrlxsLQ C6vA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=slp5eJ2mZIMCA+ZpbNmFSJVCcGG/xKdMIEJJEz5RAdI=; b=rHFHlsef6sIlYxzgLwL4/oaVo5zaWn0cv0rlbgH5vhz0y3kayiRVFZht6PiAJLccPU w4j3Nn44c8f6FcIj7rIfinGEIobZ6QfI51w2kpBdGckbYIl+M6BUJAmI9lLBQBX1qlDn irYaw29bnDudyIbYH3qNEyxRVDEN7ZBLFbaVeQaGfk6exQWxMpjOAKRrZ7Qz6ryCVCVI EzeZtAF1tq5fCP/CXz+F3hy/QEcnxVwen7/JTYc3CbV/dx0YPcHG2WbLe/DwTfNoIXhJ gqZ+r6T3GNod39qQbchlb51+m96s39c5SxWiylFVxxMVc65CABb/1Kgxd0qHzOHsaNKB csSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=dvcazpi+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y17si261903ejq.430.2020.05.26.10.35.27; Tue, 26 May 2020 10:35:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=dvcazpi+; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729968AbgEZRdR (ORCPT + 99 others); Tue, 26 May 2020 13:33:17 -0400 Received: from mail.kernel.org ([198.145.29.99]:50148 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729876AbgEZRdP (ORCPT ); Tue, 26 May 2020 13:33:15 -0400 Received: from localhost.localdomain (236.31.169.217.in-addr.arpa [217.169.31.236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 36A0E20873; Tue, 26 May 2020 17:33:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1590514394; bh=90hS4ysSkB3At6pJSrj//l8AEpAJD3432HsLEWyyII8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dvcazpi+Z0qahVu7CX3PYRAfva1WMO/6AnLaaEnMQ2h9DP7Z52oA1EreMfDuK66ZI NXqAqpFj80/H2swoSKh3OjaWs2bLTR+ysGXeaw8pFGOPlY2Wx/oDzawgjaGDuMZlYo UK4E1EDFOGzLkd3py99/natuZ0xTvr/ce9a5+mCk= From: Will Deacon To: linux-kernel@vger.kernel.org Cc: sparclinux@vger.kernel.org, Will Deacon , Peter Zijlstra , "David S . Miller" , Guenter Roeck , Mike Rapoport , kernel-team@android.com Subject: [PATCH 2/3] sparc32: mm: Disable SPLIT_PTLOCK_CPUS Date: Tue, 26 May 2020 18:33:01 +0100 Message-Id: <20200526173302.377-3-will@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200526173302.377-1-will@kernel.org> References: <20200526173302.377-1-will@kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The SRMMU page-table allocator is not compatible with SPLIT_PTLOCK_CPUS for two major reasons: 1. Pages are allocated via memblock, and therefore the ptl is not cleared by prep_new_page(), which is expected by ptlock_init() 2. Multiple PTE tables can exist in a single page, causing them to share the same ptl and deadlock when attempting to take the same lock twice (e.g. as part of copy_page_range()). Ensure that SPLIT_PTLOCK_CPUS is not selected for SPARC32. Cc: David S. Miller Signed-off-by: Will Deacon --- mm/Kconfig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mm/Kconfig b/mm/Kconfig index c1acc34c1c35..97458119cce8 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -192,6 +192,9 @@ config MEMORY_HOTREMOVE # Default to 4 for wider testing, though 8 might be more appropriate. # ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock. # PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes. +# SPARC32 allocates multiple pte tables within a single page, and therefore +# a per-page lock leads to problems when multiple tables need to be locked +# at the same time (e.g. copy_page_range()). # DEBUG_SPINLOCK and DEBUG_LOCK_ALLOC spinlock_t also enlarge struct page. # config SPLIT_PTLOCK_CPUS @@ -199,6 +202,7 @@ config SPLIT_PTLOCK_CPUS default "999999" if !MMU default "999999" if ARM && !CPU_CACHE_VIPT default "999999" if PARISC && !PA20 + default "999999" if SPARC32 default "4" config ARCH_ENABLE_SPLIT_PMD_PTLOCK -- 2.27.0.rc0.183.gde8f92d652-goog