You are not logged in.

#26 2021-12-18 15:30:22

seth
Member
Registered: 2012-09-03
Posts: 51,655

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

I think the idea was to S3, break that w/ eg. the keyboard (or run rtcwake), then S3, WOL, S3 => still spurious wake-up?
(nb. that the linked bug is on the r8169 module, but I understand you're using that anyway)

The principle question that Strike0 asks is whether, because of your previous findings, a single non-WOL wake can cure the WOL behavior for the entire boot.

Offline

#27 2021-12-18 17:20:19

Strangiato
Member
Registered: 2020-01-10
Posts: 382

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

Followed these steps:
1. S3
2. wake-up with keyboard
3. S3
4. wake on lan
5. S3

Spurious wake-up occured after the last step.

Offline

#28 2021-12-18 23:38:20

Strike0
Member
From: Germany
Registered: 2011-09-05
Posts: 1,429

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

That's a pity.
And yes, the hope was it behaves similar to the bug reporter's gigabyte system.

Still, you had that positive result in your post #23, where you issued a WOL first, etc. Maybe that turns into a stable workaround procedure for the time being - worth trying for sure.

For that procedure, I think it is worthwhile to look at the /proc counts that the kernel developer pointed to at the same time. See the example output in the kernel bug report post #16 for

$ grep PME /proc/interrupts
$ cat /sys/firmware/acpi/interrupts/gpe_all

In your case the question is how a spurious wake-up can be differentiated from the regular wake-ups (WOL and keyboard).

Offline

#29 2021-12-20 14:30:40

Strangiato
Member
Registered: 2020-01-10
Posts: 382

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

After wake up from S3 with keyboard, output of

cat /sys/firmware/acpi/interrupts/gpe_all

increases three points (from 5 to 8, for example). However, after S3 + spurious wake up due to wol, the output increases 6 points (from 8 to 14, for example).

What does this mean?

Offline

#30 2021-12-20 15:31:16

seth
Member
Registered: 2012-09-03
Posts: 51,655

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

The NIC generates 2 PMEs or the PME generates 2 interrupts … or something else happens.
Compare

tail /sys/firmware/acpi/interrupts/*

before the WOL, after the WOL and then after the spurious wake.

Offline

#31 2021-12-21 11:29:07

Strangiato
Member
Registered: 2020-01-10
Posts: 382

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

seth wrote:

The NIC generates 2 PMEs or the PME generates 2 interrupts … or something else happens.
Compare

tail /sys/firmware/acpi/interrupts/*

before the WOL, after the WOL and then after the spurious wake.

Before wake on lan:

==> /sys/firmware/acpi/interrupts/error <==
       0

==> /sys/firmware/acpi/interrupts/ff_gbl_lock <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/ff_pmtimer <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/ff_pwr_btn <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/ff_rt_clk <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/ff_slp_btn <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe00 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe01 <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe02 <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe03 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe04 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe05 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe06 <==
       5  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe07 <==
       0         enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe08 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe09 <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/gpe0A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0D <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/gpe0E <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe10 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe11 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe12 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe13 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe14 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe15 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe16 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe17 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe18 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe19 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1A <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1D <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe1E <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe20 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe21 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe22 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe23 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe24 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe25 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe26 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe27 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe28 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe29 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2D <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2E <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe30 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe31 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe32 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe33 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe34 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe35 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe36 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe37 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe38 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe39 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3B <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3C <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3D <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3E <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3F <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe_all <==
       5

==> /sys/firmware/acpi/interrupts/sci <==
       5

==> /sys/firmware/acpi/interrupts/sci_not <==
       0

After wake on lan:

==> /sys/firmware/acpi/interrupts/error <==
       0

==> /sys/firmware/acpi/interrupts/ff_gbl_lock <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/ff_pmtimer <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/ff_pwr_btn <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/ff_rt_clk <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/ff_slp_btn <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe00 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe01 <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe02 <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe03 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe04 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe05 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe06 <==
       7  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe07 <==
       0         enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe08 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe09 <==
      58     STS disabled     unmasked

==> /sys/firmware/acpi/interrupts/gpe0A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0D <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/gpe0E <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe10 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe11 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe12 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe13 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe14 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe15 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe16 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe17 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe18 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe19 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1A <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1D <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe1E <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe20 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe21 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe22 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe23 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe24 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe25 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe26 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe27 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe28 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe29 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2D <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2E <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe30 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe31 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe32 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe33 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe34 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe35 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe36 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe37 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe38 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe39 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3A <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3B <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3C <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3D <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3E <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3F <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe_all <==
      65

==> /sys/firmware/acpi/interrupts/sci <==
      65

==> /sys/firmware/acpi/interrupts/sci_not <==
       0

After spurious wake up:

==> /sys/firmware/acpi/interrupts/error <==
       0

==> /sys/firmware/acpi/interrupts/ff_gbl_lock <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/ff_pmtimer <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/ff_pwr_btn <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/ff_rt_clk <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/ff_slp_btn <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe00 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe01 <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe02 <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe03 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe04 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe05 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe06 <==
       9  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe07 <==
       0         enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe08 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe09 <==
      59         disabled     unmasked

==> /sys/firmware/acpi/interrupts/gpe0A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0D <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/gpe0E <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe10 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe11 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe12 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe13 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe14 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe15 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe16 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe17 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe18 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe19 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1A <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1D <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe1E <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe20 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe21 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe22 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe23 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe24 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe25 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe26 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe27 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe28 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe29 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2D <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2E <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe30 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe31 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe32 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe33 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe34 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe35 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe36 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe37 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe38 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe39 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3A <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3B <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3C <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3D <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3E <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3F <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe_all <==
      68

==> /sys/firmware/acpi/interrupts/sci <==
      68

==> /sys/firmware/acpi/interrupts/sci_not <==
       0

Do these outputs reveal some problem?

Last edited by Strangiato (2021-12-21 11:30:25)

Offline

#32 2021-12-21 18:51:48

Strike0
Member
From: Germany
Registered: 2011-09-05
Posts: 1,429

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

Well, in this test above we see the spurious wake triggers three GPE increments, not six as in post #29.
I'm not sure what we can derive from that, maybe Seth has an idea.

I got interested in why the spurious wake-ups may happen and want to share two general posts on it:
1. I saw a linux acpi thread of someone who has manually corrected an (apparent) BIOS PM bug. So, it is possible to correct them, but (as seen in the link) the kernel guys may refuse to tweak them generally. (I'm not sure if some of these may be fixed via microcode updates, do you load microcode at boot?)
2. An interesting general writeup on spurious wake-ups explains, why it's not easy to tweak/fix them generally.

As a sidenote, I also saw a spec-sheet of a server network adapter, which advertises with "Power Management Protocol Offload (Proxying) • Avoid spurious wake up events and reduce system power consumption when the device is in D3 low
power state and system in in S3 or S4 low power states". I'm sure the card is more expensive than a lot of motherboards. Yet, for sure they would not advertise it like that, if it was not a widespread problem.

Back to the general write-up (2.) above: one work-around you should consider is to configure the system with a custom auto-resume/suspend service. I have not thought this out fully, but perhaps it is possible to let the resume.service evaluate whether it is a WOL/spurious WOL and act accordingly. For example, wait for a SSH connect for five minutes before it auto-suspends again. I don't see how to distinguish non-WOL from WOL/spurious yet (with your current test results above), but perhaps one of you has an idea how to do that. Another benefit would be that you can get an idea how often the spurious wake-ups occur and collect more of the corresponding /sys interrupt data.

Offline

#33 2021-12-21 19:27:00

Strangiato
Member
Registered: 2020-01-10
Posts: 382

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

Strike0 wrote:

do you load microcode at boot?

yes

$ sudo journalctl -b
-- Journal begins at Fri 2021-07-30 12:29:12 -03, ends at Tue 2021-12-21 16:15:52 -03. --
dez 21 08:08:01 Arch-PC kernel: microcode: microcode updated early to revision 0x28, date = 2019-11-12
dez 21 08:08:01 Arch-PC kernel: Linux version 5.15.10-arch1-1 (linux@archlinux) (gcc (GCC) 11.1.0, GNU ld (GNU Binutils) 2.36.1) #1 SMP PREEMPT Fri, 17 Dec 2021 11:17:37 +0000
...

Offline

#34 2021-12-21 21:11:32

seth
Member
Registered: 2012-09-03
Posts: 51,655

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

==> /sys/firmware/acpi/interrupts/gpe06 <==
       0         disabled     unmasked
…
       7  EN     enabled      unmasked
…
       9  EN     enabled      unmasked

I assume when waking w/ the keyboard gpe06 remains stable?

Assuming that's the WOL it would seem you're getting a flood of interrupts and some only happen while/after the system is resuming and dragged into the next suspend.
Can you configure a wake delay in the BIOS/UEFI?

Offline

#35 2021-12-22 11:17:37

Strangiato
Member
Registered: 2020-01-10
Posts: 382

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

seth wrote:
==> /sys/firmware/acpi/interrupts/gpe06 <==
       0         disabled     unmasked
…
       7  EN     enabled      unmasked
…
       9  EN     enabled      unmasked

I assume when waking w/ the keyboard gpe06 remains stable?

Assuming that's the WOL it would seem you're getting a flood of interrupts and some only happen while/after the system is resuming and dragged into the next suspend.
Can you configure a wake delay in the BIOS/UEFI?

There is not option to configure wake delay in the BIOS/UEFI.

Before waking with keyboard:

==> /sys/firmware/acpi/interrupts/error <==
       0

==> /sys/firmware/acpi/interrupts/ff_gbl_lock <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/ff_pmtimer <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/ff_pwr_btn <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/ff_rt_clk <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/ff_slp_btn <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe00 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe01 <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe02 <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe03 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe04 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe05 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe06 <==
       5  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe07 <==
       0         enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe08 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe09 <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/gpe0A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0D <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/gpe0E <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe10 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe11 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe12 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe13 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe14 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe15 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe16 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe17 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe18 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe19 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1A <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1D <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe1E <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe20 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe21 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe22 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe23 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe24 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe25 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe26 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe27 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe28 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe29 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2D <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2E <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe30 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe31 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe32 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe33 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe34 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe35 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe36 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe37 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe38 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe39 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3B <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3C <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3D <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3E <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3F <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe_all <==
       5

==> /sys/firmware/acpi/interrupts/sci <==
       5

==> /sys/firmware/acpi/interrupts/sci_not <==
       0

After waking with keyboard:

==> /sys/firmware/acpi/interrupts/error <==
       0

==> /sys/firmware/acpi/interrupts/ff_gbl_lock <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/ff_pmtimer <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/ff_pwr_btn <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/ff_rt_clk <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/ff_slp_btn <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe00 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe01 <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe02 <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe03 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe04 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe05 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe06 <==
       7  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe07 <==
       0         enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe08 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe09 <==
       0         disabled     unmasked

==> /sys/firmware/acpi/interrupts/gpe0A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0D <==
       1         disabled     unmasked

==> /sys/firmware/acpi/interrupts/gpe0E <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe0F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe10 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe11 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe12 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe13 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe14 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe15 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe16 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe17 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe18 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe19 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1A <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1D <==
       0  EN     enabled      unmasked

==> /sys/firmware/acpi/interrupts/gpe1E <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe1F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe20 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe21 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe22 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe23 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe24 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe25 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe26 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe27 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe28 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe29 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2A <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2B <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2C <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2D <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2E <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe2F <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe30 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe31 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe32 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe33 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe34 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe35 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe36 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe37 <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe38 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe39 <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3A <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3B <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3C <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3D <==
       0         invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3E <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe3F <==
       0     STS invalid      unmasked

==> /sys/firmware/acpi/interrupts/gpe_all <==
       8

==> /sys/firmware/acpi/interrupts/sci <==
       8

==> /sys/firmware/acpi/interrupts/sci_not <==
       0

The problem mentioned in the following topic happened again a few minutes ago.
https://bbs.archlinux.org/viewtopic.php?pid=1913620

And yesterday I noticed Rx errors in the kernel log.

[ter dez 21 08:08:33 2021] r8169 0000:04:00.0: can't disable ASPM; OS doesn't have ASPM control
[ter dez 21 08:08:33 2021] libphy: r8169: probed
[ter dez 21 08:08:33 2021] r8169 0000:04:00.0 eth0: RTL8168evl/8111evl, fc:aa:14:fc:4b:1b, XID 2c9, IRQ 31
[ter dez 21 08:08:33 2021] r8169 0000:04:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko]
[ter dez 21 08:08:36 2021] r8169 0000:04:00.0 enp4s0: renamed from eth0
[ter dez 21 08:08:42 2021] RTL8211E Gigabit Ethernet r8169-0-400:00: attached PHY driver (mii_bus:phy_addr=r8169-0-400:00, irq=MAC)
[ter dez 21 08:08:42 2021] r8169 0000:04:00.0 enp4s0: Link is Down
[ter dez 21 08:08:45 2021] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx
[ter dez 21 08:08:45 2021] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx
[ter dez 21 08:08:48 2021] r8169 0000:04:00.0: invalid VPD tag 0x00 (size 0) at offset 0; assume missing optional EEPROM
[ter dez 21 08:11:26 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 08:14:03 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5f1
[ter dez 21 08:18:35 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 08:19:58 2021] r8169 0000:04:00.0 enp4s0: Link is Down
[ter dez 21 08:19:59 2021] r8169 0000:04:00.0 enp4s0: Link is Down
[ter dez 21 08:20:02 2021] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx
[ter dez 21 08:20:03 2021] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx
[ter dez 21 08:20:03 2021] r8169 0000:04:00.0 enp4s0: Link is Down
[ter dez 21 08:20:03 2021] RTL8211E Gigabit Ethernet r8169-0-400:00: attached PHY driver (mii_bus:phy_addr=r8169-0-400:00, irq=MAC)
[ter dez 21 08:20:03 2021] r8169 0000:04:00.0 enp4s0: Link is Down
[ter dez 21 08:20:07 2021] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx
[ter dez 21 08:20:07 2021] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx
[ter dez 21 08:20:37 2021] r8169 0000:04:00.0 enp4s0: Link is Down
[ter dez 21 08:20:38 2021] r8169 0000:04:00.0 enp4s0: Link is Down
[ter dez 21 08:20:38 2021] r8169 0000:04:00.0 enp4s0: Link is Down
[ter dez 21 08:20:41 2021] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx
[ter dez 21 08:20:41 2021] r8169 0000:04:00.0 enp4s0: Link is Down
[ter dez 21 08:20:41 2021] RTL8211E Gigabit Ethernet r8169-0-400:00: attached PHY driver (mii_bus:phy_addr=r8169-0-400:00, irq=MAC)
[ter dez 21 08:20:41 2021] r8169 0000:04:00.0 enp4s0: Link is Down
[ter dez 21 08:20:45 2021] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx
[ter dez 21 08:20:45 2021] r8169 0000:04:00.0 enp4s0: Link is Up - 1Gbps/Full - flow control rx/tx
[ter dez 21 08:32:29 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 08:32:41 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 08:35:17 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5f1
[ter dez 21 08:35:17 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5f1
[ter dez 21 08:35:36 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5e6
[ter dez 21 08:35:43 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 08:41:10 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 08:41:46 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352a82ea
[ter dez 21 08:45:31 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 08:51:12 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 08:52:49 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 08:57:58 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352bc082
[ter dez 21 09:11:55 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac0ed
[ter dez 21 10:05:28 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac4ea
[ter dez 21 11:01:44 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac4ed
[ter dez 21 11:50:38 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac082
[ter dez 21 11:55:44 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac469
[ter dez 21 12:00:55 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 12:01:45 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac26b
[ter dez 21 12:05:30 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 12:05:33 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac0f6
[ter dez 21 12:05:38 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352cc079
[ter dez 21 12:15:28 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 12:21:34 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352cc510
[ter dez 21 12:21:56 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352cc4de
[ter dez 21 12:36:05 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 12:37:08 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 12:54:42 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac082
[ter dez 21 12:58:37 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 12:59:48 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5e6
[ter dez 21 13:00:49 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac0f2
[ter dez 21 13:03:11 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac3e6
[ter dez 21 13:06:40 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac082
[ter dez 21 13:09:22 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac359
[ter dez 21 13:20:34 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5e6
[ter dez 21 13:22:23 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 13:28:21 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 13:29:55 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 13:30:01 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 13:30:05 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 13:30:07 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 13:36:02 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 13:36:02 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 13:36:18 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 14:05:02 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac4ea
[ter dez 21 14:10:01 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 14:58:05 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac4ea
[ter dez 21 15:14:53 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 15:21:15 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 15:23:03 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 15:30:35 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 392cc53a
[ter dez 21 15:32:50 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 15:33:21 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac4ed
[ter dez 21 16:07:00 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 16:12:52 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 16:44:48 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 16:47:23 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac4ea
[ter dez 21 17:03:08 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 17:07:49 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 17:12:12 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac266
[ter dez 21 17:13:30 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 17:17:15 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac5ee
[ter dez 21 17:17:25 2021] r8169 0000:04:00.0 enp4s0: Rx ERROR. status = 352ac4ed

Realtek support is just horrible. And the worst thing is that all pci-e ethernet adapters (tp-link and d-link) available in my country have Realtek chipsets too. sad

Last edited by Strangiato (2021-12-22 11:23:17)

Offline

#36 2021-12-22 12:20:30

seth
Member
Registered: 2012-09-03
Posts: 51,655

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

The general recommendation for that chip is the r8168 driver - doesn't help you w/ the WOL though.
The keyboard wake increases gpe06 from 5 to 7

The best thing I can suggest as a workaround is to track gpe06 around S3s and if it increases TooMuch™ trigger an rtcwake (which will gurantee that the system re-wakes after a couple of seconds even on false positives)

Offline

#37 2021-12-22 13:10:50

Strangiato
Member
Registered: 2020-01-10
Posts: 382

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

Now I'm back to r8168. Just downloaded openSuse 4.3 GiB ISO image via torrent without any Rx error.
What a shame the buggy r8169 driver.

Offline

#38 2022-10-12 20:16:39

Strangiato
Member
Registered: 2020-01-10
Posts: 382

Re: [solved] PC turns itself on after sleep + wake on lan + shutdown

I have found a solution. \o/

Found out what can wake my pc up (enabled items below):

$ cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
PS2K      S3    *disabled
PS2M      S3    *disabled
RP01      S4    *disabled  pci:0000:00:1c.0
PXSX      S4    *disabled
RP02      S4    *disabled  pci:0000:00:1c.1
PXSX      S4    *disabled  pci:0000:02:00.0
RP03      S4    *disabled  pci:0000:00:1c.2
PXSX      S4    *enabled  pci:0000:04:00.0
RP04      S4    *disabled
PXSX      S4    *disabled
RP05      S4    *disabled
PXSX      S4    *disabled
RP06      S4    *disabled
PXSX      S4    *disabled
RP07      S4    *disabled
PXSX      S4    *disabled
RP08      S4    *disabled
PXSX      S4    *disabled
GLAN      S4    *disabled
EHC1      S4    *enabled   pci:0000:00:1d.0
EHC2      S4    *enabled   pci:0000:00:1a.0
XHC       S4    *enabled   pci:0000:00:14.0
HDEF      S4    *disabled  pci:0000:00:1b.0
PEG0      S4    *disabled
PEGP      S4    *disabled
PEG1      S4    *disabled
PEG2      S4    *disabled
PWRB      S3    *enabled   platform:PNP0C0C:00

I disabled EHC1, EHC2, XHC and PWRB with the commands below:

$ su
[entered my root password]
# echo EHC1 > /proc/acpi/wakeup
# echo EHC2 > /proc/acpi/wakeup
# echo XHC > /proc/acpi/wakeup
# echo PWRB > /proc/acpi/wakeup

But the problem persisted. Then I used lspci to find out what the enabled PXSX (pci:0000:04:00.0) is.

$ lspci
00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 05)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 05)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 05)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d5)
00:1c.1 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #2 (rev d5)
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d5)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 05)
00:1f.0 ISA bridge: Intel Corporation B85 Express LPC Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 05)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 05)
02:00.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 41)
04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

It is the pci bus of my ethernet adapter (04:00.0). Then I disabled its wakeup capability with these commands:

$ su
[entered my root password]
# echo disabled > /sys/bus/pci/devices/0000:04:00.0/power/wakeup

After these commands I was unable to reproduce the bug. Then I have configured my system to use sleep hooks to run the second command before and after suspend to RAM, according to instructions from this article from Arch wiki: https://wiki.archlinux.org/title/Power_ … leep_hooks

Created the following services:

/etc/systemd/system/root-suspend.service

[Unit]
Description=Local system suspend actions
Before=sleep.target

[Service]
Type=simple
ExecStart=/bin/sh -c "echo disabled > /sys/bus/pci/devices/0000:04:00.0/power/wakeup"

[Install]
WantedBy=sleep.target
/etc/systemd/system/root-resume.service

[Unit]
Description=Local system resume actions
After=suspend.target

[Service]
Type=simple
ExecStart=/bin/sh -c "echo disabled > /sys/bus/pci/devices/0000:04:00.0/power/wakeup"

[Install]
WantedBy=suspend.target

And finally I enabled and started the root-suspend and root-resume services:

$ sudo systemctl enable root-suspend
$ sudo systemctl start root-suspend
$ sudo systemctl enable root-resume
$ sudo systemctl start root-resume

Tried to reproduce the bug without success. Now everything works as it should. \o/
I hope this update be helpful for other users that eventually are facing the same bug.

Last edited by Strangiato (2022-10-12 20:46:37)

Offline

Board footer

Powered by FluxBB