regression suspend/resume on Lenovo T420

Pete Wright pete at nomadlogic.org
Mon May 15 17:34:18 UTC 2017



On 05/15/2017 10:27, Konstantin Belousov wrote:
> On Mon, May 15, 2017 at 02:37:16PM -0230, Jonathan Anderson wrote:
>> On 15 May 2017, at 7:26, Konstantin Belousov wrote:
>>> Try this.  If it works, I will write a proper patch.
>>>
>>> diff --git a/sys/amd64/amd64/cpu_switch.S
>>> b/sys/amd64/amd64/cpu_switch.S
>>> index 33437ad16e6..9c0cd05ebea 100644
>>> --- a/sys/amd64/amd64/cpu_switch.S
>>> +++ b/sys/amd64/amd64/cpu_switch.S
>>> @@ -369,6 +369,11 @@ END(savectx)
>>>    * Resuming processor state from pcb.
>>>    */
>>>   ENTRY(resumectx)
>>> +	movl	$MSR_EFER,%ecx
>>> +	rdmsr
>>> +	orl	$EFER_NXE,%eax
>>> +	wrmsr
>>> +
>>>   	/* Switch to KPML4phys. */
>>>   	movq	KPML4phys,%rax
>>>   	movq	%rax,%cr3
>> Running drm-next (which has -CURRENT last merged somewhere around
>> r317651), this patch fixes one of the two problems I've been
>> experiencing with suspend/resume. Definite progress. :)
> Could you, please, clarify.  Does the resume work after this  ?  If not,
> how did you diagnosed that 'one of two problems' is solved with the change ?

I can confirm that suspending to a S3 state and resuming now works on 
the drm-next branch as well.

this matches the previous behavior on my systems before recent updates 
which broke suspend/resume - so i believe this patch works from a 
functional POV.

-pete

-- 
Pete Wright
pete at nomadlogic.org
@nomadlogicLA



More information about the freebsd-current mailing list