Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp6450933imu; Wed, 30 Jan 2019 15:09:48 -0800 (PST) X-Google-Smtp-Source: ALg8bN7HY1DnyyPZxXuy9M8GRwqj6mPKSwNvm3b0M2II061EwUyvwFrLwAr95fSXRrsJ0MsvUp1r X-Received: by 2002:a62:f5da:: with SMTP id b87mr32933285pfm.253.1548889788832; Wed, 30 Jan 2019 15:09:48 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548889788; cv=none; d=google.com; s=arc-20160816; b=sIzNO5FNbWT+i2rbuoLeqU/ZTE1h7RV/txePoxpPd2xiYoENTK5jZIwK/nnZJL7ley 22jrIwVkZe+EOl/Uz94m6BTIMInncb1k28MVtVYvXTByjLGRR9myjuuRb1/yYy+ZLnGT iQQV9iUBaBRMxBS0z6is0kf2JoZdm1Puzf5/nmx+ZMc0Dtle10I8rKoqkDFmkCK2MB1y /kN0jYc0gZniIl2jOqFSaQsLE0Zm7Gjfya4jhG1fA0sH/EB+OZ0EqaQkCWCNOSC3lxHF t1DZTVdjzFjoGYT7x40NnhhSm+ciA0MyVr2HGDl8tslN1v21KJXVNCphQy28aGofGIZc KXTA== 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=qgPj5JLMKLEw4/JFNr8xubY/6A1uXZAj6mpGh5mZQG8=; b=MzI6GhXV8L/vMsglr/Y1ZURkEYJq+kQNZndiOoxQtZ2GVUEPJ60YKtFO5QlrU4MWHU kEnJKyvvkB8dGG1rlywny+m9m0qEgDxMmdIeSxJrGG0xNLt/HFjyzVe/VJkhYJBxAG+8 XPtDJvDIaBKQoIsI05RPCh1iCfNUAYuNshEFpFDZyzFy8BYifQqJT6xMZ8fGw4Ucpeo2 LgYP1ggWbC0wNIAvuFDJX8HTwc+QWjing37wHeQw7sIO6KefxGRMdrMzvtJZX8uASEBU TpnG7E1xVstHx2qwpIeLSz2yxCmup6kav/ZshBQGzveSdR4NDH07dnIheGcdWYzA7BWm u62g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@android.com header.s=20161025 header.b=n59zopJ8; 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 b13si2467494pgw.472.2019.01.30.15.09.33; Wed, 30 Jan 2019 15:09:48 -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=n59zopJ8; 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 S1727100AbfA3XJH (ORCPT + 99 others); Wed, 30 Jan 2019 18:09:07 -0500 Received: from mail-pf1-f195.google.com ([209.85.210.195]:42069 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725768AbfA3XJG (ORCPT ); Wed, 30 Jan 2019 18:09:06 -0500 Received: by mail-pf1-f195.google.com with SMTP id 64so523848pfr.9 for ; Wed, 30 Jan 2019 15:09:06 -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=qgPj5JLMKLEw4/JFNr8xubY/6A1uXZAj6mpGh5mZQG8=; b=n59zopJ8QUYKz71rRaVQp6eODJdyuBFzzZYh1xJUbA150GJ1chHrUHfPQJ5yKaG6Nx abpvyyUvsESAKx6F83VAL5P9xNHbeLlP4T8UTUip+54sfAetMey1nQtiaEvBH/9bQjXb 9ALc6S5aQdHujkk6wCXAjFDd0pivVl1J9yh54ZmXtrpTdTOXAx7k2rB2cL8gpMgh8zz6 T6wzfInl2e1KchaJ1htC1AUYt5ZLOMJdr9JKWqY/9bGtpYTUyaOM6uaJxOkaVj/mKAgb wIY+eP+gQxAug59lS4ClgsP3tM5Gh9oaWsITS761QW8lpNCEBsyinwrxNr13fBDGVUTe p70g== 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=qgPj5JLMKLEw4/JFNr8xubY/6A1uXZAj6mpGh5mZQG8=; b=MQzlXg+GsAZqph7zWyWfngcQtYL2k7D2U8frFAbqGIAYnKIKYDGjZCIs0rb0LWF9tN gUAX2wlUHju27a5jtHr8UOlU6DSISek1TWwtxpWKogXcQvJxIVp25WzKuLYcxojgZHIy tCt5vuPWW5hqG0KcdYI1McndoBroHsAwqH1/beCYFY9+SSZc2zwmKvJvv0QO8Pk7BW0Z aYnueuiyKb2Bb4iTPytBYvBY/YrtHpMXEFaQPAH0O4X4tr0A6KFzcNAA7cbiOOLRqx6C D1gV2QBf3qcw1kYgD5B8u4DspfDtsey72xvq363pfs+jnYPQVW/DSteds83ehCFNsPuA Y2QA== X-Gm-Message-State: AJcUukfRChorfS/z7Q5YwDminwrvwk0eM0bG0zbSpSMdNxV0GnO9eqev UVBwtUEilLoKoWjgaumHk5L80w== X-Received: by 2002:a63:dc0c:: with SMTP id s12mr29604211pgg.398.1548888430917; Wed, 30 Jan 2019 14:47:10 -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 w136sm4219190pfd.169.2019.01.30.14.47.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Jan 2019 14:47:10 -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 v2 0/7] binder: eliminate use of vmalloc space for binder buffers Date: Wed, 30 Jan 2019 14:46:48 -0800 Message-Id: <20190130224655.255149-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 v2: remove casts as suggested by Dan Carpenter drivers/android/Kconfig | 2 +- drivers/android/binder.c | 460 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------- drivers/android/binder_alloc.c | 299 +++++++++++++++++++++++++++++++++++++++++++++----------------- drivers/android/binder_alloc.h | 47 +++++----- drivers/android/binder_trace.h | 2 +- 5 files changed, 534 insertions(+), 276 deletions(-)