Public bug reported:

== Comment: #0 - Balamuruhan S <> - 2017-06-28 03:39:15 ==
systemd and pm-utils interprets CanSuspend states differently and reports it as 
supported or not in a conflicting way.

# gdbus call --system --dest org.freedesktop.login1 --object-path 
/org/freedesktop/login1 --method org.freedesktop.login1.Manager.CanSuspend
('yes',)

# pm-is-supported --suspend
# echo $?
1

Both systemd and pm-is-supported looks into /sys/power/state file to
check if suspend is supported.

pm-is-supported --suspend returns true if either "standby" or "mem" is present 
in the file.
( /usr/lib/pm-utils/pm-functions )

systemd(Manager.CanSuspend) returns true if "standby", "freeze" or "mem" is 
present in the file.
( 
https://github.com/systemd/systemd/blob/dd8352659c9428b196706d04399eec106a8917ed/src/shared/sleep-config.c
 )

# cat /sys/power/state
freeze

So here, pm-is-supported --suspend returns false and gdbus returns true.

Both these utilities interpret /sys/power/state differently.

Secondly, systemd should split CanSuspend to Cansuspend+CanFreeze Or
don't report freeze as CanSuspend.

Impact of this inconsistency can be felt from Libvirt supported pm
states:

To reduce ABI dependency, libvirt queries the available states via dbus,
if not falls to pm-utils. Libvirt won't check for strings in
sys/power/state and interpret directly.

so due to this, libvirt will list that suspend_to_mem is supported from
virsh capabilities but ideally it might not.

** Affects: pm-utils (Ubuntu)
     Importance: Undecided
     Assignee: Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage)
         Status: New


** Tags: architecture-ppc64le bugnameltc-156093 severity-high 
targetmilestone-inin1710

** Tags added: architecture-ppc64le bugnameltc-156093 severity-high
targetmilestone-inin1710

** Changed in: ubuntu
     Assignee: (unassigned) => Ubuntu on IBM Power Systems Bug Triage 
(ubuntu-power-triage)

** Package changed: ubuntu => pm-utils (Ubuntu)

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to pm-utils in Ubuntu.
https://bugs.launchpad.net/bugs/1706948

Title:
  [Ubuntu 1710] [Feature] Inconsistent report of pm CanSuspend state by
  systemd and pm-utils

Status in pm-utils package in Ubuntu:
  New

Bug description:
  == Comment: #0 - Balamuruhan S <> - 2017-06-28 03:39:15 ==
  systemd and pm-utils interprets CanSuspend states differently and reports it 
as supported or not in a conflicting way.

  # gdbus call --system --dest org.freedesktop.login1 --object-path 
/org/freedesktop/login1 --method org.freedesktop.login1.Manager.CanSuspend
  ('yes',)

  # pm-is-supported --suspend
  # echo $?
  1

  Both systemd and pm-is-supported looks into /sys/power/state file to
  check if suspend is supported.

  pm-is-supported --suspend returns true if either "standby" or "mem" is 
present in the file.
  ( /usr/lib/pm-utils/pm-functions )

  systemd(Manager.CanSuspend) returns true if "standby", "freeze" or "mem" is 
present in the file.
  ( 
https://github.com/systemd/systemd/blob/dd8352659c9428b196706d04399eec106a8917ed/src/shared/sleep-config.c
 )

  # cat /sys/power/state
  freeze

  So here, pm-is-supported --suspend returns false and gdbus returns
  true.

  Both these utilities interpret /sys/power/state differently.

  Secondly, systemd should split CanSuspend to Cansuspend+CanFreeze Or
  don't report freeze as CanSuspend.

  Impact of this inconsistency can be felt from Libvirt supported pm
  states:

  To reduce ABI dependency, libvirt queries the available states via
  dbus, if not falls to pm-utils. Libvirt won't check for strings in
  sys/power/state and interpret directly.

  so due to this, libvirt will list that suspend_to_mem is supported
  from virsh capabilities but ideally it might not.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/pm-utils/+bug/1706948/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to