New issue
Advanced search Search tips

Issue 679447 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

Make sure suspend/resume work for mash

Project Member Reported by sky@chromium.org, Jan 9 2017

Issue description

Needs some investigation, no doubt related to 629707.
 
Owner: derat@chromium.org
Status: Assigned (was: Untriaged)
Dan, can you own this?

It seems like the suspend/resume part is working, but I'm not quite sure what "normal" looks like in the logs.

Also, there's still a crash on lid close,  issue 686938 .

Comment 2 by derat@chromium.org, Feb 13 2017

Status: Started (was: Assigned)
Sure, I'm the right person to own this. I'm doing a build and will try to ascertain the current state of this today.

Comment 3 by derat@chromium.org, Feb 13 2017

Chrome asks powerd to suspend, so that part works, at least.

Like you said, Chrome crashes, so it's hard to tell whether Chrome's suspend delay stuff correctly. I'd expect it to work, as powerd already supports multiple D-Bus clients for suspend delays. With separate ash and Chrome processes, we see a suspend delay registered for each, but they shouldn't step on each other's toes. I should make ash use "ash" as the name for its delay so we don't end up with two delays named "chrome", which is confusing:

[0213/124532:INFO:suspend_delay_controller.cc(62)] Registering suspend delay 64225291 (chrome) of 5000 ms on behalf of :1.142
...
[0213/124534:INFO:suspend_delay_controller.cc(62)] Registering suspend delay 64225292 (chrome) of 5000 ms on behalf of :1.144

Also, powerd reports that its SetDisplayPower calls to Chrome are failing:

[0213/124534:INFO:daemon.cc(1077)] D-Bus org.chromium.LibCrosService ownership changed to :1.144
[0213/124534:INFO:display_power_setter.cc(82)] Asking Chrome to turn all displays on
[0213/124534:ERROR:object_proxy.cc(582)] Failed to call method: org.chromium.LibCrosServiceInterface.SetDisplayPower: object_path= /org/chromium/LibCrosService: org.freedesktop.DBus.Error.UnknownMethod: Method "SetDisplayPower" with signature "i" on interface "org.chromium.LibCrosServiceInterface" doesn't exist

Comment 4 by derat@chromium.org, Feb 14 2017

Side question: Is there a way to determine from within a //chromeos/dbus client class whether we're running in a Chrome process (either mash or pre-mash) vs. an ash process? I could plumb through ProcessMask information from DBusThreadManager to the client's constructor, although that feels like a bit of a hack, maybe.

Comment 5 by sky@chromium.org, Feb 14 2017

In chrome code we have IsRunningInMash(). In ash we have WmShell::IsRunningInMash(), but that assumes you know if you're in chrome code or ash code. These are the only run time functions I'm aware of.
Cc: roc...@chromium.org
rockot@ may have something Fairly Soon™ based on his comment in  issue 690553 .
In the meantime, perhaps it's okay to do something hacky, like call ash::Shell::HasInstance() (assuming this is not startup code).

Comment 7 Deleted

or ash::WmShell::HasInstance()

Comment 9 by derat@chromium.org, Feb 14 2017

//chromeos is about as far as you can get from being able to depend on //ash, unfortunately (it's similar to //base in many ways), so I'm probably stuck injecting this into //chromeos with the current state of things.

Ken's work sounds promising! I might hold off for that, since I think I just want this to be able to report different suspend delay names to the powerd process, which mostly just helps when looking at logs.
Components: OS>Kernel>Power
Cc: -mfomitchev@chromium.org
Components: Internals>Services>Ash
Labels: -Proj-Mustash-Mash
Cc: -roc...@chromium.org rockot@google.com

Sign in to add a comment