Received: by 2002:a05:7208:9594:b0:7e:5202:c8b4 with SMTP id gs20csp1202068rbb; Mon, 26 Feb 2024 01:52:06 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUQht43kLgMH3DC7cTi2R+cHd233wo3Tx7DHxvlCb7op8PG2rXDvkPu8oZdXN2vBu0wnsdMRnaJZUKaNegQQLwDmnXyyaAHeCIz4PwqyA== X-Google-Smtp-Source: AGHT+IHfnCA/dNK7lRMDHRXqXrIK1iz0Gcqq96Wm7hOwhqS893Wlb3iHZG/QgP+G6ADXdtxbCYPX X-Received: by 2002:a17:902:c102:b0:1db:c536:803c with SMTP id 2-20020a170902c10200b001dbc536803cmr5133898pli.33.1708941125919; Mon, 26 Feb 2024 01:52:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708941125; cv=pass; d=google.com; s=arc-20160816; b=s9bxDVhw2IsMSYzzl0ZlrzmLYMdahHlxtGlOZZcDHm+ATkq88Z0VGe0FPmicPgj40d j5mDKwCwC3LFuuzPHi9JIE4Z7TFsNbm0ersQZ1+W9aCeTAr1krD1Bp5yaeK9zOcgGypN MEQnkr7vXU+O19zr6A0lbTQZdHMBrpFbkIPHAzO/HZCFqODqoMzRY/qGx5lDUVVxm5TR rZgEQVoTOBnOcrGoIrieLLFBxmnMMZ34Dh2gE6QJ3LUriIJ+e7E2LFFI8xyh86yRNtBV q1YSjqmWIWzU/AgZOCjTCGQUKbMdJvz4YMPs/ApQTOtehL4Hv3Bgq3DDWpxUDJ/Vz/lC sBIQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=3PpUbqhc+g7vhrTDiU7KzbrIeL60wiFB52dzsG8i29k=; fh=OCyX/kR61aXbc+JERY1ZlGiaLd7DAWsVkaawWnv+sqM=; b=rE0mIghc5yPZDn4PQvZK8JB+DfUHK9p7KtrgCszBCQvOLDiXxscj5TMg1J++Ibehif fF8T4NV1oPFish8ZAuYD9LjC3RZ729IXQmGbT/A7UO8hK0U5pwQcMg3dVGCrAZvGZANE nlYIjqgkrXoXeyOrNk9ThEhG0H4SDrIQq/TpVat2C/vuAK0yMCIjbKfAvG2rwSN7sc45 46ufS6bk/ncaNSddvR1tmsmoT8stsn/f/bcXITJNXIm9doSAe5HOzJhdgSCpMgvCJUbv VnHSrS5WP432MwESCfAJN1GY0HTaNFubjBCl6cGsFvElZBqWpz4/bYA0emFn/VcpT+ru 9XOg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=R12ayGvb; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-81029-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-81029-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id t18-20020a17090340d200b001db9f6cc5edsi3384179pld.455.2024.02.26.01.52.05 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Feb 2024 01:52:05 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-81029-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b=R12ayGvb; arc=pass (i=1 spf=pass spfdomain=google.com dkim=pass dkdomain=google.com dmarc=pass fromdomain=google.com); spf=pass (google.com: domain of linux-kernel+bounces-81029-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-81029-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 566ED288020 for ; Mon, 26 Feb 2024 09:51:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 40DF512BF04; Mon, 26 Feb 2024 09:15:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="R12ayGvb" Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) (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 D15E8129A74 for ; Mon, 26 Feb 2024 09:15:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708938934; cv=none; b=JfSXG7h3Mu8idv59cJ0GsxQWby0zkv7qiReGajjgTyby1yWC/yJbL8UhVM3oqmFYy9UDPLHmgGvDg3ttDmQcP2AEq8QnMxLIwrHB63LlDawtBzkrJSd5RbT6Hglx1a01AzOhcnos+7d3Z6BJkMhLJC7uq4pgtL6crEjob7dBvfg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708938934; c=relaxed/simple; bh=QF9YeSn2bc4tYDCafTxeVXBSQs58EaDIiH/nuRQ20NI=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=Np2vIPdnuGEl2E9/otz6Ad3hzYsib8L3kJ0SLpbz1pWA3YnjEBuLwgv0JCcHC4usYWU+wJGlb5MXKkrOe5XrKl+k/2r0ooD/Qy8pcrsDnd30IE31Gg/eufpQuAUYDwE+soW3nBTBBYDhh1lzz74bLoAYHdwmoJ+8c3+bNk1t+N4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=R12ayGvb; arc=none smtp.client-ip=209.85.208.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=google.com Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-564e4477b7cso11382a12.1 for ; Mon, 26 Feb 2024 01:15:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1708938931; x=1709543731; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=3PpUbqhc+g7vhrTDiU7KzbrIeL60wiFB52dzsG8i29k=; b=R12ayGvbH08lYqy3CtK2M4FJOtfyDrXmDiUE4Vr12v4+XBR8Q7NAQqpSGLfwCzLvzu 6wZ/0CrFVpw6I59RqzAIimZkZIEWyvwloh7cJ9uzKzzJIXrJbCkGuHQAhW/N4PndBKh+ wh1EuusR1wpcWq6LqTf92jVqu1ZjqCP3iEos4QN3Ho2PvtAGPHcQsnzOfNmyNiTkvVRG LP0h4OIG8X/ox1qJl9+vy/TT4/PEXsj45rH4UYOTDmH/qaRrZU7anMSeIRHvsFrwHv/N oxAoCC09Ejkl2GnTAqRFtzHpt4Y++Q8IF9GYWlGJSKETX197PQedgwCAdPBmiTLc9wr7 7FzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1708938931; x=1709543731; h=content-transfer-encoding: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=3PpUbqhc+g7vhrTDiU7KzbrIeL60wiFB52dzsG8i29k=; b=KkHx7MiT0/0ZIX9ErvO2fAPDXCGnBcsc5ta5Dzt9DBUcgzjKaumXeZEq77JLdMB6U8 b2KClkCfhT7qkMMYDC8N3O5UyR8/V+TW7mw8M0QmYjEV26Z6YbcoWByI2XUsaWyOaBNF rG2ZHc7mjrrG3KaeDn9OQ4s4gSxo4Ca0exZ9F4AbSc21pJQ4dZR9b7ixOgVHICYbz9Zu m8NnLOZQV32d2VAL9xor3JDyrnMnIRkRGwY9yUqG64DUJgAWx9yAKJQWdl+zWtdDYAYT +uSPABpNr41W6m65wAmmcm7iKN/IxLK+TrD7OP39lSP8oKlkN9t4iGJdg+bXNGGkYTtW ZtIw== X-Forwarded-Encrypted: i=1; AJvYcCUKCuPTWPw50zzjRQXNB3AJW0030vDXYg7m6qPvzVTwYl7X24//LDwZrDxUF5d7qqswYUfTz7A1d9upKreBTyU4grsHO8FmgTkhb4fB X-Gm-Message-State: AOJu0YyXNg08dKPE4ZtgJEfCa54uPeQmEglnyAPmkcCH80pcb751ty6m yyHCsEAx2UXqgtUTmKETHPPsQSRoMQEdQc1mpWLfeqefY30ksrpsR0pp9JLxwnz3lrcBZ7y5aMN dUZMeYmnuMx1Z6arLJSBXa7TdurZrxdQr1inn X-Received: by 2002:a50:c30a:0:b0:566:306:22b7 with SMTP id a10-20020a50c30a000000b00566030622b7mr49949edb.1.1708938930851; Mon, 26 Feb 2024 01:15:30 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240223143833.1509961-1-guanyulin@google.com> In-Reply-To: From: Guan-Yu Lin Date: Mon, 26 Feb 2024 17:15:00 +0800 Message-ID: Subject: Re: [PATCH v3] PM / core: conditionally skip system pm in device/driver model To: Andy Shevchenko Cc: rafael@kernel.org, pavel@ucw.cz, len.brown@intel.com, gregkh@linuxfoundation.org, petr.tesarik.ext@huawei.com, rdunlap@infradead.org, james@equiv.tech, broonie@kernel.org, james.clark@arm.com, masahiroy@kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Feb 23, 2024 at 11:18=E2=80=AFPM Andy Shevchenko wrote: > > On Fri, Feb 23, 2024 at 02:38:29PM +0000, Guan-Yu Lin wrote: > > In systems with a main processor and a co-processor, asynchronous > > controller management can lead to conflicts. One example is the main > > processor attempting to suspend a device while the co-processor is > > actively using it. To address this, we introduce a new sysfs entry > > called "conditional_skip". This entry allows the system to selectively > > skip certain device power management state transitions. To use this > > feature, set the value in "conditional_skip" to indicate the type of > > state transition you want to avoid. Please review /Documentation/ABI/ > > testing/sysfs-devices-power for more detailed information. > > ... > > > +static ssize_t conditional_skip_store(struct device *dev, > > + struct device_attribute *attr, > > + const char *buf, size_t n) > > +{ > > > + int ret; > > > + if (kstrtoint(buf, 0, &ret)) > > Why is it int? It seems like flags, should not be unsigned as u32 or so? > The ".event" member in struct pm_message is an int, but the values assigned to it are used like bit flags (e.g. PM_EVENT_FREEZE=3D0x1, PM_EVENT_SUSPEND=3D0x2, PM_EVENT_HIBERNATE=3D0x4). Is this an intentional design choice? We might need to change the design accordingly. > > + return -EINVAL; > > Do not shadow the real error code without justification. > Thanks for suggesting the desired implementation. I'll refactor it in the next version. > > + ret &=3D (PM_EVENT_FREEZE|PM_EVENT_SUSPEND|PM_EVENT_HIBERNATE); > > + > > + dev->power.conditional_skip_pm =3D ret; > > + > > + return n; > > +} > > > + > > Redundant blank line. > Thanks for the heads-up. > > +static DEVICE_ATTR_RW(conditional_skip); > > -- > With Best Regards, > Andy Shevchenko > >