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 5E2A0C0218D for ; Wed, 29 Jan 2025 05:40:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3FD7928002A; Wed, 29 Jan 2025 00:40:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 38583280029; Wed, 29 Jan 2025 00:40:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2000E28002A; Wed, 29 Jan 2025 00:40:53 -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 00990280029 for ; Wed, 29 Jan 2025 00:40:52 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 8C6AD1608DE for ; Wed, 29 Jan 2025 05:40:52 +0000 (UTC) X-FDA: 83059390344.10.2DF1A07 Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) by imf04.hostedemail.com (Postfix) with ESMTP id A3B8440008 for ; Wed, 29 Jan 2025 05:40:50 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=RmmeZq7j; spf=pass (imf04.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.41 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=1738129250; 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=twOWHl/0/XP30g0Bz1pw9W1rYpjN3UXoODljDGU0lck=; b=mcAVUhCM9p49/aTsiOU+WEdwQbtes4xYQla++3hhQjktATj69Uv1tONqCQFlcTnsVebFR9 9IkYZe8+/G+abRQHAe7Zh7zfzegWzDOPDhAO/pa5Z1sAJ9frqt9KSnCvmIi8M7eN+UIKjb HJvYjeFm5+wYXXSNzKijiRoIZIg+uh8= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738129250; a=rsa-sha256; cv=none; b=LA8SCBAdDCreeYPvutgkwPfKDE0EeY9YRcT200Q3EvMXfVoEepLbeMznWdzEgbyYRwe/Nd t3HKt7xm863mMvgJQnMXJKYDyBP7LyklN8GJ+Iha42FRxhGkNAM4FwzV2O2csJXXZXuJFb VM2z/Zl2AyH+pPufYVmFEbl+GiH0kyY= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=RmmeZq7j; spf=pass (imf04.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.216.41 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-2f441791e40so8577813a91.3 for ; Tue, 28 Jan 2025 21:40:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1738129249; x=1738734049; 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=twOWHl/0/XP30g0Bz1pw9W1rYpjN3UXoODljDGU0lck=; b=RmmeZq7j/ddRMrilLGG6qcRTZdRqAjGk8FqlzU9aW+z7YBSsDaEIBdQoVhJDlDxJcn 7XX8JyqHpbzWmhFHo6GOaNUONdQVdGOMcZEjlNN7YHwkJKTmYCp1CbVbBv0Y2lgR70k7 kdv2WCZKEQLOThfodiiNycvuIl2XE7IxoV23c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738129249; x=1738734049; 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=twOWHl/0/XP30g0Bz1pw9W1rYpjN3UXoODljDGU0lck=; b=Eo1USdp3J0pnUPyL+e5SsWxlXbIKhOdSreMC9wHSSuj4IrQwEY2RU0ELzuTcjfnEhF UXm0eSUoAGMUF9LGlrBG3PyBuf8GOU+D7+x9gOW+VoX0xJk+BI7iCrd4d6H4au1ang9J Q1HrLQxWowirhgI5gKKZvUBWbtGsl+MuudfN9JMGT29PZiTe7vAhOATEY5VEdCaPkf4C 0RV8JESIFeVCIKGWx0LDXdJ7GMDYYaPQJZX+xdIo9Zicj5DRggGCwL1w9/dWcB+zRXpl GJBY+o79KR897+W3USwlmkOY9xlv3TvcDPc+tUzika9UxDYvdNAD2vaO0x/KM7zvbaa0 uYlg== X-Forwarded-Encrypted: i=1; AJvYcCV5tzwc7/Naa+nkwnLcSiNfyBsr3Znd50+I0zfLdQwjIqwwuOIuKUzb1BBsm24hI2e7rguHQWetLw==@kvack.org X-Gm-Message-State: AOJu0YwcGJN1uoXiTKgHgQyKRgH83miMh45YAvvC0i7lQzzmzctaTkr/ JAcFVUN+vUgj+jKy+zM5fJb338/I/pGDIj+oVEn4ckbCW+XE9u/SKHBB/8tCGQ== X-Gm-Gg: ASbGncsId5c/gK+x8rqijmbkYzfaWkreb1AFiQHw/X4pVyL31rlVb3rKTbvXFC2vSiT F8e/jeVEwgVbUcJamKj0jp/EiDnde5KK6DMR7AoPZNAIofkQsOzGSOVAGXt0pEiJsfMRwzliS9J IXqrClBsYqPtZHpJ5YGYd0yTN8q5ypVnfT0dgLBu4kkVX4zZyPWn3oRpEn7KzmWWXtK4qWYB3GE TfZw+HvbNcEYQYVUjrzBNUnkkJPF60cIGQMGEa/eqJp3zJseZ4JxwNPv+rjpwXLo+j/TvbBeOPT StXZeMT8madGqY91nWQ= X-Google-Smtp-Source: AGHT+IFtuODli5YYlVYUU96kE0UrKPbOmBDPlYV7jei2zSrGW+uH3dcNWO8PZFqdfg0nRFfS49bzMw== X-Received: by 2002:a05:6a00:179d:b0:724:e75b:22d1 with SMTP id d2e1a72fcca58-72fd0c5eb01mr2817139b3a.16.1738129249276; Tue, 28 Jan 2025 21:40:49 -0800 (PST) Received: from google.com ([2401:fa00:8f:203:b323:d70b:a1b8:1683]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-ac48fa81959sm9334978a12.21.2025.01.28.21.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 28 Jan 2025 21:40:48 -0800 (PST) Date: Wed, 29 Jan 2025 14:40:43 +0900 From: Sergey Senozhatsky To: Yosry Ahmed Cc: Sergey Senozhatsky , Andrew Morton , Minchan Kim , Johannes Weiner , Nhat Pham , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [RFC PATCH 5/6] zsmalloc: introduce handle mapping API Message-ID: <5iotloij4kc6cjugszxh2bpalszwcptwkvqkwigbpehqql7m5q@kylewcf3d5ga> References: <20250127080254.1302026-1-senozhatsky@chromium.org> <20250127080254.1302026-6-senozhatsky@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Stat-Signature: jii6z18ggps38f8fouycgudpbgkqxgqq X-Rspamd-Queue-Id: A3B8440008 X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1738129250-613378 X-HE-Meta: U2FsdGVkX1+gW8s8ORppiiO2G2CcC4Fbj3TEAkWjRTN1Jp3uuBqJkvXyUkBq8oW70Jz2ufeZ6RE0LjM+xRfjvsdT0WikNC6f+3hKahWS3VTEt0207eLMbnksLtZNV0akjlZGOQ8S//FsRBiyq8dQoRC1aL3J8v37rf6UdkSt/zWwx7KDQsZymaiar7D/X6sysxbjgWXmW7VYgrEp7LdPIEqNcXjaJqEjHm0lDccmc7aJJSiTVJK10JIRypRVYkFBpgbN6HFwXvvZ49HjOP2fxdzFynJFlS3mIZlMgKzqQJ4Cano1L1OYcvKosQHVKZsvmAhg3VwmTR31cS5jxDcX7cVYOOPTtxNkRHpGleARUeWOhyRj5RV98hfHNKAcyQdch0PAGzPUdEYfOT7l7XlXE/i57D0QlBNXbV+St4IbmADbWs+EP1rB2D6nyxDAoXncgD4FrvjiUER/HVGlnDbThgGBbctDA05IU7pHD1P1Xq60Fj2Gi/hr2hvZvL1nmFkomRkl8PGquLyMuw9GlRB2f/BVjVQ2w+T7MVgEQ6GaraRMJLmOjvUnX2gf8HvreuVUhmGvXn4qG52Rr/ke4Td5cguCHxkwo2PZsm2EUlfwyHq2UeaoZGI/Tm2Uto3TwdYjjmRdwz+2nyIR9ad29hEU10JTD4yWYfKPPXvqSNgOyZyF8geEYJ7v4lSezJ9tOvE+3UpbtX/KhJocxzvI8YLNgdYer730HTHcGUjyyMoOer2CdFbmM9oc4em5LsZbCYoSuctiHS1M5tWvMNnSNw3V1NQ7pNLrq/3woxDxrgVbHrOjSvC365NjQ6gQaRPPwRdLTlXmLhBgwQCQREDk6ej0DBb7Ru7AJlBCgV1GNSwUfbTybWbl3kJZ5L1G+ox0mwIhy8T0ujrCdFu+XMs1AOw2g1SWXInWeraYKQRXAo8DXiRTiMmqLWpS0yaSOd+diEJIy+nDR0KrrRaUzaqe0bo p2yC88cE bbX2EiV/Qix4RB75Muv6X6h/mabZ3A9UnNbdrzDKc6bdRJFYlqgzJQBXWGpLXOHfto3/2e8kpcTOXWVCwXBs1EUWW+fXtkmokzL5ebfsXi1qCPAmtHBTxTK54FIvgZJtieBSlIuoLThQvMMB9k9snQ6jsJNccVhl5G94cSE/ehw3D9DZPsWDo1huuq4OJVQE0VptUjuF/YxtpYJQH+EhY0q5Qdy1nv/LerDeZfK0P0am4NKK+lSyNXxcGq5Pw8HgMV2R/EBHTBVJo5f0wZUhZCKvJnm1nyTKjbD09jsKAbU96S87V4eDZjlfcoxdxtPzDBJc7kuNW8PdZf9aqH5PKqiqv9ANo5A4XWtsOqrCm4RzkIko= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000139, 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/28 01:36), Yosry Ahmed wrote: > zs_obj_read_start(.., buf) > { > if (contained in one page) > return kmapped obj > else > memcpy to buf > return buf > } > > zs_obj_read_end(.., buf) > { > if (container in one page) > kunmap > } So it seems we can optimize things a little further by avoiding more memcpy() calls. Namely, for WO directions [on objects that span two pages] the caller first memcpy() data to a provided temp buffer (per-CPU buffer at this moment) and then during zs_unmap() memcpy() from that temp buffer to physical pages that object spans accross. We can skip this memcpy() and instead write to physical pages straight from the compression buffer. I'll post an updated series shortly.