Received: by 2002:a05:7412:da14:b0:e2:908c:2ebd with SMTP id fe20csp1573057rdb; Sun, 8 Oct 2023 14:32:40 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEnJdkM2K/4AK3OdaQNczQCzG3gM/RnEUUIfOn67XFyH6c4JiHTMbuGBTBnR3IqVyJ7HGzj X-Received: by 2002:a05:6902:707:b0:d84:afae:96a8 with SMTP id k7-20020a056902070700b00d84afae96a8mr16314214ybt.7.1696800760161; Sun, 08 Oct 2023 14:32:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696800760; cv=none; d=google.com; s=arc-20160816; b=TFtK4iRTItNuif2e25I7j3+Q8d9+fjXX7lB0t1C8NMDUDGUyZGhwnjXuw9HajZ/eqL lVAlgYhPxcde0kTrhjZK3kxqiqzSkD8cQH6uPDcxQZ6lxYL8uAIDrJd/iSHUNNOFww4A GYcpiW7BgBBImZftPOQUqSssaiXEzl43G2cAAG8TLWA6pI3gYcEvdpyNixk64uOS5ymk GhEL5UtCor01HgweLvA+LG66GxtZ3fh2kBb+0YkITe9C2A1SKF7QgOpCVOX+Z0tgalMR qtNisWUPbUFjGpgNU/AlFbyw+mnfdgJlI+pKqhdsydVBOMeyDCwTJUHScQNrUV/3YtlD jgPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=oBbpKjH3yza5IAXsUspH/OR7Fyzn4x3gXwEFLNLqmQs=; fh=TLdaYVTYpkOucWp2gi2TZIRkEiwPxZ330gpwGOOjymo=; b=d7hePzPnTZmRUhgq1K7D2AFtD25QU80yXV1RhjmXB7UZCXxFmI3aONUgFKNPRZFJDz wpQWOY9mW0VQaJCEAb9e5UL3m0cOTkfH0SrmPGIR+ZGGN+NExhWu0qChLdHfIZn8MOvo IFDyzKiMGhKPambl42+9m2ZtwXURwX2so1EBNser/XtxIcNuF4Kec/QsJSKXVG/BVuv5 XbN2SrqZrygK5qta3vpOwIMsjyaaAQe0a8GMAjr+PxVsildmvkaHmcycTSWSSfoNf8Ia FYmVwZxcxiymiUxtbEw2FIri443H1UvOdxRByQtta6j0Cs3vCyY/pSYyTz/y1pUfjhjl ZMqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=jSl976ml; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Return-Path: Received: from agentk.vger.email (agentk.vger.email. [2620:137:e000::3:2]) by mx.google.com with ESMTPS id 21-20020a630115000000b0058986bf41easi6585660pgb.8.2023.10.08.14.32.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Oct 2023 14:32:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) client-ip=2620:137:e000::3:2; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=jSl976ml; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:2 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=collabora.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 1C8BA8054EED; Sun, 8 Oct 2023 14:32:38 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344404AbjJHVcX (ORCPT + 99 others); Sun, 8 Oct 2023 17:32:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229706AbjJHVcW (ORCPT ); Sun, 8 Oct 2023 17:32:22 -0400 Received: from madras.collabora.co.uk (madras.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e5ab]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 21AA89D for ; Sun, 8 Oct 2023 14:32:19 -0700 (PDT) Received: from [192.168.2.166] (109-252-153-31.dynamic.spd-mgts.ru [109.252.153.31]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: dmitry.osipenko) by madras.collabora.co.uk (Postfix) with ESMTPSA id B8BDB6607095; Sun, 8 Oct 2023 22:32:14 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1696800736; bh=XUtLmucQmSmbTeOzlijxRbhLNkEky+Jw98wNMb8b+Kc=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=jSl976mlAr4sN985I9ZG4oY1UqjTKcMGlAaA3bEvzUvcT1Pt21wfVmh3x0toX9Lo4 XOkm5OvIAKAq8mJoiGzBqpkbb2Z8Or6lfmiBRcsPSEFzXJfOASv6QLGI3gN3zsDgdF OhzibDAkUNwvWhPQFiZIfX8MwY5Rw1B2yn6rW/13C9OUYbYytdHgNzUhWYqgbWAsR6 R8t8/gcTF1iFAWhS0Ae9WBaWMU7/O50h5c2nJfn1G1bsXkxE0tohcOUucVgslwxpkr Q4+PVq8GVvCUAwelNT47w/cnv7F4Y/eULUSCgB3at+KCetvR/kLx/4sB/USqtH2AED v9hIFQjJl6rmA== Message-ID: <938d1363-849b-0d7d-0ca3-03d6162fe0cd@collabora.com> Date: Mon, 9 Oct 2023 00:32:11 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH v17 13/18] drm/shmem-helper: Add memory shrinker Content-Language: en-US To: Boris Brezillon Cc: David Airlie , Gerd Hoffmann , Gurchetan Singh , Chia-I Wu , Daniel Vetter , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , =?UTF-8?Q?Christian_K=c3=b6nig?= , Qiang Yu , Steven Price , Emma Anholt , Melissa Wen , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, kernel@collabora.com, virtualization@lists.linux-foundation.org References: <20230914232721.408581-1-dmitry.osipenko@collabora.com> <20230914232721.408581-14-dmitry.osipenko@collabora.com> <20230915104633.0d5c3932@collabora.com> <454c464e-4534-7ec3-6d38-49b7df83c7be@collabora.com> <20230926093517.11a172ad@collabora.com> <20231003110055.346fd94c@collabora.com> From: Dmitry Osipenko In-Reply-To: <20231003110055.346fd94c@collabora.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=0.9 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on agentk.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Sun, 08 Oct 2023 14:32:38 -0700 (PDT) On 10/3/23 12:00, Boris Brezillon wrote: >> I'd prefer to keep refcounting as is, don't see how to implement your >> suggestion. > Can you be more specific? I don't really see what the problem is with > decrementing pages_use_count when you free the sgt (eviction), and > re-incrementing it when the sgt is restored (swapin). For the reference, we further discussed this question about refcounting with Boris offline and found how to implement the refcnt drop done by shrinker's evict/purge. For evict/purge we can do: if (!refcount_dec_not_one(&shmem->pages_use_count)) refcount_set(&shmem->pages_use_count, 0); and then for swapin: if (!refcount_inc_not_zero(&shmem->pages_use_count)) refcount_set(&shmem->pages_use_count, 1); This resolves the issue with dropping refcnt to zero I was talking about, allowing to delegate sgt's refcnt ownership to shrinker. -- Best regards, Dmitry