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 DF53CC433FE for ; Thu, 3 Nov 2022 15:26:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5999C6B0073; Thu, 3 Nov 2022 11:26:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 549896B0074; Thu, 3 Nov 2022 11:26:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3EA686B0075; Thu, 3 Nov 2022 11:26:19 -0400 (EDT) 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 31BEE6B0073 for ; Thu, 3 Nov 2022 11:26:19 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id EE52FABE63 for ; Thu, 3 Nov 2022 15:26:18 +0000 (UTC) X-FDA: 80092507236.08.2EE07A9 Received: from mail-qt1-f181.google.com (mail-qt1-f181.google.com [209.85.160.181]) by imf06.hostedemail.com (Postfix) with ESMTP id 62C06180002 for ; Thu, 3 Nov 2022 15:26:18 +0000 (UTC) Received: by mail-qt1-f181.google.com with SMTP id z6so1431196qtv.5 for ; Thu, 03 Nov 2022 08:26:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20210112.gappssmtp.com; s=20210112; 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=vYPYwj1adcbSApDOudmjpirtRwA5o5JIyavOO64tkyQ=; b=MZfsDA9heawqnjgKXy5Xp96r7SpvPm7O1VWJaR/hAopTCTwihkbA3eLuuNJen2tIGT 4TQNEZl6vv97cK6CDWDDlcBsKAc2edO8iXE43vn7KHlZphBc8jj5W0cv8aaSe9yR8ymq rKCuzwpBFwA4EA7Ox6rsDB6G2cOQouxxBWZThVgHcD9ZuJbYb7/kGeXv5uJ3lKSkcZB3 gIGoxawDfdXUCrjq1HVE/zqY3VPxgjMLlwEGXbShisx8DppSy9PG+eDaoyGXX2TSZ2RV ypjdmNnwZQjlHBJithoBc3WQ1gidHSt4AXo8HjGyzE9RugNnhSxKpR5SfW1269jLHPIP 9j/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=vYPYwj1adcbSApDOudmjpirtRwA5o5JIyavOO64tkyQ=; b=f6gCsyTFaWeq/EQ6IIE/dxk8Qv1grz/HH2VOBmus+Y4bDvkxU4hIua8uUqW/6Lxq5e GmnzzX1Gg5uCm35l+/8cP1YbtL0UjrosKfoWIPnO6yjP13j7IpAHc/RMnDGIQjEMhN7v NI0u3nlYRx0z1ygHb0pYjp+RW1e2PcKCwVxlLh4i+/rmiPbX2Aa9/oe4kukfl93338Sx Cb1M3axefon1twtXwir2bZxb3Vay+OR9zP2lHww+m4k0OKmf9YofOqR4U47hY/kSm7y7 yFvg0SSJj6Jp8QoN9llI6UhUXutNKKzAYiMBrWvLIWOeS+pgS3lCX8WuTAbO20C3tjE1 pOXg== X-Gm-Message-State: ACrzQf1th9cdAjIsIIqLeOmcPb0r43zP/0qKpAQuN6QO0Lhwaq8tOiDE NiEfYRVey7oXVRgJc/YQFFnH/Q== X-Google-Smtp-Source: AMsMyM5jEkrTs3ANo0m063odCcGS1HXlVESHhqDOsEjJ4IESWqAg93jD4+LUVPNSgTUxOl3ZK4kOEA== X-Received: by 2002:a05:622a:424c:b0:3a5:5987:43c7 with SMTP id cq12-20020a05622a424c00b003a5598743c7mr1852326qtb.131.1667489177562; Thu, 03 Nov 2022 08:26:17 -0700 (PDT) Received: from localhost ([2620:10d:c091:480::25f1]) by smtp.gmail.com with ESMTPSA id t29-20020a37ea1d000000b006af0ce13499sm908306qkj.115.2022.11.03.08.26.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Nov 2022 08:26:17 -0700 (PDT) Date: Thu, 3 Nov 2022 11:26:19 -0400 From: Johannes Weiner To: Sergey Senozhatsky Cc: Nhat Pham , akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, minchan@kernel.org, ngupta@vflare.org, sjenning@redhat.com, ddstreet@ieee.org, vitaly.wool@konsulko.com Subject: Re: [PATCH v2 5/5] zsmalloc: Implement writeback mechanism for zsmalloc Message-ID: References: <202210272158.7swYwd23-lkp@intel.com> <20221027182736.513530-1-nphamcs@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1667489178; 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=vYPYwj1adcbSApDOudmjpirtRwA5o5JIyavOO64tkyQ=; b=uwxKo5FA+udDB4wka4BsOYhI4VMNTlh9mV/xa6N7i9Mz5Xbfugx8v/BB481QAUEFM1AhDH UXwCTjQg38LmGBu+DE3nMUAm8k0RgUo6jKiW3bexJe7RETaeiZV9NtrFoE3ObV+0h/C/9h YCumVVHOGnNUHNk2W3oXTyWhp8WX4FY= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=cmpxchg-org.20210112.gappssmtp.com header.s=20210112 header.b=MZfsDA9h; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf06.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.181 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1667489178; a=rsa-sha256; cv=none; b=b7YQqGCmyXRTyZ1e+gCjYgqepX/3xLqDdScp1I+ER7JzbIRmF1Kr6XH+Po+SldNwuDorUe vTpvtG6nY5TdHz66+SnHcs6LCbRO81CtsLT8eCzPGmOmdC7fv9XzIq1sgyzNMsjQU9cT+/ iRZgn7pjlluhtTeyMmZy9DQq0aBW244= Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=cmpxchg-org.20210112.gappssmtp.com header.s=20210112 header.b=MZfsDA9h; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf06.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.160.181 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 62C06180002 X-Stat-Signature: o8r954td6gqjk9oi5yhrupjga86hy4mx X-HE-Tag: 1667489178-162337 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Nov 02, 2022 at 12:42:06PM +0900, Sergey Senozhatsky wrote: > On (22/10/27 11:27), Nhat Pham wrote: > [..] > > +static int zs_reclaim_page(struct zs_pool *pool, unsigned int retries) > > +{ > > + int i, obj_idx, ret = 0; > > + unsigned long handle; > > + struct zspage *zspage; > > + struct page *page; > > + enum fullness_group fullness; > > + > > + /* Lock LRU and fullness list */ > > + spin_lock(&pool->lock); > > + if (!pool->ops || !pool->ops->evict || list_empty(&pool->lru) || > > + retries == 0) { > > + spin_unlock(&pool->lock); > > + return -EINVAL; > > + } > > + > > + for (i = 0; i < retries; i++) { > > + struct size_class *class; > > + > > + zspage = list_last_entry(&pool->lru, struct zspage, lru); > > + list_del(&zspage->lru); > > + > > + /* zs_free may free objects, but not the zspage and handles */ > > + zspage->under_reclaim = true; > > + > > + /* Lock backing pages into place */ > > + lock_zspage(zspage); > > Does this call into the scheduler under pool->lock spinlock? Good catch! We went back and checked our logs, and this didn't actually hit in our production. We also couldn't trigger it with explicit compaction. It's an easy fix, the page locks can be acquired after dropping the pool lock.