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 95E83C7618E for ; Thu, 20 Apr 2023 20:34:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E0510900003; Thu, 20 Apr 2023 16:34:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DB4EA900002; Thu, 20 Apr 2023 16:34:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CA39E900003; Thu, 20 Apr 2023 16:34:49 -0400 (EDT) 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 BC60B900002 for ; Thu, 20 Apr 2023 16:34:49 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 97BAB1C5CFC for ; Thu, 20 Apr 2023 20:34:49 +0000 (UTC) X-FDA: 80702923098.09.8B4DE5A Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by imf07.hostedemail.com (Postfix) with ESMTP id C9CBB40013 for ; Thu, 20 Apr 2023 20:34:47 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=Q0csoKgh; spf=pass (imf07.hostedemail.com: domain of cmllamas@google.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=cmllamas@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1682022887; 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: references:dkim-signature; bh=iBKSlGmTPj0SpwuhNR71Xgy9umtibtA7xDNMtVxgSZo=; b=S5CFvvR9r3xR4S0uaJAKp+nwAJS+h6zdjqBq4QZGHpIdb6jFfhiVEA2Ywgd+ItKCKWR9Ef 279Tsih8BG8wicIO/p7C3GU5LVvvLI9XpBJIp/nVOs+IexWec0cAh17n6z58wHCEWom/eM b7SMiaCPRcsQcZB1Z6+Ov0To5sPRJLs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1682022887; a=rsa-sha256; cv=none; b=DxzMQwRlUi6SLbizcHx8QrIDiSkDBjQYEC2kJex89p/tx+36D8aSDoXO4tnRKq/LQ30wyf f2C+gQVHCenguc6ZSutdN0L4Cxq/7Ni4NQMWJmkNw5hY9Y6VxxU20DxA7FDL8hCgJP9qQT +HwzTbHj8vdUqRF+G244exNfyyp1WlM= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=Q0csoKgh; spf=pass (imf07.hostedemail.com: domain of cmllamas@google.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=cmllamas@google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-63b73203e0aso9816902b3a.1 for ; Thu, 20 Apr 2023 13:34:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1682022886; x=1684614886; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=iBKSlGmTPj0SpwuhNR71Xgy9umtibtA7xDNMtVxgSZo=; b=Q0csoKghi+ruQlPyX1y/gcn7KGo2Sb6HcZ1kR3OStBCci/uXSBawC0zCV6+KEIjFju DXbaWF/3UPtHsgF7LMNYJSSKyAJho75bVOzpS80vy31G25q6aAvn9clgT3SNad88fOEN OzZcTmBimupR7ShXRNRpkdSCRC8u5WaXSfiSxoUnYrvTIzfBydGWg4iYmygjkayFyjUa IikTsu4roxtYas+jAjvylrBoLfKSfA4nkvMNbURR6pnwQchimvQFjEHSSPVeGi4uHUTs Ta7oNclQsnOZM07cG4TZTx62AVfkx+gbWzONzVpRJNWmQmjKCTMQ4sBezodLvV+5O8m8 DOGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682022886; x=1684614886; h=content-disposition:mime-version:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=iBKSlGmTPj0SpwuhNR71Xgy9umtibtA7xDNMtVxgSZo=; b=gZRTbQO6tO8F/FtkCUcMrWpoetXfVtr9/BCb14vhcUOAGQOAaFxYyYJntRMGUFK+Bc 29GgBYxyBdp++wPPSTP1dzzgDdkyqXvkBVDdquCT34FVhAHMshwlLbpnvl0WYlXpZFYY kkIffZc1TX6cmOB1xwfbfXv1pLXOO8Iw1bu47PNYv32KujJBZbZ2Q29t9YKK7a2bJORS eOTkj3E7zT2c8y7p8ZGo6HbWTjISO6niCyJf2lWUCZwjvWjjkt8iiixdZ7j1TqQxgvG7 mq3QilYx+3qgT9bhvcmjmF45wmNrNMXLmCBnSaxji463KemQDoz6j1JkKNBn/nkhkaMM nf2g== X-Gm-Message-State: AAQBX9f0882Nc1aA4cRpZBR6v2ED6+iEOOjSErztVjKdZ161qMnxBb3O Lo9lapb3S5wHn6KcQipJTq96zGw+Is/DxDMESoNDfQ== X-Google-Smtp-Source: AKy350Z5gXN5upUeBRT71FK0ExW+0W0up3cDxLpY2o4m0aVRkyyxYgT0FlYgCfa0ekh0BujRfWooMA== X-Received: by 2002:a05:6a20:3ca4:b0:ee:444a:ce1a with SMTP id b36-20020a056a203ca400b000ee444ace1amr2719266pzj.30.1682022886197; Thu, 20 Apr 2023 13:34:46 -0700 (PDT) Received: from google.com (157.214.185.35.bc.googleusercontent.com. [35.185.214.157]) by smtp.gmail.com with ESMTPSA id w4-20020a627b04000000b0062cf75a9e6bsm1619660pfc.131.2023.04.20.13.34.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Apr 2023 13:34:45 -0700 (PDT) Date: Thu, 20 Apr 2023 20:34:42 +0000 From: Carlos Llamas To: linux-mm@kvack.org, surenb@google.com, tkjos@google.com Cc: linux-kernel@vger.kernel.org, kernel-team@android.com Subject: Using page-fault handler in binder Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Rspam-User: X-Rspamd-Queue-Id: C9CBB40013 X-Rspamd-Server: rspam09 X-Stat-Signature: 9safza4oswk93sjmcpz3airjamyukk7q X-HE-Tag: 1682022887-735152 X-HE-Meta: U2FsdGVkX18rQhALuGri5ZvkfbEbNVkhLnf4NON6BXrKuIkix1Q8rXwRC/TaJ7E3IlDi3/v7JOGjh5YHqIg/s3C30RY4pdQujGit5mQxSl9cQWqdXqeQ2o/9Eh5DLdkQNWlSZeLTyZXVSGCFAdmgFj6BD4/yFZvbJmt3gUwXa7fU8k/NoBjh+TGPW5x3essjfQrSXY5hSo//CG4yEm63aMxJSESMJDexosXu02L/z9lI25066SKIleuupE+jI8sbBzcmeWMPme3DNEGWLyr7n93/DGiZx6kIRwjBe9SzmxUHuaMXI34ahBWikDlb0zmdvud/8ER5fJ0eDairAs9Kjgy83TYU7nzUIlsKpLaxZMHORmvXrrtQlO1gbQJ4e3L7mDtRyUPVzWBvTfC28R6x+L8tdhdmqE+4VllR4nNXlPD7wPwIzSFy/br9q3ocORYiyqWDSs3bH8PkgQ3hA0+X/v8U+HRvD8rA3MORyBerLsAh/c1gna3/b8Ie3v5+fQZivbqVocuhqucSrqeg82a4vzoBdnsDbVtLx6XgMKSD6bQ8EuhUq56EvkMF7H9VerI4/zRuU2bK6/ZmB60vTqwZSCciaRiwYe/HBbXsK6Zw+eDhfB6jRjLI1JQJ9KN+Mh8buy6/pteGJ8srfncuf7u6aJI2LV5rCdeKH19juWUdgnAx88WU1WOvOpzpuSS2W+pHgWLJbFLto3vyQXDQzazVia7L9nPCAo/lzl/4hI5N9fCVbv7767M0AgqLvitEJtKKYTq6JPMWeQfoWXTexP6YNgqw0hQgGUwQUOdLsyJl5h/M92nqvweK0F9xMvsYX4dxv66oJDkUVr9u8S3jMPq9T2e8YiyeCnKWNcuYpdMu2tMbx/VJUJr67Nq7uSCjlmJczoEaEvxan1Exi79kH+Qh3tajKkgZxu0fjJTJJL/NvEfziYxwg4pWfdRB5d2eYw0Vc2pSz2eZ9HFoRRK5HVH FjA2IaNG BBWe3ULhFwZ6u7BLlTP7VchUwsg3VbWjel6o8DfMPdECKzn9qL1qOGe4lfE8CaS2edNL0sUo2WviypeeaJHgUB6Ckn9Uc1PA2DyGsTfXUEfG9mKtg52TIRwBNW0exR5p1VNKPm5E0sq1GLPYUGc2PJex0ZetA3olxZBKk36TFNgAoQ//iPGleV+Gs3RYqRAGV0l1doVeWUECto7hnnr9aG4jWQtDfZHq0Q8MQl3XEYeYWDoKhcBjmt7qLU2uRlYQfzhJWVA9wMPzUpsZTSYlZo+KKCJ8dS5E5ldMYDQVXfR8/GFKv1Ta0O3BS6C0jvM0RI/As1FSkPeJcSu64TdNsZME+mPxR9sQ92oKl+nEMAp/6khE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.004713, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: Hi, I'm trying to remove the current page handling in binder and switch to using ->fault() and other mm/ infrastructure. See, we currently allocate and insert pages manually into vmas, so dropping this boilerplate code seems like a great idea to me. Before starting on this though, I could use some pointers on some of the implementation details. In binder the messages are not buffered. What happens is that a server task mmaps a region and then allows clients to write their user data directly into this _remote_ vma. This is currently achieved by caching pointers to every page allocated in the server's region. Instead of caching page pointers, I believe binder could make use of get_user_pages_remote() and trigger a page fault as needed. Basically, implement something similar to access_remote_vm() but that instead does a copy_from_user(). However, I don't see many in-tree users of these routines, so I wonder if I'm overlooking something in this approach? One more reason for the page caching in binder is being able to free pages from the shrinker's callback. Unused pages are added to an LRU list and we manually zap/free them when they are reclaimed. It is not evident to me how can binder mark a range within the vma region as reclaimable? Any pointers are appreciated! -- Carlos Llamas