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 4C302C0218A for ; Thu, 30 Jan 2025 04:18:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5033C2800B8; Wed, 29 Jan 2025 23:18:03 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4B34E6B009D; Wed, 29 Jan 2025 23:18:03 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 353EA2800B8; Wed, 29 Jan 2025 23:18:03 -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 E9AC06B0098 for ; Wed, 29 Jan 2025 23:18:02 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 009A4C08AA for ; Thu, 30 Jan 2025 04:18:01 +0000 (UTC) X-FDA: 83062810362.26.4AF39AE Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) by imf05.hostedemail.com (Postfix) with ESMTP id 05ECF100015 for ; Thu, 30 Jan 2025 04:17:59 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=UL54u82V; spf=pass (imf05.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.174 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=1738210680; 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=tbVmipZxDWpo6Z9tCHBKgiSQkT0hrik0e2MSWS1/34A=; b=c+40KNFlZ9DHJ2oCWhIGrEvlKscfMom0J59mUbzK9oVNv4LFK/x/B+I6MYwXUtBeWhfcQs 7jESdJQWcellEbkX6oT3NNoHMLia23XysmF/4vOEobT9UPupTrXn+zxUKYNjokwm7u7pCN ab71bVaQY1b5OOnWR4gjqWjprKbYh9o= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738210680; a=rsa-sha256; cv=none; b=pWXXhili+I4gLgYc/sclUSlcNCqHxVw+Fg4leyzCf4mdJTDOz4l+T20GJfMf/6HTiptl25 ZUbnLEgfPf0FJsv4W280+W+whs6bpbYHwK+/QE0x+Gx34T9dxgiOCpHc05Webx0BRwY60A hrjYzhgfEGJL8FxumgqOR948Q2kln/M= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=chromium.org header.s=google header.b=UL54u82V; spf=pass (imf05.hostedemail.com: domain of senozhatsky@chromium.org designates 209.85.214.174 as permitted sender) smtp.mailfrom=senozhatsky@chromium.org; dmarc=pass (policy=none) header.from=chromium.org Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-21628b3fe7dso5559005ad.3 for ; Wed, 29 Jan 2025 20:17:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1738210678; x=1738815478; 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=tbVmipZxDWpo6Z9tCHBKgiSQkT0hrik0e2MSWS1/34A=; b=UL54u82VoG5/je2UmxdNup75oHRuzOo+JT05XhUMNHUnWRkcaZs15yBk3jFwx8t/ht 8GjIu9IkWe506V6A07wk0px5lwuA010SIg/amm+ypmd1NJ76XaxJrla51ttMs9eYOrWf 2i3WMlhc8UB5kruG9XxAiFauQNLVp+JdQjdjM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738210678; x=1738815478; 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=tbVmipZxDWpo6Z9tCHBKgiSQkT0hrik0e2MSWS1/34A=; b=wnqnJmjPtAESHanY9S3veNKulAE2YFIkCW+EToYBhrcbV4HxW8UFygghn3zJfD/PFu OGEFFIoiWujgf4kVsLYIKYQer1/GZwdg1mfHHR/9+ygwhkqGZ1VSfqKWl6tdVY+QongA LCLb80QEIbEib9/ACQAWAGyHl7Q/EgBLB9go7gvhTnpQS3uZhJl+TvPD60JMwd1r9RAc vthXJ/+wqxAH6J0DlkMAqsjoAFXFWE4API7/KKPcPdtHTeloFgkaSzdT1iH6C+YnJFa+ 36HKsB1HjAf/MhdgbAX/dVVkQorutqbovuAImr9NmkULSQ0aYgwpEmdwJaPhnOsJYyaW CoCg== X-Forwarded-Encrypted: i=1; AJvYcCXcuEb2nY7J7HeK5YMi23HmA0gZuXdQPq1l5I0/bgwc997QD2PQ7eyKTC4gsfLPsope5WovITyWqA==@kvack.org X-Gm-Message-State: AOJu0Yz2w341RvuPdTvY9EXrh8YXV5dyI3torX/kGg+Rx0TvVRNpEl7D hwZP0UhjhzAjtz8xTRXMDiUHRk/AP/4dwCxDbxTjLjjRspUvIMjOa5+2fhXaQQ== X-Gm-Gg: ASbGncu9TS3m+J5GhGQ/1C4mdj1c4H0UiTzUG3EkslBasj3y8MSca7qkV6oeWXyJRyE WZOsVEB+m6TDdxyK7bgyMqnx88BWz8AxtJk3yzc3EtGaBw3UErVSX5FYh2EdMgsmi+Mqf55bl// X+yVMWLbp/EbikX+HioLkJtyvpRxOVFwm/Vj4hhPRgea50wsdhShUnUhuibTRDHO4lOhqizdqIN G7tstollQ2hCqvrT7gyRiGjwDNxHHimG7hqZ8hpk0c+ksH8IsEyFK8Q1B9e31x/lhMA8V2cnsqs XONGDtZVH/S1CjIvW30= X-Google-Smtp-Source: AGHT+IFWuvYasF8o3OJ1SD9TIFYaWHXUkIZ7JhULFO0j2t+mr7YlRb+gTsnOG52HV2sksPQRlfE5yg== X-Received: by 2002:a05:6a20:729d:b0:1e3:e680:8c91 with SMTP id adf61e73a8af0-1ed7a6b7a42mr10596235637.31.1738210678676; Wed, 29 Jan 2025 20:17:58 -0800 (PST) Received: from google.com ([2401:fa00:8f:203:d794:9e7a:5186:857e]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-72fe6427548sm370906b3a.60.2025.01.29.20.17.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jan 2025 20:17:58 -0800 (PST) Date: Thu, 30 Jan 2025 13:17:53 +0900 From: Sergey Senozhatsky To: Yosry Ahmed Cc: Andrew Morton , Minchan Kim , Johannes Weiner , Nhat Pham , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sergey Senozhatsky Subject: Re: [PATCHv1 4/6] zsmalloc: introduce new object mapping API Message-ID: References: <20250129064853.2210753-1-senozhatsky@chromium.org> <20250129064853.2210753-5-senozhatsky@chromium.org> <4slya4kbgfvkvlgkvwep2cgghs233lfhfpctfrrgvho4fpgzwr@cjp643bd4ml6> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4slya4kbgfvkvlgkvwep2cgghs233lfhfpctfrrgvho4fpgzwr@cjp643bd4ml6> X-Stat-Signature: mkdkjgazn61wbi3hzyskot97g6n3ic7p X-Rspam-User: X-Rspamd-Queue-Id: 05ECF100015 X-Rspamd-Server: rspam03 X-HE-Tag: 1738210679-194722 X-HE-Meta: U2FsdGVkX1/CmiC+3rn3io28UtonfeRGnX1qLIYNLNxvZfkko+dYFSdXn2sQsO96o+tVs3zY0vnqMvqAyz5XM1kd0OXBRu358Pr33Lp8HmYEJW0XrLwZCyQhb33kSOurh2+8DvwgwoREBWJc9oggbRaIWw21oK2dLbXW3zG3DyZvEH3xcmkTJI0QD0CEkj++xaWAflYgnIpFL4D9GgGuZ8IlLtePPcWlMbcd629XO747T14+qtEuHNAbUJsGEc1Jl9c3lyy83XT5lwEj82yqeGfQ70S06N+i5T5Gww0B6dQqSYjvAseHmZKvUw2cK0Mz6sx/MgPcM4RkjlFa2Q8rdFUx+ZFgdLH7F8caS+gLPyVNZ6taB/UV4FrV3zBTbFedEfM5k7nFxjKPsBZG8qhaZwVwWI5TTtnnIfk53QcKzaxMqfu5xASlBvSAYMHSC4VxGhS/Vo+mjDnil0JF+1zNvOKdSsMjsjYVMgJ41ALQKp4T/IY6P/ScZpaM9daYiF653SZGcdUUnQVArdqop6mUAKkqFE/zASN6gh/utDUmM9tP/9SBXfBSanCcdFoektAHnIfgXC5EgyfFMrn92d2yU4fNwxB73fU+4p7TO8DZ0j6iiMRvCsYGoriUL4uvHZ37gBivuw36kpGihLVLk+kn/JjKaBx24D/iHC9slI7qKTSWkNqGpPcNAydTsy4Znf/UcrDb6KthEjQ3bkhetpS3RcLPDPGARtgGFy8UeRqjJUH0JH6SqYKAEb3JH9aWqlFQWXeOrXNkKcuC/wQIdk6lJqn108o0hD39m9UZf+w7KERQnHwjGAu8XaqFF7LbCzy1v5Ol4CsGyDjRRrRM3GjlDFXmEWa+nCeNLClqvuzgx7QBhzxi0mhtFxkJPI7Abp2Vx5jTcx2BsHZSzu2miFjDR12Cl5kBkgfbCBPgoQoFo2qHMDJyk+9CYk6T8PRTjxflqg/Y0q0xLesbZGR1E9z kOABBD90 wPXC8H36aleg+dne1mdomBNucG4N/U1GoOLrtCZiDHP6T7Fusrfs6Qd9rGxxgc4a9jaEkZMa8WPbc40JfuW7ciUUam9xLHkipv1kNUjFBKP2tR2/i/XYK8A8Vi7BC9ma2PSVoe93o/6Bhhe4VGbOn++CtaYCz4Oc/GOihuWqhBk6X6vQ+fiWgZDcJFU99xiwmuMhQuorMKvO593WK5SgZ6Mo5KnF5NwzkLJ2q3T2GdQ7QkQVz6shd9k5dvCqwDu6qr6750uxyY8uJ01hiHNpJuDS2ehIfMFfzBynUaCo4iL41cGHV5/QvyANy5P2lVHPC9WRtN6bzJJX3aoBzTJpICiDyKWm8MUf00CgbeQNkBG6/f7Q= X-Bogosity: Ham, tests=bogofilter, spamicity=0.002928, 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/30 12:21), Sergey Senozhatsky wrote: > [..] > > > + if (off + class->size <= PAGE_SIZE) { > > > + /* this object is contained entirely within a page */ > > > + void *dst = kmap_local_zpdesc(zpdesc); > > > + > > > + if (!ZsHugePage(zspage)) > > > + off += ZS_HANDLE_SIZE; > > > + memcpy(dst + off, handle_mem, mem_len); > > > + kunmap_local(dst); > > > + } else { > > > + size_t sizes[2]; > > > + > > > + /* this object spans two pages */ > > > + off += ZS_HANDLE_SIZE; > > > > Are huge pages always stored in a single page? If yes, can we just do > > this before the if block for both cases: > > Yes. > > > if (!ZsHugePage(zspage)) > > off += ZS_HANDLE_SIZE; > > Looks good. Ah, now I see why I didn't do it. off += ZS_HANDLE_SIZE before if (off + size <= PAGE_SIZE) messes it up.