From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D9504EEB580 for ; Sat, 9 Sep 2023 05:15:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3A9486B0115; Sat, 9 Sep 2023 01:15:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 359046B0116; Sat, 9 Sep 2023 01:15:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 221676B0117; Sat, 9 Sep 2023 01:15:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 0E8426B0115 for ; Sat, 9 Sep 2023 01:15:32 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id BD1B31403BE for ; Sat, 9 Sep 2023 05:15:31 +0000 (UTC) X-FDA: 81215896062.15.A0AFBBB Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.54]) by imf10.hostedemail.com (Postfix) with ESMTP id B2AAEC0004 for ; Sat, 9 Sep 2023 05:15:28 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=a5RAB88L; spf=pass (imf10.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.54 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1694236528; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=pvt6Uv/sDq5WGIzPyS8q3KbPei3fZMH2luN+X6zhW4k=; b=Ji66BdobUrEzfx95XiMcN5uyAFcAqEUwo8WFrrPn/hZ+zbDm2GtM99TPGCIHfZm/QLA8CD GvxeJKKVhLX/J1rBJZLE9jOsFjH/KWXMUWvkC4UAtwunIogFnbn9N4Q6Pf5Z1dtbBZpHp5 x1ypXVMeOcXkKurTwiU1uaoENehyvbI= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694236528; a=rsa-sha256; cv=none; b=yOzcZypRP2novCBJ4vTlbwwr0PafX4v2ZZJS3ThopUwooUIwYKnxhcPpSP/LIRZaCVXVum jwh89TXBVbUnQ+hwuHuqRnjO8SciaCnopGcECfbCLHfbZa1ngDTfX/RWrYdjvvbaTWSZsD Kdv8JecSUsJOd3ZmQn9sCS3qAZ9oG2E= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=a5RAB88L; spf=pass (imf10.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.54 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-986d8332f50so351864966b.0 for ; Fri, 08 Sep 2023 22:15:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1694236527; x=1694841327; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=pvt6Uv/sDq5WGIzPyS8q3KbPei3fZMH2luN+X6zhW4k=; b=a5RAB88L+al7zYzQ0paOzJr2jTub1nqzwK4ovZNuJ9MrF8fJzxu/g2cxEWYry/D3sw bxr2G8tVX+kkJWWMAdQTUjuNzQzlayLM7AILpYwI0gALBpHN5L6xOkqaLNCBtON/+MWk PrzodMao6XgnfSbiJreVrbt05sxZ00qZuF7BQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694236527; x=1694841327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=pvt6Uv/sDq5WGIzPyS8q3KbPei3fZMH2luN+X6zhW4k=; b=pRXRkKuzogcpcDu1rnJQ8n+tWJORJ6giV7O6x/+Wqp2pk+j8bdqqO/SX8okQw0vHFy m+mGE4tEmwhAbhyyCFj5MMjSUPaGSUmltKC+lhCGNrwuG0hCAjJsHB/ZsZ6hD5hqgh6/ Wm+wVaLjUa2jaiI+7N4ka0n+MvE4xsakfkaK5qQR1J63Wo5eWGM/kMUncagEfrZXY71D zOOF4K/Vn7Us3MKlXGcQAAeIRogJ4V4m7BDZI2MZWnF3Os2wzfIc2pcqLv57GQOrcuEu I+Lwi+xYclkxcwKxhktFi0InOq/w6yE3SsFvcKd7Pu8ol21HeZSAQkQk1b4GOWgsLSgD wh/w== X-Gm-Message-State: AOJu0YxdXVQ6AeWujXyaR/1EHLYSpfhX8b9pUHbjvIRMaq8YVkP5nBWD EQPvHZJrfXrR/C5aQ9tTq9Es825RQAZFdcN89P0QiXl5 X-Google-Smtp-Source: AGHT+IEX1/IDUKALtSpZjSYqOblLoho32sGRAE4EqQcUHP6W+NM0gassmn9BXxKtHbQIaNkZ7DuHOQ== X-Received: by 2002:a17:907:2c4b:b0:9a1:fb00:cf86 with SMTP id hf11-20020a1709072c4b00b009a1fb00cf86mr3403145ejc.47.1694236527111; Fri, 08 Sep 2023 22:15:27 -0700 (PDT) Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com. [209.85.218.48]) by smtp.gmail.com with ESMTPSA id pk5-20020a170906d7a500b0098e2969ed44sm1866031ejb.45.2023.09.08.22.15.26 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 08 Sep 2023 22:15:26 -0700 (PDT) Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-9a9f139cd94so231048566b.2 for ; Fri, 08 Sep 2023 22:15:26 -0700 (PDT) X-Received: by 2002:a17:906:53c4:b0:9a5:cc73:a2a6 with SMTP id p4-20020a17090653c400b009a5cc73a2a6mr3122652ejo.14.1694236526447; Fri, 08 Sep 2023 22:15:26 -0700 (PDT) MIME-Version: 1.0 References: <20230830184958.2333078-1-ankur.a.arora@oracle.com> <20230830184958.2333078-8-ankur.a.arora@oracle.com> <20230908070258.GA19320@noisy.programming.kicks-ass.net> <20230908225018.GB32012@noisy.programming.kicks-ass.net> In-Reply-To: <20230908225018.GB32012@noisy.programming.kicks-ass.net> From: Linus Torvalds Date: Fri, 8 Sep 2023 22:15:09 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 7/9] sched: define TIF_ALLOW_RESCHED To: Peter Zijlstra Cc: Ankur Arora , linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org, akpm@linux-foundation.org, luto@kernel.org, bp@alien8.de, dave.hansen@linux.intel.com, hpa@zytor.com, mingo@redhat.com, juri.lelli@redhat.com, vincent.guittot@linaro.org, willy@infradead.org, mgorman@suse.de, rostedt@goodmis.org, tglx@linutronix.de, jon.grimm@amd.com, bharata@amd.com, raghavendra.kt@amd.com, boris.ostrovsky@oracle.com, konrad.wilk@oracle.com Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: B2AAEC0004 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: ri4ja6bmhrytj645tsb7b18f1r48w5yn X-HE-Tag: 1694236528-1070 X-HE-Meta: U2FsdGVkX1//Gk90zZ2TBRR2Ii/iqUf1dDv7cAj9gVcj42eKUvcul6gDmFMTxZHIzzHCA1the0YGX4umHwI5bqMzBzqQVKp/utKzjWPVwU0x5uOEAiA/34rcObWMuJmq1DvzWOmjq/ybvzXBcd2HzxPTE/RbfUgeAHD30YRJS51PJmiey4bssrwEbstNdLaxzTpRFwYqTNJ3+ZTVgUnntR/tTilxjG51/LCXydiQGAu0fnGa8kHxguUv3wco2TDY3EIQktE52DDzXft6gJjm0NgozH+CGZvyTj5zecmcXLsVKVaLVfE1onOn4cikduXOkZnTTQkvGdvYmYKd9g4bovzYbKtFikZLl5tTiForPCABWWTww6Z11wtllut5i4bGN/xug6C5sf5jZHag7EzB5Wgb/C4RyE0KorripqZZk81KueOehH6fHWCNxkmuv8SJi07bHdc2X+nSBUGtkucrNhlfOYnmu3NeHUqpxGaTyYI849oMDymtyodAhT2LuWjhQmsDLEIQAkdImcLVg60sAuFwSC/7KzDXvAoNkPdu5aT63I4Lk2g3+jDTSwB9iVTZvKZRlf/2MQpXRh2nGUrBLzwI1UEz3Bh7LSyQ8S8jAHTIizm2mpZnvtw3/FJHoniaAqna4qXSewbYj+mWyAqk3doZXZ8HjU8OeH6XOU9B1sRcm9z++YT+MuoZpfJDUVP4r7Ra1rmbKEJOrrF9W0mfIAbJBoyx6YK0ku1puwA2xJw5JCN7o5+iOzdsVY7Gb86YkpMUVv79ZkzWO/EtXyaobAd6fv+rpXuI+99siL11q5ISrlHTB5ME9b/P4J0RHRG6JvDX/KP2uTLyB5EBPyHbXaj0iAiOGGQ4E+cNNtgE0GR859VRrPifu2TLS9i+hqHuBGb9CTFOC7CQFov0JUuwdYccMpv7RLe4DQWgSCFIJS0ltEMk3v2oa9bKX+eiXvbZIJSqwhqq7NZPV/FICab W+TWG7ng oZHoScANhGMxoP1/Ajn2oCCHAnqGuQAdoSQLtLPe/LYQ2JLzU9EROCvGQm6RR5XummulbBhdRiYXOv0Ms85EVVMYNTBeHCV4ka0/gEThUYpFTkMMWrF0W9PXIHZq4NRzb4w4Xmn5IgjYuTP6TGWfuPNlk/2+oGSlQyZHD4EpTGYfKLykNxQXk5lB0pCSRjqsSIrnel3Upsvh6LuJmIAn644bD9/gbTGpBl/qU/MPQYvMjMVbreKJKk8Y5kG+Hg5YOQHJ90mZSrDUhiI4nYYl6FBpwKKuiJp0Qc25wovY/RV79qWSM8Ji24GN5yTwrU5ADVLUfWQC124W/fj6NeoukeFNYls66tXq9BvK1cnAM+74rUzSi3MNZlj9Rx2n0gIW/sC0iEwsoI3VdndQsE7qYVilLbqz7dOOO0n41rRwGcNze8mx4/8iwOQ4NduL5gY77bp/Y4W16ckzxZPf2mtLEAEsAbpkfT+mekk3X9GUaVd8NtlS/5CQkExKzC2Kt/yWM/pgkIb0epzhjBReCWy8A9xFy8W/d5q4M0xVREwWqsHmGfaxvvBccLN29yxeSNgvRLt7GbCZ0/aXPNSXpuw/QN6hY18Fb/EbIO++7OT8TVMCWJXk= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Fri, 8 Sept 2023 at 15:50, Peter Zijlstra wrote: > > > > which actually makes me worry about the nested irq case, because this > > would *not* be ok: > > > > allow_resched(); > > -> irq happens > > -> *nested* irq happens > > <- nested irq return (and preemption) > > > > ie the allow_resched() needs to still honor the irq count, and a > > nested irq return obviously must not cause any preemption. > > I think we killed nested interrupts a fair number of years ago, but I'll > recheck -- but not today, sleep is imminent. I don't think it has to be an interrupt. I think the TIF_ALLOW_RESCHED thing needs to look out for any nested exception (ie only ever trigger if it's returning to the kernel "task" stack). Because I could easily see us wanting to do "I'm going a big user copy, it should do TIF_ALLOW_RESCHED, and I don't have preemption on", and then instead of that first "irq happens", you have "page fault happens" instead. And inside that page fault handling you may well have critical sections (like a spinlock) that is fine - but the fact that the "process context" had TIF_ALLOW_RESCHED most certainly does *not* mean that the page fault handler can reschedule. Maybe it already does. As mentioned, I lost sight of the patch series, even though I saw it originally (and liked it - only realizing on your complaint that it migth be more dangerous than I thought). Basically, the "allow resched" should be a marker for a single context level only. Kind of like a register state bit that gets saved on the exception stack. Not a "anything happening within this process is now preemptible". I'm hoping Ankur will just pipe in and say "of course I already implemented it that way, see XYZ". Linus