Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1199408ybz; Wed, 29 Apr 2020 17:02:23 -0700 (PDT) X-Google-Smtp-Source: APiQypJ24qPZx23vbnrpLGNJ+xM0wHvsQlWc5sTnPXPPy5YrhmZwK/5Io0yeCku/eEGjaXWshtv3 X-Received: by 2002:a17:906:49d0:: with SMTP id w16mr276952ejv.364.1588204943375; Wed, 29 Apr 2020 17:02:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588204943; cv=none; d=google.com; s=arc-20160816; b=qYAhOyuIk49gYFIQeHuztRrDYJJO/OHdKQmVqT0GljC2qWDLlzLU3IeoN9YNWKOa/s A9H9sM/kXvr7ShdCxyKcR8NeqfMZQOnsScednDhmmMCc85v7o46U1k3y2NzRdJmTNFjg hOJ+sd3uv281KCcSvyfU/oJnL7mFYE3JGNn16W+WFx82Cpb63vUduql5m4VKHqQ9WRYb VE69VMsjfnSDJ7MAT1B2l59sNSDJ6a89npKZHQZjRZVBQrU23a6VCZD80DdOP3hsYIFB Na+MO9EzBZQrmslSXOR5DTIT8e6HvdrzTP5MslYVaKrRTlNNPvpYRZguC1FlrkeKtNbI +4wA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=JBb6YUzJ0ih00bACFlDgj6pLxzVV7c+ybx+1P5/b1gA=; b=mkR8XV2N3tNPZSq3FhdYAynYXOHkIfIZFHO9+zOuyUVPn4Ff4cC9XqK0iEMHsz90Pj nRvl5M4fBMQywG5ZXsv9yDCkZr1cZIA8KqY6njD+cZ6ezgBUy+kJ+69zj33T3fKwLh0p N1vImxACc/4aXHBxxCq9ifLcs5zQ0soj75wDNAslDmzYhjLOQS3HNCTprIgvSCIrS0Kc MaSwbmpifp2j7c28KQvL29q9uFzxPFf822upRIc9kMQdk8vVqAmxoIGT2wBzONrKGvCI +mkmnulRVxpzE0udcoNwsfmvwGbCOo3tCj7GogFSbY5NN9Ap9wIM5g0oN+EUpDgpoxaL mbxg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=vuI12hdg; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id rp4si4837998ejb.205.2020.04.29.17.01.48; Wed, 29 Apr 2020 17:02:23 -0700 (PDT) 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; dkim=pass header.i=@google.com header.s=20161025 header.b=vuI12hdg; 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=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727792AbgD3AAT (ORCPT + 99 others); Wed, 29 Apr 2020 20:00:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726511AbgD3AAS (ORCPT ); Wed, 29 Apr 2020 20:00:18 -0400 Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1DFA2C03C1AE for ; Wed, 29 Apr 2020 17:00:18 -0700 (PDT) Received: by mail-lf1-x143.google.com with SMTP id d25so3200065lfi.11 for ; Wed, 29 Apr 2020 17:00:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=JBb6YUzJ0ih00bACFlDgj6pLxzVV7c+ybx+1P5/b1gA=; b=vuI12hdgPQQ+hpHUcCjrJQtfA0k+PEgPRHdnovYXVvPCR9p1zBWBWMpLdVw6AQDvpK iSi1wOvQhrm4/B+XgXoDvQpnwCByRuEkSSToUnrHM4PznjWcwaMASYK0zJkGv5/eNj8u 3VJRNbGOnvfwMcGuAAl4cZ8UAzwg0z6TOuaKgg8yNuE4zB1Mc14MIsPJHBofFzFa5VLO 54A24oLNGsTKANQuyAUIITPGN1i9vQbad4PRe/w58yuwH3gYqlHyuRnGpYw7Ygr+vjXF j8VPd9Ek1MSG/puz1EaZy5J0axewfUTdd3fPRiwrrx9NI4Mi1Q3p8RObzGAj4EIyeVIE 436w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=JBb6YUzJ0ih00bACFlDgj6pLxzVV7c+ybx+1P5/b1gA=; b=gzlhLhai8ByKQb50Oj4qbAbA2/Csfo1eJN5cW81TCiwK69o+YLi6fnZcMgRf7aLETX FHl7hgRaOataWeTcy0RjlpSVJDPlaRzDXHEOkOYosuH2Nmpm+y16hrXYv9IgbhDdFotE ky7RTWGXmiMUS9hQ0l1Pzr3l+EkZ4fVSU9jzjgbjwPV/fxYlimX/TSM1e+Du8EiP7pLo YI6qamAnScAzDnKAJQlR+5TPIcfknYWNRfVW+fQByfPPNmYgOlek1ra9qiyurUr8MFV2 Gxu+rhE6MvjsZ04ZW69Rhhwh5+uTSutT36ocYvgT/Nt5z9xbsXEnwxfJ2Q1hBvUXSDzK Xdeg== X-Gm-Message-State: AGi0PuZQCMoejaxHXQDbeWHV0zHQ4gqlJ463cSc4/+TJQ6lThGHKVrxh spBDRZUo338J2HUPQW860b3ypGWHYfVRpz7E663Tig== X-Received: by 2002:a05:6512:104a:: with SMTP id c10mr227612lfb.184.1588204816199; Wed, 29 Apr 2020 17:00:16 -0700 (PDT) MIME-Version: 1.0 References: <20200411182043.GA3136@redhat.com> <20200412195049.GA23824@redhat.com> <20200428190836.GC29960@redhat.com> In-Reply-To: From: Jann Horn Date: Thu, 30 Apr 2020 01:59:49 +0200 Message-ID: Subject: Re: [GIT PULL] Please pull proc and exec work for 5.7-rc1 To: Linus Torvalds Cc: Bernd Edlinger , Oleg Nesterov , "Eric W. Biederman" , Waiman Long , Ingo Molnar , Will Deacon , Linux Kernel Mailing List , Alexey Gladkov Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 30, 2020 at 1:22 AM Linus Torvalds wrote: > On Wed, Apr 29, 2020 at 3:38 PM Linus Torvalds > wrote: > > > > If you do it properly, with a helper function instead of repeating > > that fragile nasty thing, maybe it will look better to me. > > Side note: if it has a special helper function for the "get lock, > repeat if it was invalid", you can do a better job than return > -EAGAIN. > > In particular, you can do this > > set_thread_flag(TIF_SIGPENDING); > return -RESTARTNOINTR; > > which will actually restart the system call. So a ptrace() user (or > somebody doing a "write()" to /proc//attr/xyz, wouldn't even see > the impossible EAGAIN error. Wouldn't you end up livelocked in the scenario that currently deadlocks? Like: - tracer attaches to thread A - thread B goes into execve, blocks on waiting for A's death - tracer tries to attach to B and hits the -EAGAIN If we make the PTRACE_ATTACH call restart, the tracer will just end up looping without ever resolving the deadlock. If we want to get through this cleanly with this approach, userspace needs to either deprioritize the "I want to attach to pid X" and go back into its eventloop, or to just treat -EAGAIN as a fatal error and give up trying to attach to that task.