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 A59ADC02181 for ; Fri, 24 Jan 2025 05:06:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DB96B28003B; Fri, 24 Jan 2025 00:06:50 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D69EE280039; Fri, 24 Jan 2025 00:06:50 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C580428003B; Fri, 24 Jan 2025 00:06:50 -0500 (EST) 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 A61C3280039 for ; Fri, 24 Jan 2025 00:06:50 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 0092380C00 for ; Fri, 24 Jan 2025 05:06:49 +0000 (UTC) X-FDA: 83041160538.09.70B6C61 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by imf12.hostedemail.com (Postfix) with ESMTP id 14B0140006 for ; Fri, 24 Jan 2025 05:06:47 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b="RZz/yibI"; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf12.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.176 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737695208; a=rsa-sha256; cv=none; b=c6eg/wsXX/t0KJPpujLOC+8qrBFgzAhd5dhY+9kl1L81uKcru2KU8lTcDXNtLgKLS2rfam pmv5sLOxYf8sVZC/frjcLHFCMRAYyCqD9aI0wiJBTpi/1clCeotnJrCSBszal4JUxXp8RD HKJ+y/tnZ7Yhc09/uFqZAFK2DQLtbXE= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b="RZz/yibI"; dmarc=pass (policy=none) header.from=chromium.org; spf=pass (imf12.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.176 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737695208; 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=xWtAIckrm1F/dB4iVM85fMp7jgR2xpoTNvgxEQohB8M=; b=MCGJOminDwmc3iq2Y2Th3XcpF1JcA435FD8UNQOC7KDJ6YiLzwAtDn0Zj8wMOL53qVL7Oj w1bEYor5GFls0Y8aGB5x5Srh5tnrSJRNUif2Jrm8xupeQmfRQBwDrX95C/WI528sSvlPe9 /DADhQOVavxcDiq5wSzYbx391udEBMQ= Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2163dc5155fso30339655ad.0 for ; Thu, 23 Jan 2025 21:06:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1737695207; x=1738300007; 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=xWtAIckrm1F/dB4iVM85fMp7jgR2xpoTNvgxEQohB8M=; b=RZz/yibInlScyQwCZ4sWiO6I6Iz0kiPtONZisbxjFUgGIH2RfJ24z6gUxfHvD6va9x hCI1a6XdS/XNIdhvB7NgXRSaKBdl8rZEjDDnTCJG3DlWz77hm6e2kczl8jRUOeFJb1C2 hZR9hHS6mJd5ceJY3q7CIiMsx4uCvVVAdOYys= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737695207; x=1738300007; 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=xWtAIckrm1F/dB4iVM85fMp7jgR2xpoTNvgxEQohB8M=; b=PS9NF/JbDGa9xOYhSWxzLf5PHgIqDoyz1bx/4gfZHJrC9YvAMpfZzysu1CBmBoR8YG Hq80X7zLojQq7pgALPOY8BQkFHcvmyGC2vip70ryfw85YQG6mFNzNLuEmOuHEEvjhVl+ 0M7pRMRA5da4DaEczjmBdafQPPoiWD2idfagCXiSw4NLeATyvfFlpYfCbRE/pTK+E6mi BRTXZu+aKSSv8MQmGmxpJ9ehHB3VqhA6H7m18+3ky9F+KbEKj92yZfH1wsP8p3fL7YPj r2FBCmjRBiGwsWj8kF0eKztAr0P/fW2ngBh2ZyI/hheLW3dkwmuUxv+d+8drifL7eNrJ fTIw== X-Forwarded-Encrypted: i=1; AJvYcCVat3IhL8jExtv2PJgmpwJUYfglAEdiRShH+WOlEYHdc9NhdlX2MwB3kMjBK/jZyJ9KMWOlvQ3lWQ==@kvack.org X-Gm-Message-State: AOJu0YybVn9vxJ1dFDxaaBDkTqq2627s+TcrHkZk4BnCgQdQP69IpMJK 7znzm3prNEQXuErBTMa8+mslZLJBZnrCWHyEQXz/av1bcKiEVCCXRzrA2yHwpw== X-Gm-Gg: ASbGncueAQnx/ZTHhgK41Yp4+tdax3JRfYJVxlpwbNR0XzDTYtKQ05/nxqotjk2xdJZ 1+EMUpQeDoQhGAlKZ8bKfLEWecFaPC/FQqDmSCDilGiek+NxI6dGy2nPS0Zu9LkkWvd+onxTOpr rgaJS1rDipK5+LE8PUaaucSVBBGasu0f3X9SShayME6mu6+lXjxar+2UB66zkMO0VLc7x+o09i3 /YXVQ01xO5FKSSgyEF4tUE/6kliG/B3xxjTW4Q5G2Ydfzh3noTiRVrjPkGfvQl9aj8T0/7HADDh 8k/tERbu X-Google-Smtp-Source: AGHT+IFQqqrfAu5J/MFubMn+4Kx+RJkPzRGjH7o1bvqAnub0y5fdVO9TfpWYDjfj35jcZAwJ3CQPBA== X-Received: by 2002:a17:902:cf11:b0:215:5ea2:6544 with SMTP id d9443c01a7336-21c352c77dfmr400638415ad.7.1737695206726; Thu, 23 Jan 2025 21:06:46 -0800 (PST) Received: from google.com ([2401:fa00:8f:203:611c:eae5:ed2c:f245]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21da414ed53sm7485825ad.203.2025.01.23.21.06.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jan 2025 21:06:45 -0800 (PST) Date: Fri, 24 Jan 2025 14:06:40 +0900 From: Sergey Senozhatsky To: Sergey Senozhatsky Cc: Andrew Morton , Minchan Kim , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/7] zram: switch to non-atomic entry locking Message-ID: References: <20250122055831.3341175-1-senozhatsky@chromium.org> <20250122055831.3341175-2-senozhatsky@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250122055831.3341175-2-senozhatsky@chromium.org> X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 14B0140006 X-Stat-Signature: g1yohhumyhej9rk5hm4xq7u9upuuya34 X-HE-Tag: 1737695207-491193 X-HE-Meta: U2FsdGVkX18TLtI5Ccetye8HKoUNyCFZa6/hFokP+txBtq61QM7yP6LDNE100w1cYHEzQwJ/fXDW698yS9Zf4xRmSTiMrwVvr4m7Tvky5y11RPMNf0i0Hy2FVKy1RzWdrTnM2kKU/7FKuJ9mpS/4EVpwCrOPg2rUKob3UwNH0vnJF0UVcaflZzh8+JdzN0OpAjiFg4taTxEgJe4lOmeuxEQLh8ApnF3NRfVrG9gfiZmwKaVazumDAiLYloZ907D3gLSVMOtHEkynMUw7IBxErax9lac5zDsBRQlh8m2huqV0jim1PLKf0WknKt8udqfaPWv4ocerIoBrw0VYyv8/HfHFcKvgkreDyHsohTxxAXaZ2JwHPf7ayIBW2MRaH3lBnBs9gH7joBynmR2O0ecJXS+SRqeblcQB6RcgXAMVjMbeFeYCjPj9Dgkl4ZuLNzgGSAQZlH7vma91Itn9HtSLgcTP9uqZh8Y0mDIHRwDsiPbhBuug+SJpCcnaH1osfD59Jk/eQKHGsykP1b8fjBKdTJArRZRqkqzw47ekv2o0NM0+8M4Fu69XFa11VRtYfICCVVmqF4wZp1zbe0Ujh2EKsqxHyB7Qkdl/d4W3qLPW8Wxgdj45vgJz1e3BuIgnCPrZ5Tyluf403cMGOriB37HDqTQqujaBtmpVh5uE6vyYE9czt1cuKn+QmGKZzhrxkGmEGr3UtRdBMI8O1coL8ztvQUfqMO39a6wxcWVKsqq7hRzMrihHzzt+udTp7CGbpYWq37tbwKj902CBKZ6OdIugFnriYZYBqH3ziMmrlvNAfAkfmM870+hB1O+tJ35fXKgBpjfMNoi4OYcNVM5GkNmp1WTevr5XyDgAIM/5yscOmBhHwed0jflwE+CBtoBYC9QKEOLSQhJi/tJi1H85I1ipEUYseD4sh7jEu2AaEoit4FyLi/v6V3vv/qexz+EuWZY8VQavMrocATA9zEtQRJ1 dy12KAUP Zs2LlrEACFh5lBra6ebHEFMGXGxXqCH/n/NrKjVqIRqqYeAsBkgIKzzVDIxKcgbsYn+jgqDFknex2gvSY3MHYX2szUn8JI9N84YZ5VuT12TKiO8Ofs6Vl6emyHMWXebPTJnXCYEd9/IHbF/TmLLV4VJntmRNrGeNmgngsH1Paj61tfMIfzVhsE8Rr/eUQTXh240Pl9GxoyucNl9f3gwVQ/Pj4aTaE5aF7PJoLo3/OsqpKlyvuOQO9JdrU3G6Ou+zX7knrH86pOLJNDgKcM+K4BYecxATX+Kg4tFvi5CFSHVPFzGJ3xGhAWw/9xDykaqQyly7F87MMZ3jXE1+gE5omtG+TLEd0M+FC0ekHjKOCVJQPlBc= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000984, 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/01/22 14:57), Sergey Senozhatsky wrote: [..] > static bool zram_meta_alloc(struct zram *zram, u64 disksize) > { > - size_t num_pages, index; > + size_t num_ents, index; > > - num_pages = disksize >> PAGE_SHIFT; > - zram->table = vzalloc(array_size(num_pages, sizeof(*zram->table))); > + num_ents = disksize >> PAGE_SHIFT; > + zram->table = vzalloc(array_size(num_ents, sizeof(*zram->table))); > if (!zram->table) > - return false; > + goto error; > + > + num_ents /= ZRAM_PAGES_PER_BUCKET_LOCK; > + zram->locks = vzalloc(array_size(num_ents, sizeof(*zram->locks))); This better use ceil(). I'm working on v2. --- diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c index 0413438e4500..098e86fe70a5 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c @@ -1486,7 +1486,7 @@ static bool zram_meta_alloc(struct zram *zram, u64 disksize) if (!zram->table) goto error; - num_ents /= ZRAM_PAGES_PER_BUCKET_LOCK; + num_ents = DIV_ROUND_UP(num_ents, ZRAM_PAGES_PER_BUCKET_LOCK); zram->locks = vzalloc(array_size(num_ents, sizeof(*zram->locks))); if (!zram->locks) goto error;