Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp1635427pxb; Fri, 13 Nov 2020 19:31:27 -0800 (PST) X-Google-Smtp-Source: ABdhPJzJtO3NtvKTTi381ODINdE4WPaNN1uyVhHyvEwjUQARMC+/v5iebYVH/5lUAgrIezktpZ5b X-Received: by 2002:a17:907:20f8:: with SMTP id rh24mr5003146ejb.210.1605324687699; Fri, 13 Nov 2020 19:31:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605324687; cv=none; d=google.com; s=arc-20160816; b=1FQUwgItIrSt+31lIKACXofm+WmVwI1+lXtU4sbSMBwwfpXTkeNPsmooxcelL0WpXR R0S9vRYRpA6b2jhVjw+NNRbRlcIFZ1C56M+DXgfL9U85XhaPxnC/SSXJdp5U8nK+LQm7 tdxe5xrQ3h9TyFulemcHY5t9n+ule/5zUcx0ZI+z5HYCogF6dc4XPO48u1LPnqgWg8WJ gAHjzMa53CCJWxC8CfsB0uFjWoNqt//tL9iKbeiAOTWvUQLw8zRrvZsMxAEK6EFkxDY0 O4iSp9qXuzsVM7VzjY9anTO94snaNvX50SRrqW9dCcTsyoyRheb2AJoWENhCGH9pPOjE NOQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=ONd26n98wzbK3csZJRkFlxG1/fRRnY7PGYwkBUsanVw=; b=qIBxHk5/ZOvfe73gUr4tQ2+3uy4Z8wufMjea2BsH76CAVn5MvF4G3y2vCH9XVBlRHG tgRqaRfr3ReUoxcmdQgKTEAJUGlTskA/gjLvE8ebapDgP1+/+m9L48UvRhh5jDQYhULl LTujGHzwqthGQUqJbbPbtZC7GQkp+yZI4YowIPiCyf63cQ3eCJTGTITl76Vnay4PE/wx SUHokdujfeB49bs9cakj/dc+WM+Pg45yvknDtGdSj4Gg1t8N0ipq10EYOIizcaxotwvK jHLKE+EZHfR5d2CRrw+ZOhWHNm6o5AC4guDrincxnxQxCLtaFcndySgQ0L1n5XDl2NDF jDPQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g9si8041013edn.361.2020.11.13.19.31.02; Fri, 13 Nov 2020 19:31:27 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726270AbgKND3l (ORCPT + 99 others); Fri, 13 Nov 2020 22:29:41 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:58474 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725981AbgKND3k (ORCPT ); Fri, 13 Nov 2020 22:29:40 -0500 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: krisman) with ESMTPSA id 67B041F47973 From: Gabriel Krisman Bertazi To: tglx@linutronix.de Cc: mingo@redhat.com, keescook@chromium.org, arnd@arndb.de, luto@amacapital.net, wad@chromium.org, rostedt@goodmis.org, paul@paul-moore.com, eparis@redhat.com, oleg@redhat.com, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, x86@kernel.org, Gabriel Krisman Bertazi , kernel@collabora.com Subject: [PATCH 00/10] Migrate syscall entry/exit work to SYSCALL_WORK flagset Date: Fri, 13 Nov 2020 22:29:07 -0500 Message-Id: <20201114032917.1205658-1-krisman@collabora.com> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Thomas, This a refactor work moving the work done by features like seccomp, ptrace, audit and tracepoints out of the TI flags. The reasons are: 1) Scarcity of TI flags in x86 32-bit. 2) TI flags are defined by the architecture, while these features are arch-independent. 3) Community resistance in merging new architecture-independent features as TI flags. The design exposes a new field in struct thread_info that is read at syscall_trace_enter and syscall_work_exit in place of the ti flags. No functional changes is expected from this patchset. The design and organization of this patchset achieves the following goals: 1) SYSCALL_WORK flags are architecture-independent 2) Architectures that are not using the generic entry code can continue to use TI flags transparently and be converted later. 3) Architectures that migrate to the generic entry code are forced to use the new design. 4) x86, since it supports the generic code, is migrated in this patchset. The transparent usage of TIF or SYSCALL_WORK flags is achieved through some macros. Any code outside of the generic entry code is converted to use the flags only through the accessors. The patchset has some transition helpers, in an attempt to simplify the patches converting each of the subsystems separately. I believe this simplifies the review while making the tree bisectable. I tested this by running each of the features in x86. Other architectures were compile tested only. This is based on top of tip/master. A tree with the patches applies can be pulled from https://gitlab.collabora.com/krisman/linux.git -b x86/tif-cleanup-v1 Please, if possible, consider queueing this for the 5.11 merge window, as this is blocking the Syscall User Dispatch work that has been on the list for a while. Gabriel Krisman Bertazi (10): x86: Expose syscall_work field in thread_info kernel: entry: Expose helpers to migrate TIF to SYSCALL_WORK flags kernel: entry: Wire up syscall_work in common entry code seccomp: Migrate to use SYSCALL_WORK flag tracepoints: Migrate to use SYSCALL_WORK flag ptrace: Migrate to use SYSCALL_TRACE flag ptrace: Migrate TIF_SYSCALL_EMU to use SYSCALL_WORK flag audit: Migrate to use SYSCALL_WORK flag kernel: entry: Drop usage of TIF flags in the generic syscall code x86: Reclaim unused x86 TI flags arch/x86/include/asm/thread_info.h | 11 +----- include/asm-generic/syscall.h | 14 ++++---- include/linux/entry-common.h | 44 ++++++++--------------- include/linux/seccomp.h | 2 +- include/linux/thread_info.h | 57 ++++++++++++++++++++++++++++++ include/linux/tracehook.h | 6 ++-- include/trace/syscall.h | 6 ++-- kernel/auditsc.c | 4 +-- kernel/entry/common.c | 45 +++++++++++------------ kernel/fork.c | 8 ++--- kernel/ptrace.c | 16 ++++----- kernel/seccomp.c | 6 ++-- kernel/trace/trace_events.c | 2 +- kernel/tracepoint.c | 4 +-- 14 files changed, 130 insertions(+), 95 deletions(-) -- 2.29.2