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 0E319C021B5 for ; Fri, 21 Feb 2025 22:29:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5FE706B0082; Fri, 21 Feb 2025 17:29:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5AE296B0083; Fri, 21 Feb 2025 17:29:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 47F9F6B0085; Fri, 21 Feb 2025 17:29:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 2A1CD6B0082 for ; Fri, 21 Feb 2025 17:29:47 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id A777C4C53E for ; Fri, 21 Feb 2025 22:29:46 +0000 (UTC) X-FDA: 83145395172.11.FE41B58 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf23.hostedemail.com (Postfix) with ESMTP id AA18A140005 for ; Fri, 21 Feb 2025 22:29:44 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Vn9NBHWb; spf=pass (imf23.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.178 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740176984; 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=VGBXu4U29a6azAmCs2zO/ixtci51PmTK7x8U4xsF3D4=; b=gEicDk/fxV6GAN6XXYz8jr7UV69OlIPplrY2gMOF9whIlSpM0VwEtewpleZ2MiFejTDVRi HEGkPIlhPt5gJDphFDWfwuOp7vlCUzlXnOjqWYMWZ6BK/K1u38kfO1xzBiz1Bl6puHlvZc 9aWTwRPcmlhJctJjd4rAd6mTMs5G7gk= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=Vn9NBHWb; spf=pass (imf23.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.178 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740176984; a=rsa-sha256; cv=none; b=kjKGElgtVmsZKKxUtdltQwlyLQG8h4h1ZC/oE3Tkuri7vugHzKDG1qKBfBWQRd+jFXfRjf zg/huGnKoAo8YSPbevmEYqqjv5DAvgg4n0b0CUVAWyklo0OR1BP3hk6UF0bkaLn02cfzns z6PqYOCbPEXcwDQFmu9YHXvKP2SN9i8= Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-220ec47991aso36920805ad.1 for ; Fri, 21 Feb 2025 14:29:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1740176983; x=1740781783; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=VGBXu4U29a6azAmCs2zO/ixtci51PmTK7x8U4xsF3D4=; b=Vn9NBHWb7x7jVhkDPNddemj2YKHiqs+zRskyB3Zku4bjfmCH0dVqmBcsu8klar268u 2jPbSfq+tV0pEFR55Bw4Irp382EUO/0N+hySloZtogvCUuX0/krCWanQSl7rP2NXVx/B p0Du6c2C8QpdpvTjaD1eUk1pdHKbKz/y8UU6M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740176983; x=1740781783; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=VGBXu4U29a6azAmCs2zO/ixtci51PmTK7x8U4xsF3D4=; b=wwNu9m9qccvH6d7r29Ssm1uq8OAz1JRnYdO7+BVptsINlTnyjNFvTNP1lYp6rOAzb3 EYlDtEk2OUDbDjtn2PthKLQIwm3lB3G0bzGi/9N4ld7hW9GUWTDEJWbjYRL+8OAcI3sh qxhgpRzXAaxi/uq2jEffNTeLE1N+BZJDpCr9O2XycFDbxg23fjOQjjgNbdZ9XpmFnwOm MGZ23VJOv/WkUsTu3A5i5QLhNVfVeIRvhuSuvtd5dpRkuj/EiLHzqzsHmg58ENj1WCQd M7h0QO3xgGBzpihfZ4Pd6jIanjrLSplM+Z1GW7JAp3qx99RYM+XMOXRrrkaEbEl+6bgN 639g== X-Forwarded-Encrypted: i=1; AJvYcCXYBJg4OmvdcfUR6axdcqOFZl72MDH00Yfc2+gAXRscFCmbtqEkjqnK9Vvdl1UMZ8B7BtI2cueo9g==@kvack.org X-Gm-Message-State: AOJu0YwV9wvDeTWHEjbxqL7CZO9fze53PC/Ab65kOBB0kuMTDR3TqnEq DAQ5xnW4xOMPJgA120rANASq8nwqHDGguLNI/ynwcQKrTlyyUxUK0GLuhHmyDQ== X-Gm-Gg: ASbGncviao3R5frIWJbW6x2aWO9QBa5en8RGZqr1Qd30zve7TvcYX0oflbw7hpULQs1 HDMdl6y97t+UYlmxNAN2h7Hfn3tOM4lMcTyCqmKnLAZwHhk52nYLhETM8FeGpuowQG4I0MiHOVb 1Gjta1B0XHKpTJ74dvVBs2+UsO3yzG15dvcjCaDiVduSIVjBl4faNcOChRazbTdW0dskPvGziMg AUSp6G3aqRBBTn559itetPHQXu0JYC3SuY0WxxJ04s6X1CouAEM+vXknp2nq3sAD6jV6Xci1RnI s9N/Iq9Dhl5YksK02WIGm1ZA7Xt1 X-Google-Smtp-Source: AGHT+IGPiSSVKKMNHdWyLRDcbbVFWNsxuM2v+W0QIy4BnVbABFMPbCzp35uRYILItDPjFLUndT/VUA== X-Received: by 2002:a17:902:d54d:b0:220:fb23:48e0 with SMTP id d9443c01a7336-2219ffa7caamr91236545ad.38.1740176983573; Fri, 21 Feb 2025 14:29:43 -0800 (PST) Received: from google.com ([2401:fa00:8f:203:f987:e1e:3dbb:2191]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-220d5348e68sm142410025ad.28.2025.02.21.14.29.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2025 14:29:42 -0800 (PST) Date: Sat, 22 Feb 2025 07:29:36 +0900 From: Sergey Senozhatsky To: Yosry Ahmed Cc: Sergey Senozhatsky , Andrew Morton , Hillf Danton , Kairui Song , Sebastian Andrzej Siewior , Minchan Kim , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v7 11/17] zsmalloc: make zspage lock preemptible Message-ID: References: <20250221093832.1949691-1-senozhatsky@chromium.org> <20250221093832.1949691-12-senozhatsky@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Stat-Signature: peanzzywr1wi5tnb9d8o41rotj7f8ad9 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: AA18A140005 X-HE-Tag: 1740176984-180926 X-HE-Meta: U2FsdGVkX19ewBRbAkn/7tYzHmJxK9stT9Qb+vaKaLjr98K9WfT+yEyYrkQSwCYUMnF6Ss1Q/cDtm2lH/V+/ssr1FnNFIgQ8Ru+y8r8vbnNyymnHzAbJht+ZH6s83Fn1ToKD4pEFw4sn6ZkE4jI2aRCdmWwfIYx1natX3uJ0nYwtME/1z+m/yTdGD1YesAXkbQhKM9dRoU1DQxdylVJCuiL7OoBMNp/WSBke/80+V5oCaNfh977vfcLKTN2+QLV0pbAwRgsSskozdaTM2G9eFijeX9lj+V80JSowtKOfEJDwZv4qso1i5QDVqJujuvbzx192heArPAiC2ozi/I2mta5GSypARdtC8ZfH5kaXjVMU8KpPYxSAjtcP0ZSaEU7rjD/qu1EQBS/zT9Bu/iBKTdBLNjEGFJnJKC31Mt0lZY1ZP2ZPKXDzRplfs/LAF96svTjzQCn5Q/dEqGaHE4M/9RaVdArgPXuWXNllf/o6W91dLT56JnT+hZZ0TKYUAzBnUCUTrkSF+sNQqAEZIBop/Sc420JWOHieLWAT0ttuGRAjHkiiEeI3WSZqo4Zq1xny7nODb5v6qWuA44ZTKA30Y99P8DB99/rG111ea5PYbnbUqMeL/ZFOy7b0N0JqZvZmiYfMZ3vRsQRpJW6RXpkgn1bD11hEwWhMirI9lGUD0r2RI/JA0mvf2Wr7SSSeG58L6xAnqnIaUmPbzblyHaonOikTHMnYSXIa58+rWhYlvkQqJikxMmIr3yS7PGpVrfpop5j3lTA+//TDrnc3LNIF18r3EJ+rsvCN557GsVPWfAlYWe2GMVDtu/Yz4yKnLr/1inZJA2L7bm+ag8cPApv1aKcE/LAfSfmD4vIJbv8vUU0SbQtPBwv25bCKcAOjFyCZ5fnI91TYtqEkD8kPV8IKZhvij6M8F7Se9JyeIvB6jX6+CrDjzfdyG0J92yxaXLRMAic09aAZRm6xNFJbV0g VhrCjC6T Vj90zmaiTPjtaaKvZxYzs+iRRHxn1jhSJeQq6TDH3ZLkSDgvfmH3kswcmVe6dgzm3vs8K+ppZMLoRv4gzaOrzpe90hAFz2uf7DO5/3BAXyg9aoKkJii4Np3a/0VEqF2yiM0moPFsIVexIeTRvcvr+pAExKEj5wgOEW3jIMXUFKPubbFidyptnm+bJNCXDPez9CTcvKusVUlX+8N01htZmlOSf1ux8oZNDa0Yw/MsYMPDWncqQo/D/C05x4XAe6RVdHy3gVyaCKvgPL39xkoOGH9y+QmjAXBnl6AmLcK82+gRI9a42xmP6sjqmQL9uqVHKm2qyCiv4FaBWdYEVkrE2JJ4bZalH8MmFcvhTV5legKpykFeLuc3APIx/LQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.002165, 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 (25/02/21 19:52), Yosry Ahmed wrote: > On Fri, Feb 21, 2025 at 06:38:04PM +0900, Sergey Senozhatsky wrote: > > In order to implement preemptible object mapping we need a zspage lock > > that satisfies several preconditions: > > - it should be reader-write type of a lock > > - it should be possible to hold it from any context, but also being > > preemptible if the context allows it > > - we never sleep while acquiring but can sleep while holding in read > > mode > > > > An rwsemaphore doesn't suffice, due to atomicity requirements, rwlock > > doesn't satisfy due to reader-preemptability requirement. It's also > > worth to mention, that per-zspage rwsem is a little too memory heavy > > (we can easily have double digits megabytes used only on rwsemaphores). > > > > Switch over from rwlock_t to a atomic_t-based implementation of a > > reader-writer semaphore that satisfies all of the preconditions. > > > > The spin-lock based zspage_lock is suggested by Hillf Danton. > > > > Suggested-by: Hillf Danton > > Signed-off-by: Sergey Senozhatsky > > FWIW the code looks correct to me, but I don't trust my locking > knowledge enough to give a Reviewed-by :) YOLO-by: :) Thanks for all your help!