Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp4011744yba; Tue, 23 Apr 2019 13:29:08 -0700 (PDT) X-Google-Smtp-Source: APXvYqyqOOhmXOu9P3D7azJIqSN86Gmo50Wo0At1gieEaM9wAdy4w7KrDMy1JaAjINTYrOT9/sI8 X-Received: by 2002:a17:902:70c6:: with SMTP id l6mr27435431plt.95.1556051348435; Tue, 23 Apr 2019 13:29:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1556051348; cv=none; d=google.com; s=arc-20160816; b=yPpQ2Qekz52PDsqPbsmIIfThqJPpT8vrOXgeObMAL2bxdnny0OkairMW3pO8h0viJS Xfi80m8K/gX+Tvz/cX6UVIIHj/UvmV12K/EF/lUfAjvSZJdd03W/4D96dgtfqZFv6wio 2XQZIo/6SB8cB1Ng6Hy6XtE+ML3aCBhg3eAcXI2re5nZzvoXS0EijH7jWhhkbyqK4AXw rYkAc7VN8aG6qQKTaAwTtuJEG8hBOvoz1ZEMHVnuOoYJktfNF4weRNbjAGryFq8RDFGW JdSP63P593RU2QafdOZGRX3ejPzSLwO95RY5ek6dD9KIbOpDw3CwleAOJ6F5MmvR3Mwh en0g== 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=Tgn11LGFeELKyUgvqpY2du2plaeY7T4q1kaUk3Z+uew=; b=Dmi/pACnMrXUJR7y9MB/k/tPJV3kNyCZP5wjg8Eadmaik/EAKAo5GngiHKni7LBKFR tSPPpdiETkreqIhp8+HssfcNFePuvsK/POVb1CBTpouLxKKyGW42M7FGBkD2vLk7ILqT mSy3nHvfiGpb4HnQgllVM3qKszOp2C+S8Yvlv7NxkjV4HJaNStpRUy5Bi5l2z6E8xmSw NMWvCE7hM2gzb3iAhV0mLac5re0KWPyzM2FLLpdklJPRo1LhZtenyYEJmsfRYGhYmR/o jgtbb5FPxqnFODyg5uYRY1bGzgMPPepiEgWK+UtAJnCsBQzucE0ARZGofRO5OIvP8uBd 3BTA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b=XV+JotLC; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h189si17209919pfc.283.2019.04.23.13.28.53; Tue, 23 Apr 2019 13:29:08 -0700 (PDT) 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=@linux-foundation.org header.s=google header.b=XV+JotLC; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727184AbfDWU1w (ORCPT + 99 others); Tue, 23 Apr 2019 16:27:52 -0400 Received: from mail-lf1-f67.google.com ([209.85.167.67]:34316 "EHLO mail-lf1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726088AbfDWU1v (ORCPT ); Tue, 23 Apr 2019 16:27:51 -0400 Received: by mail-lf1-f67.google.com with SMTP id h5so12765752lfm.1 for ; Tue, 23 Apr 2019 13:27:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Tgn11LGFeELKyUgvqpY2du2plaeY7T4q1kaUk3Z+uew=; b=XV+JotLC70gIzBW9D2y8SjKqs6enqpD9qJNN1YzBbjOFrMeC8SmLZ+EJkmnPEPYdPH n6+BqR+ENhaP34iI5skB4mYQ2uwC934+SWHf80RqZ1hPzV+RyOcI+fUtcO+le9qUjK8x IB7Z945H7DIbZPMWCP8OMhLV93lOOsmmWmZsc= 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=Tgn11LGFeELKyUgvqpY2du2plaeY7T4q1kaUk3Z+uew=; b=sXux7SNzM8JKK3SshE4knrRzxk+aE/HoYh/ql2tcra9pkUlKE42lf+c00d/AMiq4mf RAVx8Kp6gOvmB5/tmXO67O9xUWQHsv94ZlcmQmafs/Q8mGvx1iwGHWQm0zbflE0UNqqR uW1g26VG0vVlKrw7lqKkVCeBexxmdhHFKjegReWYGICGM0AXOzv1JeVyx3OZzhnDdzEm SBntLFZxJAq1TfLX6llnXdSfzpuAWJqEoJC0toqH5Uo0fjsfYKiBrArufgiN7a43+EqC HxdBxz4Eq9vc+TvliGXBKmP9e2VdimW7G3ll9hNSJTlqyI7E1bVyHgr+ItFZu5S0EybC /ElA== X-Gm-Message-State: APjAAAXhxi0KUIt6UX059yVGaAsaCp3ND362iNtrpQXu36iK8s+uKiQd TZpFbfoP06tgtbm/+90PibNzQE7KvaU= X-Received: by 2002:a19:ed04:: with SMTP id y4mr14880401lfy.165.1556051268828; Tue, 23 Apr 2019 13:27:48 -0700 (PDT) Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com. [209.85.208.173]) by smtp.gmail.com with ESMTPSA id r3sm3658721ljr.7.2019.04.23.13.27.46 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Apr 2019 13:27:46 -0700 (PDT) Received: by mail-lj1-f173.google.com with SMTP id k2so452648lje.10 for ; Tue, 23 Apr 2019 13:27:46 -0700 (PDT) X-Received: by 2002:a2e:3c12:: with SMTP id j18mr14948521lja.193.1556051265814; Tue, 23 Apr 2019 13:27:45 -0700 (PDT) MIME-Version: 1.0 References: <20190419120207.GO4038@hirez.programming.kicks-ass.net> <20190419130304.GV14281@hirez.programming.kicks-ass.net> <20190419131522.GW14281@hirez.programming.kicks-ass.net> <57620139-92a3-4a21-56bd-5d6fff23214f@redhat.com> <7b1bfc26-6e90-bd65-ab46-08413acd80e9@redhat.com> <20190423141714.GO11158@hirez.programming.kicks-ass.net> <4f62d7f2-e5f6-500e-3e70-b1d1978f7140@redhat.com> <20190423193435.GX4038@hirez.programming.kicks-ass.net> <88ba7be0-9ec5-941e-1b3f-80fbe05fe3a0@redhat.com> <20190423195559.GY4038@hirez.programming.kicks-ass.net> In-Reply-To: <20190423195559.GY4038@hirez.programming.kicks-ass.net> From: Linus Torvalds Date: Tue, 23 Apr 2019 13:27:29 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] bpf: Fix preempt_enable_no_resched() abuse To: Peter Zijlstra Cc: Waiman Long , Ingo Molnar , Will Deacon , Thomas Gleixner , Linux List Kernel Mailing , "the arch/x86 maintainers" , Davidlohr Bueso , Tim Chen , huang ying , Roman Gushchin , Alexei Starovoitov , Daniel Borkmann 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 Tue, Apr 23, 2019 at 12:56 PM Peter Zijlstra wrote: > > Unless the very next line is schedule(), or implies it, one must not use > preempt_enable_no_resched(). It can cause a preemption to go missing and > thereby cause arbitrary delays, breaking the PREEMPT=y invariant. That language may be a bit strong, or m,aybe the "implies it" might at least be extended on. It doesn't need to be "schedule()" per se, it can be any of the things that check if we _need_ to be scheduled. IOW, various variations of "if (need_resched())" exiting a loop, and then outside the loop there's a cond_resched() or similar. Linus