Re: regression suspend/resume on Lenovo T420
On 0515T2140, Konstantin Belousov wrote: > On Mon, May 15, 2017 at 06:37:58PM +0100, Edward Tomasz Napiera??a wrote: > > Thanks! The patch fixes resume for me, for both vt(4) and X11. > > Thanks everybody for testing, patch below should be committable, modulo > bugs. I did not tested it and ask for the same test as the previous > debugging patch. [..] Works just fine, thanks! ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
On Mon, 15 May 2017 12:56:47 +0300, Konstantin Belousov wrote On Sun, May 14, 2017 at 08:02:52PM +, Poul-Henning Kamp wrote: In message <20170514193006.GA1298@brick>, Edward Tomasz =?utf-8?Q?Napiera=C5=82 a?= writes: I've tried to verify that, and sadly it wasn't it for me. The commit that does break resume for me is r316767. The current -CURRENT with this one commit reverted ("svn merge -c -r316767 .") suspends and resumes correctly, at least in VT; I decided to take X out of the picture for now. I can confirm that this also makes resume work on my T430s running: FreeBSD 12.0-CURRENT #0 r318250M amd64 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. */ movqKPML4phys,%rax movq%rax,%cr3 This patch makes resume work on my machine also (at least in VT; X is unfortunately still not working). ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
On Mon, May 15, 2017 at 06:37:58PM +0100, Edward Tomasz Napiera??a wrote: > Thanks! The patch fixes resume for me, for both vt(4) and X11. Thanks everybody for testing, patch below should be committable, modulo bugs. I did not tested it and ask for the same test as the previous debugging patch. diff --git a/sys/amd64/acpica/acpi_wakecode.S b/sys/amd64/acpica/acpi_wakecode.S index 6b36d55e7d2..a63b5b8b769 100644 --- a/sys/amd64/acpica/acpi_wakecode.S +++ b/sys/amd64/acpica/acpi_wakecode.S @@ -156,11 +156,12 @@ wakeup_32: /* * Enable EFER.LME so that we get long mode when all the prereqs are * in place. In this case, it turns on when CR0_PG is finally enabled. -* Pick up a few other EFER bits that we'll use need we're here. +* Also it picks up a few other EFER bits that we'll use need we're +* here, like SYSCALL and NX enable. */ movl$MSR_EFER, %ecx - rdmsr - orl $EFER_LME | EFER_SCE, %eax + movlwakeup_efer - wakeup_start(%ebx), %eax + movlwakeup_efer + 4 - wakeup_start(%ebx), %edx wrmsr /* @@ -276,6 +277,8 @@ wakeup_pcb: .quad 0 wakeup_ret: .quad 0 +wakeup_efer: + .quad 0 wakeup_gdt: .word 0 .quad 0 diff --git a/sys/amd64/amd64/cpu_switch.S b/sys/amd64/amd64/cpu_switch.S index 33437ad16e6..86198ab1a8c 100644 --- a/sys/amd64/amd64/cpu_switch.S +++ b/sys/amd64/amd64/cpu_switch.S @@ -396,7 +396,7 @@ ENTRY(resumectx) movl4 + PCB_KGSBASE(%rdi),%edx wrmsr - /* Restore EFER. */ + /* Restore EFER one more time. */ movl$MSR_EFER,%ecx movlPCB_EFER(%rdi),%eax wrmsr diff --git a/sys/x86/acpica/acpi_wakeup.c b/sys/x86/acpica/acpi_wakeup.c index 4a10ac7b304..74f4fedc28f 100644 --- a/sys/x86/acpica/acpi_wakeup.c +++ b/sys/x86/acpica/acpi_wakeup.c @@ -223,7 +223,9 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) WAKECODE_FIXUP(resume_beep, uint8_t, (acpi_resume_beep != 0)); WAKECODE_FIXUP(reset_video, uint8_t, (acpi_reset_video != 0)); -#ifndef __amd64__ +#ifdef __amd64__ + WAKECODE_FIXUP(wakeup_efer, uint64_t, rdmsr(MSR_EFER)); +#else WAKECODE_FIXUP(wakeup_cr4, register_t, pcb->pcb_cr4); #endif WAKECODE_FIXUP(wakeup_pcb, struct pcb *, pcb); ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
On 15 May 2017, at 14:57, Konstantin Belousov wrote: On Mon, May 15, 2017 at 02:37:16PM -0230, Jonathan Anderson wrote: 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 ? Sorry, I'll try to clarify. My problems were: 1. since at least late March, I've had visual artifacts on resume that make the screen unusable; 2. more recently, the machine didn't resume at all. Applying your patch, I can successfully suspend to S3 and resume again, so problem #2 is resolved. This leaves me in a better position to try and test solutions for problem #1 (which might be an issue related to the Mar 13 firmware update on drm-next rather than a -CURRENT problem). Thanks, Jon -- Jonathan Anderson jonat...@freebsd.org ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
On 0515T1256, Konstantin Belousov wrote: > On Sun, May 14, 2017 at 08:02:52PM +, Poul-Henning Kamp wrote: > > > > In message <20170514193006.GA1298@brick>, Edward Tomasz > > =?utf-8?Q?Napiera=C5=82 > > a?= writes: > > > > >I've tried to verify that, and sadly it wasn't it for me. The commit > > >that does break resume for me is r316767. The current -CURRENT with > > >this one commit reverted ("svn merge -c -r316767 .") suspends and resumes > > >correctly, at least in VT; I decided to take X out of the picture for > > >now. > > > > I can confirm that this also makes resume work on my T430s running: > > > > FreeBSD 12.0-CURRENT #0 r318250M amd64 > > 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. */ > movqKPML4phys,%rax > movq%rax,%cr3 Thanks! The patch fixes resume for me, for both vt(4) and X11. ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
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. */ movqKPML4phys,%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 p...@nomadlogic.org @nomadlogicLA ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
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. */ > > movqKPML4phys,%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 ? ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
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. */ movqKPML4phys,%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. :) Thanks! Jon -- Jonathan Anderson jonat...@freebsd.org ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
On Sun, May 14, 2017 at 08:02:52PM +, Poul-Henning Kamp wrote: > > In message <20170514193006.GA1298@brick>, Edward Tomasz > =?utf-8?Q?Napiera=C5=82 > a?= writes: > > >I've tried to verify that, and sadly it wasn't it for me. The commit > >that does break resume for me is r316767. The current -CURRENT with > >this one commit reverted ("svn merge -c -r316767 .") suspends and resumes > >correctly, at least in VT; I decided to take X out of the picture for > >now. > > I can confirm that this also makes resume work on my T430s running: > > FreeBSD 12.0-CURRENT #0 r318250M amd64 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. */ movqKPML4phys,%rax movq%rax,%cr3 ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
In message <20170514193006.GA1298@brick>, Edward Tomasz =?utf-8?Q?Napiera=C5=82 a?= writes: >I've tried to verify that, and sadly it wasn't it for me. The commit >that does break resume for me is r316767. The current -CURRENT with >this one commit reverted ("svn merge -c -r316767 .") suspends and resumes >correctly, at least in VT; I decided to take X out of the picture for >now. I can confirm that this also makes resume work on my T430s running: FreeBSD 12.0-CURRENT #0 r318250M amd64 -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 p...@freebsd.org | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
On 0506T1103, Manuel Stühn wrote: > On Sat, May 06, 2017 at 10:52:56AM +0200, Manuel Stühn wrote: > >On Wed, 03 May 2017 22:28:41 +0200, Freebsdnewbie wrote > >> > >>> Von: Adrian Chadd > >>> Gesendet: Mo. 01.05.2017 23:31 > >>> An: Manuel Stühn , > >>> Kopie: freebsd-current , > >>> Betreff: Re: regression suspend/resume on Lenovo T420 > >>> > >>> There were lots of commits that could break things. :-) > >>> > >>> > >>> Can you compile up some intermediary versions between 315141 and > >>> r317559 to find which commit range broke things? That'll make chasing > >>> it down much quicker! > >>> > >> > >> I'm following your advice and building some intermediary versions. This > >> will take some time... > > > >So, after keep building some more worlds i've discovered the commit > >after which resume does not work anymore. r316736 is the last working > >one, r316737 breaks it for me (There is also no mouse cursor on the > >console anymore after this commit). > > Sorry, my fault: r316734 was the last working revision!! I've tried to verify that, and sadly it wasn't it for me. The commit that does break resume for me is r316767. The current -CURRENT with this one commit reverted ("svn merge -c -r316767 .") suspends and resumes correctly, at least in VT; I decided to take X out of the picture for now. There is still the issue of backlight being off after resume in VT; one needs to switch consoles to restore it, but it's 1. minor and 2. broken for a really long time now. There's also another problem, which kind of looks like an inability to resume if the machine is hot (as in, thermally), but this might be just because of its age. ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
On Sat, May 06, 2017 at 10:52:56AM +0200, Manuel Stühn wrote: On Wed, 03 May 2017 22:28:41 +0200, Freebsdnewbie wrote Von: Adrian Chadd Gesendet: Mo. 01.05.2017 23:31 An: Manuel Stühn , Kopie: freebsd-current , Betreff: Re: regression suspend/resume on Lenovo T420 There were lots of commits that could break things. :-) Can you compile up some intermediary versions between 315141 and r317559 to find which commit range broke things? That'll make chasing it down much quicker! I'm following your advice and building some intermediary versions. This will take some time... So, after keep building some more worlds i've discovered the commit after which resume does not work anymore. r316736 is the last working one, r316737 breaks it for me (There is also no mouse cursor on the console anymore after this commit). Sorry, my fault: r316734 was the last working revision!! ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
On Wed, 03 May 2017 22:28:41 +0200, Freebsdnewbie wrote Von: Adrian Chadd Gesendet: Mo. 01.05.2017 23:31 An: Manuel Stühn , Kopie: freebsd-current , Betreff: Re: regression suspend/resume on Lenovo T420 There were lots of commits that could break things. :-) Can you compile up some intermediary versions between 315141 and r317559 to find which commit range broke things? That'll make chasing it down much quicker! I'm following your advice and building some intermediary versions. This will take some time... So, after keep building some more worlds i've discovered the commit after which resume does not work anymore. r316736 is the last working one, r316737 breaks it for me (There is also no mouse cursor on the console anymore after this commit). Any hints? Thanks. ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
RE: Re: regression suspend/resume on Lenovo T420
> Von: Adrian Chadd > Gesendet: Mo. 01.05.2017 23:31 > An: Manuel Stühn , > Kopie: freebsd-current , > Betreff: Re: regression suspend/resume on Lenovo T420 > > There were lots of commits that could break things. :-) > > > Can you compile up some intermediary versions between 315141 and > r317559 to find which commit range broke things? That'll make chasing > it down much quicker! > I'm following your advice and building some intermediary versions. This will take some time... Nevertheless, I've discovered some things already: 1. It seems to me, that a plain freebsd r315141 does not resume completely. The display is still staying black after resume but the laptop is accessible via ssh. 2. After installing xorg and starting X on r315141, resume works correctly. Not having a running X results in not resuming the LCD. 3. setting the value hw.acpi.reset_video=1 results in continously resetting the machine. Only pressing the powerbutton for a long period of time disrupts this cycle. 4. r317559 with X running does not suspend at all. Stopping x and try to suspend then results in similar behaviour as described in 1. Mit freenetmail sicher kommunizieren! [https://email.freenet.de/emig/index.html?utm_medium=Text&utm_source=Footersatz&utm_campaign=Footersatz_Sicherheit170207&epid=e990699&utm_content=Text] Wir garantieren Ihnen verschlüsselte Datenübertragung & Datenspeicherung auf deutschen Servern - E-Mail made in Germany! ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
On 05/01/2017 14:31, Adrian Chadd wrote: There were lots of commits that could break things. :-) Can you compile up some intermediary versions between 315141 and r317559 to find which commit range broke things? That'll make chasing it down much quicker! Thanks! Hey Adrian - I was looking through the drm-next commit logs and was wondering if this commit could be the root cause of the issues i'm seeing? https://github.com/FreeBSDDesktop/freebsd-base-graphics/commit/2750ce9b17ee373b6d46e6d15d21d2e6c63f6d4d my hardware is a Kabylake Dell Inspiron 2in1. -pete -- Pete Wright p...@nomadlogic.org @nomadlogicLA ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
On 05/01/2017 14:31, Adrian Chadd wrote: There were lots of commits that could break things. :-) Can you compile up some intermediary versions between 315141 and r317559 to find which commit range broke things? That'll make chasing it down much quicker! Thanks! FWIW I'm seeing this on the drm-next repository after the latest merge from upstream which happened on April 30th. I'll try to put some cycles into trying to find a range of potential commits that is causing this. -pete -- Pete Wright p...@nomadlogic.org @nomadlogicLA ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
Re: regression suspend/resume on Lenovo T420
There were lots of commits that could break things. :-) Can you compile up some intermediary versions between 315141 and r317559 to find which commit range broke things? That'll make chasing it down much quicker! Thanks! -a On 29 April 2017 at 04:50, Manuel Stühn wrote: > Hi, > I'd been sucessfully running CURRENT on my Lenovo T420 with functional > suspend/resume since some time. But after updating to CURRENT r317032 > respectively r317559 suspend/resume does not work anymore. Putting it into > suspend results only in a black screen, but no further action is possible > (only pressing the powerbutton for some time to switch it off completely). > The LEDs are not indicating any suspend mode. > If i try to suspend it with X (intel-driver) stopped, the laptop does switch > into suspend, but does not resume. It runs into some kind of resuming > endless loop, where it tries to start the laptop again but at a certain > point it restarts again. The screen stays dark all the time. > > I tried this with and without the following options but the same result. > hw.acpi.reset_video=1 > dev.acpi_ibm.0.handlerevents='0x04' > > Booting a Bootenvironment with an older CURRENT(r315141), all is working. > Was there any change between these commits concerning suspend/resume? > > BR > Manuel > ___ > freebsd-current@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org" ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"
regression suspend/resume on Lenovo T420
Hi, I'd been sucessfully running CURRENT on my Lenovo T420 with functional suspend/resume since some time. But after updating to CURRENT r317032 respectively r317559 suspend/resume does not work anymore. Putting it into suspend results only in a black screen, but no further action is possible (only pressing the powerbutton for some time to switch it off completely). The LEDs are not indicating any suspend mode. If i try to suspend it with X (intel-driver) stopped, the laptop does switch into suspend, but does not resume. It runs into some kind of resuming endless loop, where it tries to start the laptop again but at a certain point it restarts again. The screen stays dark all the time. I tried this with and without the following options but the same result. hw.acpi.reset_video=1 dev.acpi_ibm.0.handlerevents='0x04' Booting a Bootenvironment with an older CURRENT(r315141), all is working. Was there any change between these commits concerning suspend/resume? BR Manuel ___ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"