Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4075584imu; Mon, 28 Jan 2019 16:50:38 -0800 (PST) X-Google-Smtp-Source: ALg8bN4ZJyAlsreMvinrmh5+6d4e4C5Bh6oTg+oXwtdZH+jrOpuuEHTYCcOk4e5ZRqjHsiEokNgn X-Received: by 2002:a65:6645:: with SMTP id z5mr21960740pgv.351.1548723037962; Mon, 28 Jan 2019 16:50:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548723037; cv=none; d=google.com; s=arc-20160816; b=JIrcZCxI3ppfXycZid/uM1+wEo4M2fRZNfSG6Umsm4ZOjLprX3H4ujscS7jq6NtmC/ 2PaE6gDIzohW5eVfzhmf9PLykZOoygQGJAjTg12EcQCrevVHDogY7DdV2PSKCtkxDWL9 NMtXaB/Lug64ca+ltmzhHGnP/ssVkVrwnqJkrBVOFwYXUj9armvYFy4jGoplb8Jpw4nF yAPvip2TDh/jPeIyNsUvft5vUepO3X7ZELID6h5fSE2E+ytcaDtmdQuwfd8v9OA+ZPQH b7XthD31ZlH2JPe1qa19aqg9H2fEa3sxFmFqAglx9Wm6tr1U2pIa1j/SgBsAIjJyCdMY EMUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=jg6aq2qM6m4l90Ss3Zx/84j4bJ7/iJOBmUryrRwDOmE=; b=x40DeAEZpUYy2OM40yWNxHbFQeK6LzEqPlsV6XvsqiqruoWHnqAm46ns9oiHGacWOk VDL6/3ZuFr0hdeE0NNlr3MbyGRDwg9xY+nlwBtvHKnGCJO7GI1kQLbjbwhOIuEGVoJ4L jx205q2biZVmW13yzPwRxzIa9KOCcS5YmD4WpQ3yOGOzyAK55KwSoB00UrwTg4Rp95Ov fLMvHW2hjWGq148brH35HzVxuqIFJlwWoXmv3KvfaqXkAvgXpMs1CHYoEQczDepsxvYD E7JahxEdllDGYDtFOU5k9LCBv0YyZqEUgjTp3Z2E2ZxHTKXC9Bgxhofk6QTmS7qoBzgk RF3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@android.com header.s=20161025 header.b=qvbkfegU; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=android.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n1si3925333pgh.172.2019.01.28.16.50.22; Mon, 28 Jan 2019 16:50:37 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@android.com header.s=20161025 header.b=qvbkfegU; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=android.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727264AbfA2AuD (ORCPT + 99 others); Mon, 28 Jan 2019 19:50:03 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:34159 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726803AbfA2AuD (ORCPT ); Mon, 28 Jan 2019 19:50:03 -0500 Received: by mail-pf1-f196.google.com with SMTP id h3so8838964pfg.1 for ; Mon, 28 Jan 2019 16:50:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=android.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jg6aq2qM6m4l90Ss3Zx/84j4bJ7/iJOBmUryrRwDOmE=; b=qvbkfegUucyY7NFSzV9g4Ekbrezoi8IcPETwEgSIhhQs6dSNu6JwgpBjLofPNlb4tb sAspic4EZvsuAOEqNOVqOb3YOW/fzZlwmzHFoL8YSpWLUTA1igwv7OkIryT38XgJtw76 54OvVmboe2biCUaHq20xkU9pD0vxXXoDlICvym7MWZpaDR5JkqB96XGv9H7Sl8DS9G0H OtKESy8f8SlpLbD+2bNf0fcXO+BsuuXTyF75G7dURriD+jwt2Qa9shGLm4W7kq3FAEKZ Y8APazTrs9a4z+Vae+WV6LkWN2tvn8Hqk9l+n4eHlRK9tZZmnZJW1UPtrMiGXU+VJdi0 Kt/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=jg6aq2qM6m4l90Ss3Zx/84j4bJ7/iJOBmUryrRwDOmE=; b=OYrTxej4AxNa5UL1jFpvjldPXHMeXLsKbB/GwbJ8wL61ugcKbCM/8lAY7BEcbX/wbh dLVZfF3vozO+382txcVrI5YC8IwbaqCoHYsr+ivUvNvgrWpU7Ma4gpTv1elXt0D5t0sY 4PC3heUDagrDkygAoADCRJVSfQp25/I3AHuUapmxlawd+3QPzdkaanMWrN8i52VX5rsT Qwxh966tJeBgNVkM+g4vHSJSUMl2d5r9sv+9dZ9wmcVc6P1/8wfJf/NEXTfUmwXFf9JL VXlmSOGq6Ov9EHk4N4MyWK2S8ZktSY4PZR1Rf1Pw7zdYj8KTuIBM1pns2MGIrecOs291 /m9Q== X-Gm-Message-State: AJcUukeMkoBtGU5QtYzMQTJ4JpNaQHvvenKYfPN/VoqrZzqWoWGZ03AL DCaf5p3IpqpLxuSPCoHaLBMkTw== X-Received: by 2002:a63:6d48:: with SMTP id i69mr20963818pgc.215.1548723002083; Mon, 28 Jan 2019 16:50:02 -0800 (PST) Received: from ava-linux2.mtv.corp.google.com ([2620:0:1000:1601:6cc0:d41d:b970:fd7]) by smtp.googlemail.com with ESMTPSA id g3sm52090792pfe.37.2019.01.28.16.50.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Jan 2019 16:50:01 -0800 (PST) From: Todd Kjos X-Google-Original-From: Todd Kjos To: tkjos@google.com, gregkh@linuxfoundation.org, arve@android.com, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org, maco@google.com Cc: joel@joelfernandes.org, kernel-team@android.com Subject: [PATCH 0/7] binder: eliminate use of vmalloc space for binder buffers Date: Mon, 28 Jan 2019 16:49:27 -0800 Message-Id: <20190129004934.85885-1-tkjos@google.com> X-Mailer: git-send-email 2.20.1.495.gaa96b0ce6b-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Binder buffers have always been mapped into kernel space via map_kernel_range_noflush() to allow the binder driver to modify the buffer before posting to userspace for processing. In recent Android releases, the number of long-running binder processes has increased to the point that for 32-bit systems, there is a risk of running out of vmalloc space. This patch set removes the persistent mapping of the binder buffers into kernel space. Instead, the binder driver creates temporary mappings with kmap() or kmap_atomic() to copy to or from the buffer only when necessary. Todd Kjos (7): binder: create userspace-to-binder-buffer copy function binder: add functions to copy to/from binder buffers binder: add function to copy binder object from buffer binder: avoid kernel vm_area for buffer fixups binder: remove kernel vm_area for buffer space binder: remove user_buffer_offset binder: use userspace pointer as base of buffer space drivers/android/Kconfig | 2 +- drivers/android/binder.c | 461 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------- drivers/android/binder_alloc.c | 302 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------ drivers/android/binder_alloc.h | 47 +++++++++--------- drivers/android/binder_trace.h | 2 +- 5 files changed, 538 insertions(+), 276 deletions(-)