From nobody Tue Dec 2 02:32:22 2025 Received: from mail-pl1-f201.google.com (mail-pl1-f201.google.com [209.85.214.201]) (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 4DAA5345CD5 for ; Wed, 19 Nov 2025 17:14:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763572482; cv=none; b=u9mwlbMauMEs+na1JhN4f62+/IzBsFLW8EvGcUwH9pz4SNQeh6VSsuBkMOL5fJSfR/sv6feCIW9bM0S2/u/4WKDZqVuDPXBUunVFbOcbP4v/7WXikWVpwW7J+mh5w2oK3oa6F/iCg3EQYVTzIMa+G8WwR1WI/twcFOaQLQsBplY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763572482; c=relaxed/simple; bh=uQDldX9XG+qGRX0YlPxhmUz0f5fVzex/PC5c2OnnqD8=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=prD6KPH46Rz2CXxiyNiTXoycWlS8ZNGuddiXH0clzwT6a/MUAvKVswMGIPQwHZHo52OIomwnb7FoU+i9mlzmUp72EvjoXFIzo9jsoVSO6j+Iz3tDSHsHGjerupeaOUtHKbxnTK88F5vKKC/9B/SOSHJzmFAo5VVUSKiGHRWJN/8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--wusamuel.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=I8Su3zRY; arc=none smtp.client-ip=209.85.214.201 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=flex--wusamuel.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="I8Su3zRY" Received: by mail-pl1-f201.google.com with SMTP id d9443c01a7336-297e66542afso231889555ad.3 for ; Wed, 19 Nov 2025 09:14:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1763572479; x=1764177279; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=Z6126D4hNlxSLngUWFJIL+pyRlCYrRkd1GbDL09+PJs=; b=I8Su3zRY8Is9d1JHre5AYXQhh4N4htJyFdRxEs8ewxXvtT0dsBFsl8LMPRm7+cdsUG ORwysIaCo4Knpkerf902ixcNKxQcUp6QyUN4S4XncfxdxdXF+557LbUNy1bl78Wm6UPv elhz6Z2vwoMnXBsVhWHy5Ffq0b9hkJw2xaCKMM3JubkxluHWNvAm9FPYAKWLGXpESE0U 2DlAZwYcPJfCvWHzvWrVFlvu+4WiKgVMlJi5sDy8uju1CC5mHuoEaMjwwpLsKaX0Ft2v nZruVPaJwculQnXJx8QAyFVS/5ezbty0iGilRyTIlieLJ80o/c2xtU3zUrzrWdTI1wdv 8aHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763572479; x=1764177279; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Z6126D4hNlxSLngUWFJIL+pyRlCYrRkd1GbDL09+PJs=; b=cjmmGLwwaFZP8hJprjfjX2sIqJfenb/a55q8nYBfJu+pOffYFgUtgRZVAwsAbOvR2H NJE6fzObNqnfpZtMB/8w2UXBiwY8yuWoGDmnHBeO3PZPdxH6vAz/Yap58Ge6xXtEHo51 sizQi2minaqYdJIYNyMOw2QPIpVkBfouStPsvsB62wL3YmA9dOMLE3rxmO+atRedD/lX WXjg8pZ7VmxOXB9MgTU91kWpk1e0BHKV0muA4Vs3bZDEF0oKc1o71q1d3kxxXlP2Nm3w vIT+v3DbfW2ZM7mT+/OlxzvvRn2Vy+ba+QZ4XZ1McL4470ZCrd3FEPVQB6ZuLFNC87nm FCvA== X-Forwarded-Encrypted: i=1; AJvYcCUquu8mIM2Dw6cuFnqxpkvwf8tP027bOqtqS6NsePAxX9AhUPW163i30OskxHHMpeZgNpeXf0gh99lViTI=@vger.kernel.org X-Gm-Message-State: AOJu0YzlAZ5l6zcYPouG9hfqMnIBNKZncmnxnPPDlB4IUQY6ip37swAy YdQYA0O0TB3MeHx45PiNNbLylErSpUz5NPHdebUW3Gvvum8OH66sL9MUAy80CqEQquLnpQvqIJO +/ToBWuOy/4TR3Q== X-Google-Smtp-Source: AGHT+IFjwX5vb9bGInL8052l+zRJKFhSXZ/kfdETPLlambCVPAjWDs7+TheNNhwqS+CFrq6JLBnbh33rbZbESA== X-Received: from dlbvg5.prod.google.com ([2002:a05:7022:7f05:b0:11b:1a9a:d2e8]) (user=wusamuel job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7022:3c89:b0:11a:4525:5361 with SMTP id a92af1059eb24-11c937f6882mr34711c88.6.1763572479237; Wed, 19 Nov 2025 09:14:39 -0800 (PST) Date: Wed, 19 Nov 2025 09:14:25 -0800 In-Reply-To: <20251119171426.4086783-1-wusamuel@google.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20251119171426.4086783-1-wusamuel@google.com> X-Mailer: git-send-email 2.52.0.rc1.455.g30608eb744-goog Message-ID: <20251119171426.4086783-3-wusamuel@google.com> Subject: [PATCH v7 2/2] PM: Call pm_sleep_fs_sync() instead of ksys_sync_helper() From: Samuel Wu To: "Rafael J. Wysocki" , Len Brown , Pavel Machek Cc: tuhaowen@uniontech.com, Samuel Wu , Saravana Kannan , "Rafael J. Wysocki" , kernel-team@android.com, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace the direct calls to ksys_sync_helper() with the new pm_sleep_fs_sync() in suspend, hibernation, and snapshot code paths. This enables the new polling mechanism that allows for the filesystem sync phase to be interrupted. Suggested-by: Saravana Kannan Suggested-by: Rafael J. Wysocki Signed-off-by: Samuel Wu --- kernel/power/hibernate.c | 6 +++++- kernel/power/suspend.c | 6 +++++- kernel/power/user.c | 4 +++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index 26e45f86b955..af8d07bafe02 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c @@ -820,7 +820,10 @@ int hibernate(void) if (error) goto Restore; =20 - ksys_sync_helper(); + error =3D pm_sleep_fs_sync(); + if (error) + goto Notify; + filesystems_freeze(filesystem_freeze_enabled); =20 error =3D freeze_processes(); @@ -891,6 +894,7 @@ int hibernate(void) freezer_test_done =3D false; Exit: filesystems_thaw(); + Notify: pm_notifier_call_chain(PM_POST_HIBERNATION); Restore: pm_restore_console(); diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index d9461447e37b..2da4482bb6eb 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -593,7 +593,11 @@ static int enter_state(suspend_state_t state) =20 if (sync_on_suspend_enabled) { trace_suspend_resume(TPS("sync_filesystems"), 0, true); - ksys_sync_helper(); + + error =3D pm_sleep_fs_sync(); + if (error) + goto Unlock; + trace_suspend_resume(TPS("sync_filesystems"), 0, false); } =20 diff --git a/kernel/power/user.c b/kernel/power/user.c index 3f9e3efb9f6e..4401cfe26e5c 100644 --- a/kernel/power/user.c +++ b/kernel/power/user.c @@ -278,7 +278,9 @@ static long snapshot_ioctl(struct file *filp, unsigned = int cmd, if (data->frozen) break; =20 - ksys_sync_helper(); + error =3D pm_sleep_fs_sync(); + if (error) + break; =20 error =3D freeze_processes(); if (error) --=20 2.52.0.rc1.455.g30608eb744-goog