From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5FD6F48A2C7 for ; Wed, 19 Aug 2026 16:28:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787156889; cv=none; b=DStTTYi7fLjuNI7jukQCqK0yN1g8vW7JYOCICla/oa/J0ZHcL2YWarfmD5dcj6R/6mKs6/ks0+6gLsvNlAjJiTHkeJxOYLthOpc8x4OusrlF22NnfzxeISFAcwXOQ2Cs78dEdBtfOB4CP5hNlV6ubh1yQ/807YCmo1pbZijND70= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787156889; c=relaxed/simple; bh=gBkLv+jThAx5yh/3wbxgQH1veZQSTAkQPzrM4LwL1J4=; h=From:To:Cc:Subject:In-Reply-To:References:Date:Message-ID: MIME-Version:Content-Type; b=i6j5bQLian/4J/Y0bzyyDCxi65IA/EH83Z9O8ZLi7DPNnijNtB1Dvo12OxznwXYmsZNLVGi/BKZZkqi1dSVBZHLMZaYifhkZ/nSbacHb6ic1Uf5AuP1xlv4ONOu9MmEUowHm+Nf6jETVjFVMuPUU+jmtvq4+CpbkrXZGwSuSKXg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com; spf=pass smtp.mailfrom=baylibre.com; dkim=pass (2048-bit key) header.d=baylibre.com header.i=@baylibre.com header.b=P1W8qIii; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=baylibre.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=baylibre.com header.i=@baylibre.com header.b="P1W8qIii" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2d560775ca2so9985705ad.1 for ; Wed, 19 Aug 2026 09:28:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre.com; s=google; t=1787156878; x=1787761678; darn=vger.kernel.org; h=content-transfer-encoding:content-type:mime-version:message-id:date :references:in-reply-to:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=RewVJCryqnh87giXeknqhfb7A3p8HtPWhy+6gjephd0=; b=P1W8qIiiPvER37kFg3sXJeRpZWxzIORuGdzY3eXE3KR2V2Ci2IvOLkJ+58zwj1dO0P LpyGTwup/LEQt8+eB5l+qtscRHL+LO5NluYo3dpOB781FK7us2T9Vdcf+rSm5gErY0sg sgioW7xn0/AxITBIsxZ1lMq5c4oYy1VmmOJG9STKLZoxK7nQZF++fMrHaYgnCbQZNOVe viyqFQ4JMTk5agQe6EMalGFFmV/3KRw6OsN/aYkLHDv87rcr2Fi1Rk6CmKhrtmQ6wtlO uaVYaxfQsAbFuikjg79YJc+fbIH5wl1wMcaLLBlo7LIP52ws3w0Pw6d4fNgD2wARK+jn 8dMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787156878; x=1787761678; h=content-transfer-encoding:content-type:mime-version:message-id:date :references:in-reply-to:subject:cc:to:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=RewVJCryqnh87giXeknqhfb7A3p8HtPWhy+6gjephd0=; b=Z+VRiKXxEJdrFNeM0P/xanXJaGzAUuh5D2TeqWSD6e6PYTJe4h7/c7DwxJceXWSWs3 CgGeK+Kzaqh96AqP+Qp/U3O0AJnhPYied/ckd8h1CPfCeIN+3cXABY1eC5snfrHCIvBf lNolFkIfnhD8RFcFOV3oxWyxCUyRH8yaMcbELkMGM3iq1aONWXl1oBEuB+9NEoOeR5+R SlJa0wpLs/sg0CeYKaiTvnzQUcrHUZwU42k0y6XGtK9ZtLhiyZ0rXZWMhsLhzG2GxV17 RiKDp0efVSbBUVbNtgRhrRoIBhJhWmqY+kpua3JWpnubKZ2Z3uH+lcFdqYFSHa70sY7X 74FA== X-Forwarded-Encrypted: i=1; AHgh+RpMveBsB23Gcczyw9YmHk+vE/h6mI/sXFWTUZYjkiJiWa2AhSiWNeMX1qWZmOjHktXlkZT50bd0y70hZao=@vger.kernel.org X-Gm-Message-State: AFuF++kLGwl9JB4b/mJZVX9+6IS4jEO0FTiFS3jPDR5amUNtlu9ieT8b P+/hhIDGqAUeWrYXnOZucEvuIX35W5gHyjYDsfINuqBbnkY55+Uv/IjRWKHikHPXioc= X-Gm-Gg: AR+sD12qScJKyGmwUrz7T9UY5lyIbUFy3L9L70AM9tmCzh1IV088Vjd1r36OY/PpjWu fGS8dFoY665YTFSemiEiu40/vR7UUSwfTCjjYn0xnOjh0N6scrEKUrzXa1HSKb8mRJ928hAjOH7 53xeUWoxuYwxXNhI8HcFKM8EGiSDdJkMwttkrEktJfa9zxLP4qodCL7IuxXmO+YSRQOSpdOLxJu Dfw9RZn1HY0t9IOBPfhyw4t3um5XEHg6R2LE70A1H82MJVWDNsj4GL9WGzPa4zZe5E6S2jD9AEg o9H4+JINSiy8FG4Y8i202mVi0FQOE4le3CqczB0TVOEtqBtJSZ7hmLYfvR2PLq7NB9IM03Y8mKV krtgxnVMQBUWra+V+EzcTwU2y/JaVnb231lMqAfYKCaiy9qp8SpKZ4RD6VsFF9MFj9tj3Ze02Nu oS6IX2xfhqg+TTcdDcpDnVEokgGvTzvUJm8+PO2hzcqNErG493X3lMgRC2IQ== X-Received: by 2002:a17:902:c94f:b0:2ca:e62c:9e96 with SMTP id d9443c01a7336-2d5fd6acbecmr106588785ad.5.1787156878204; Wed, 19 Aug 2026 09:27:58 -0700 (PDT) Received: from localhost ([71.212.202.210]) by smtp.gmail.com with UTF8SMTPSA id d9443c01a7336-2d5c1ecb2absm26359475ad.71.2026.08.19.09.27.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 19 Aug 2026 09:27:57 -0700 (PDT) From: Kevin Hilman To: "Rafael J. Wysocki (Intel)" Cc: "Rafael J. Wysocki" , linux-pm@vger.kernel.org, Ulf Hansson , Dhruva Gole , linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 2/4] PM / QoS: add lockless read for flags In-Reply-To: References: <20260611-topic-lpm-pmdomain-device-constraints-v3-0-75d69438518b@baylibre.com> <20260611-topic-lpm-pmdomain-device-constraints-v3-2-75d69438518b@baylibre.com> Date: Wed, 19 Aug 2026 09:27:56 -0700 Message-ID: <7h8q62vzw3.fsf@baylibre.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable "Rafael J. Wysocki (Intel)" writes: > On Thu, Jun 11, 2026 at 9:59=E2=80=AFPM Kevin Hilman (TI) wrote: >> >> Add a lockless read for QoS flags similar to the lockless read for >> resume latency (dev_pm_qos_raw_resume_latency) which may be called >> from atomic context (e.g. genpd governors running under a raw spinlock >> or in the syscore suspend path), where taking that sleeping lock would >> be invalid on PREEMPT_RT. >> >> Signed-off-by: Kevin Hilman (TI) >> --- >> include/linux/pm_qos.h | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/include/linux/pm_qos.h b/include/linux/pm_qos.h >> index aededda52b6b..439a9e779d81 100644 >> --- a/include/linux/pm_qos.h >> +++ b/include/linux/pm_qos.h >> @@ -219,6 +219,12 @@ static inline s32 dev_pm_qos_raw_resume_latency(str= uct device *dev) >> PM_QOS_RESUME_LATENCY_NO_CONSTRAINT : >> pm_qos_read_value(&dev->power.qos->resume_latency); >> } >> + >> +static inline s32 dev_pm_qos_raw_flags(struct device *dev) >> +{ >> + return IS_ERR_OR_NULL(dev->power.qos) ? >> + 0 : READ_ONCE(dev->power.qos->flags.effective_flags); > > So if you add READ_ONCE() on the reader side, all updates of it need > to go under WRITE_ONCE(), or the READ_ONCE() may still not be > effective. > > I don't think they are under WRITE_ONCE() ATM. Ah, good catch. Thanks for the review, I'll fix that in v4. Kevin