Re: apm not responding
Firstly, the `ps auxw | grep apm` output got automatically distorted. Here is a manually word wrapped version, for clarity: root 53666 0.0 0.0 196 328 ?? IU Wed09PM0:00.33 \ /usr/sbin/apmd -A -t 60 -z 15 root 40604 0.0 0.0 1004 916 ?? Ip 7:42PM0:00.01 \ /bin/sh /etc/apm/resume root 64804 0.0 0.0 184 752 ?? Ip 7:42PM0:00.01 \ apm -av root 33185 0.0 0.0 996 944 ?? Ip 1:30AM0:00.01 \ /bin/sh -c [ "$(apm -av)" = 'A/C adapter state: connected' ] && \ anacron -s root 37775 0.0 0.0 172 880 ?? Ip 1:30AM0:00.00 \ apm -av root 33407 0.0 0.0 640 1604 pb S+p 5:38AM0:00.01 \ grep apm Hello, Raf Thanks for the points you made. It is nice here are such attentive and caring people. >> Laptop is being powered via A/C via dockstation; battery is pulled out. >> apmd_flags=-A -t 60 -z 15 > On a system without a battery, using '-z' is nonsensical and '-t' > is redundant as, without the battery, the power state will never > change... unless, of course, you unplug the power in which case > none of it will matter anyway ;^) The laptop is generally A/C powered, and for occasional battery-poweredness I want it to be hassle-free by having been already configured. > root's PATH does contain /usr/local/sbin, however crontab's PATH, does not. > You'll either have to use the full path - /usr/local/sbin/anacron > - or adjust PATH accordingly. My omission >> @daily 0 id_daily /bin/sh /etc/daily >> @weekly 0 id_weekly /bin/sh /etc/weekly >> @monthly0 id_monthly/bin/sh /etc/monthly > anacrontab(5) from this port doesn't supports @-strings known from > crontab(5) or 3rd-party updates to anacron(8). Nice you stressed it. I took the @-strings from examples across the internet. Although neither `man anacrontab` nor `/usr/local/share/doc/pkg-readmes/anacron` say about supporting @-strings, they don't make it explicit that @-strings are not supported in this particular port unlike `anacron` configurations you may encounter elsewhere. >> so additional quotes are probably required like this: >> /bin/sh -c '[ "$(apm -av)" = 'A/C adapter state: connected' ] && anacron -s' >> > You can't use (') quotes inside (') quotes without escaping them first. My confusion. Thank you. But I'd rephrase it as single quotes are not nestable. Unless backslashed, a single quote starts a strong quoting. Next single quote ends the strong quoting, regardless of having backslash before it. >> sd1 at scsibus3 targ 1 lun 0: >> sd1: 476937MB, 512 bytes/sector, 976767473 sectors >> root on sd1a (942f936162d34584.a) swap on sd1b dump on sd1b > you're using SoftRAID. Have you allocated disk space the > standard/automatic way? Is your swap space large enough[0]? Allocated manually, 24G swap, 16G RAM. Correlation from RedHat Linux recommendations. In the thread you linked, there is a post https://marc.info/?l=openbsd-bugs=164226571307343=2 with different numbers: > The payload is compressed RLE of in-use memory, > after discarding cached memory. It is not a 1:1 copy of physical > memory. Upon resume, you see the number. It tends to be way less than > 1/4 of memory, but it is hard to say. >> acpi0 at bios0: ACPI 5.0 >> acpi0: sleep states S0 S3 S4 S5 > BTW, it your laptop's BIOS supports it so, normally, it shouldn't > be a problem to hibernate. I had been successfully hibernating and suspending until all this ugly misconfiguration. However, it once kinda hung at the end of hibernation, the screen was already black, disk activity LED light was blinking for too long, and I just powered it down. On the next boot, my desktop session was restored completely fine. Dunno. But, despite my configuration blunder, in my opinion `apm` behaves in an unexpected and undesired way. My misconfiguration may be bad enough to serve its purpose but it is good enough to run the `apm`. It is present at the `ps` output, so it got launched. `apm -av` shows in `ps` for indefinitely long time, although it makes a single instant action. Maybe it waits for my command to receive its output, which doesn't happen? But new `apm` commands hang! Can `apm` handle several requests simultaneously or needs it to release a previous call in order to be able to serve the next one? So a badly written script or one made bad on purpose blocks subsequent calls to `apm`. It shouldn't happen. If I misunderstand something, please clarify. Just after a reboot: > ps auxw | grep apm # manually word wrapped root 64545 0.0 0.0 196 824 ?? IU 8:51PM0:00.00 \ /usr/sbin/apmd -A -t 60 -z 15 root 34093 0.0 0.0 1004 944 ?? Ip 8:51PM0:00.00 \ /bin/sh /etc/apm/powerup root 60501 0.0 0.0 180 944 ?? Ip 8:51PM0:00.00 \ apm -av v11e 41126 0.0 0.0 636 1628 p1 S+p 8:57PM0:00.01 \
nat-to round-robin without a pool
Hi, the following pf.conf snippet is correctly loaded but produces a configuration that doens't work: -- ip="172.16.0.1" ip_pool="{192.168.0.1}" match out on egress from $ip to any nat-to $ip_pool round-robin -- vm$ doas pfctl -s rules match out on egress inet from 172.16.0.1 to any nat-to 192.168.0.1 round-robin round-robin should loop through the addresses but it currently works only with more then 2 addresses, in this case nat seems not to be performed at all. Should pfctl(8) produce a syntax error in this case ? Cheers Giovanni OpenBSD 7.0-current (GENERIC.MP) #317: Mon Feb 7 18:36:08 MST 2022 dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 2130542592 (2031MB) avail mem = 2048823296 (1953MB) random: good seed from bootblocks mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.8 @ 0xf5970 (9 entries) bios0: vendor SeaBIOS version "1.15.0-1.fc35" date 04/01/2014 bios0: QEMU Standard PC (i440FX + PIIX, 1996) acpi0 at bios0: ACPI 1.0 acpi0: sleep states S5 acpi0: tables DSDT FACP APIC WAET acpi0: wakeup devices acpitimer0 at acpi0: 3579545 Hz, 24 bits acpimadt0 at acpi0 addr 0xfee0: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz, 694.21 MHz, 06-3c-03 cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,VMX,SSSE3,FMA3,CX16,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,UMIP,MD_CLEAR,IBRS,IBPB,STIBP,SSBD,ARAT,XSAVEOPT,MELTDOWN cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 cache cpu0: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu0: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu0: smt 0, core 0, package 0 mtrr: Pentium Pro MTRR support, 8 var ranges, 88 fixed ranges cpu0: apic clock running at 999MHz cpu1 at mainbus0: apid 1 (application processor) cpu1: Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz, 795.74 MHz, 06-3c-03 cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,VMX,SSSE3,FMA3,CX16,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,UMIP,MD_CLEAR,IBRS,IBPB,STIBP,SSBD,ARAT,XSAVEOPT,MELTDOWN cpu1: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 cache cpu1: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu1: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu1: smt 1, core 0, package 0 cpu2 at mainbus0: apid 2 (application processor) cpu2: Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz, 688.24 MHz, 06-3c-03 cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,VMX,SSSE3,FMA3,CX16,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,UMIP,MD_CLEAR,IBRS,IBPB,STIBP,SSBD,ARAT,XSAVEOPT,MELTDOWN cpu2: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 cache cpu2: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu2: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu2: smt 0, core 1, package 0 cpu3 at mainbus0: apid 3 (application processor) cpu3: Intel(R) Core(TM) i5-4300M CPU @ 2.60GHz, 562.15 MHz, 06-3c-03 cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SS,HTT,SSE3,PCLMUL,VMX,SSSE3,FMA3,CX16,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,MOVBE,POPCNT,DEADLINE,AES,XSAVE,AVX,F16C,RDRAND,HV,NXE,PAGE1GB,RDTSCP,LONG,LAHF,ABM,PERF,FSGSBASE,TSC_ADJUST,BMI1,AVX2,SMEP,BMI2,ERMS,INVPCID,UMIP,MD_CLEAR,IBRS,IBPB,STIBP,SSBD,ARAT,XSAVEOPT,MELTDOWN cpu3: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 cache cpu3: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu3: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped cpu3: smt 1, core 1, package 0 ioapic0 at mainbus0: apid 0 pa 0xfec0, version 11, 24 pins acpiprt0 at acpi0: bus 0 (PCI0) "ACPI0006" at acpi0 not configured acpipci0 at acpi0 PCI0 com0 at acpi0 COM1 addr 0x3f8/0x8 irq 4: ns16550a, 16 byte fifo acpicmos0 at acpi0 "PNP0A06" at acpi0 not configured "PNP0A06" at acpi0 not configured "PNP0A06" at acpi0 not configured "QEMU0002" at acpi0 not configured "ACPI0010" at acpi0 not configured acpicpu0 at acpi0: C1(@1 halt!) acpicpu1 at acpi0: C1(@1 halt!) acpicpu2 at acpi0: C1(@1 halt!) acpicpu3 at
Re: C2 state not recognized on Thinkpad T420s when on AC
On Feb 11 12:17:35, h...@stare.cz wrote: > > > > the same scenario: cold start the machine on AC, > > > > plug AC out, in, out, in. > > > So here's a revised diff that tries to make it safe for ACPI to notify us > > that a CPU's _CST has changed while that cpu is entering idle. Revert the > > previous diff before trying to apply this one. Please give it a shot; no > > need for ACPI_DEBUG now! > > dmesg of the same scenario below, For comparison, here is the same on a Thinkpad X230i, which gets/loses C3 on battery/ac, respectively. Jan OpenBSD 7.0-current (GENERIC.MP) #0: Fri Feb 11 12:20:38 CET 2022 h...@usb.stare.cz:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 8234086400 (7852MB) avail mem = 7967322112 (7598MB) random: good seed from bootblocks mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xdae9c000 (69 entries) bios0: vendor LENOVO version "G2ETB7WW (2.77 )" date 09/24/2019 bios0: LENOVO 2325T7Z acpi0 at bios0: ACPI 5.0 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP SLIC TCPA SSDT SSDT SSDT HPET APIC MCFG ECDT FPDT ASF! UEFI UEFI POAT SSDT SSDT UEFI DBG2 acpi0: wakeup devices LID_(S4) SLPB(S3) IGBE(S4) EXP3(S4) XHCI(S3) EHC1(S3) EHC2(S3) HDEF(S4) acpitimer0 at acpi0: 3579545 Hz, 24 bits acpihpet0 at acpi0: 14318179 Hz acpimadt0 at acpi0 addr 0xfee0: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz, 2394.99 MHz, 06-3a-09 cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,F16C,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN cpu0: 256KB 64b/line 8-way L2 cache cpu0: smt 0, core 0, package 0 mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges cpu0: apic clock running at 99MHz cpu0: mwait min=64, max=64, C-substates=0.2.1.1.2, IBE cpu1 at mainbus0: apid 1 (application processor) cpu1: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz, 2394.57 MHz, 06-3a-09 cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,F16C,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN cpu1: 256KB 64b/line 8-way L2 cache cpu1: smt 1, core 0, package 0 cpu2 at mainbus0: apid 2 (application processor) cpu2: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz, 2394.57 MHz, 06-3a-09 cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,F16C,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN cpu2: 256KB 64b/line 8-way L2 cache cpu2: smt 0, core 1, package 0 cpu3 at mainbus0: apid 3 (application processor) cpu3: Intel(R) Core(TM) i3-3110M CPU @ 2.40GHz, 2394.57 MHz, 06-3a-09 cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,XSAVE,AVX,F16C,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,FSGSBASE,SMEP,ERMS,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN cpu3: 256KB 64b/line 8-way L2 cache cpu3: smt 1, core 1, package 0 ioapic0 at mainbus0: apid 2 pa 0xfec0, version 20, 24 pins acpimcfg0 at acpi0 acpimcfg0: addr 0xf800, bus 0-63 acpiec0 at acpi0 acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus -1 (PEG_) acpiprt2 at acpi0: bus 2 (EXP1) acpiprt3 at acpi0: bus 3 (EXP2) acpiprt4 at acpi0: bus 4 (EXP3) acpibtn0 at acpi0: LID_ acpibtn1 at acpi0: SLPB acpipci0 at acpi0 PCI0: 0x 0x0011 0x0001 acpicmos0 at acpi0 acpibat0 at acpi0: BAT0 model "45N1025" serial 1124 type LION oem "LGC" acpiac0 at acpi0: AC unit online "LEN0078" at acpi0 not configured acpithinkpad0 at acpi0: version 1.0 "PNP0C14" at acpi0 not configured "PNP0C14" at acpi0 not configured "PNP0C14" at acpi0 not configured acpicpu0 at acpi0: C2(350@80 mwait.1@0x20), C1(1000@1 mwait.1), PSS acpicpu1 at acpi0: C2(350@80 mwait.1@0x20), C1(1000@1 mwait.1), PSS acpicpu2 at acpi0: C2(350@80 mwait.1@0x20), C1(1000@1 mwait.1), PSS acpicpu3 at acpi0: C2(350@80 mwait.1@0x20), C1(1000@1 mwait.1), PSS acpipwrres0 at acpi0: PUBS, resource for XHCI, EHC1, EHC2 acpitz0 at acpi0: critical temperature is 103 degC acpidock0 at acpi0: GDCK not docked (0) acpivideo0 at acpi0: VID_ acpivout0 at acpivideo0: LCD0 acpivideo1 at acpi0: VID_ cpu0: using VERW MDS workaround (except on vmm entry) cpu0:
Re: C2 state not recognized on Thinkpad T420s when on AC
> > > the same scenario: cold start the machine on AC, > > > plug AC out, in, out, in. > So here's a revised diff that tries to make it safe for ACPI to notify us > that a CPU's _CST has changed while that cpu is entering idle. Revert the > previous diff before trying to apply this one. Please give it a shot; no > need for ACPI_DEBUG now! dmesg of the same scenario below, Jan OpenBSD 7.0-current (GENERIC.MP) #0: Fri Feb 11 12:20:38 CET 2022 h...@usb.stare.cz:/usr/src/sys/arch/amd64/compile/GENERIC.MP real mem = 8450076672 (8058MB) avail mem = 8176766976 (7797MB) random: good seed from bootblocks mpath0 at root scsibus0 at mpath0: 256 targets mainbus0 at root bios0 at mainbus0: SMBIOS rev. 2.6 @ 0xdae9c000 (65 entries) bios0: vendor LENOVO version "8CET66WW (1.46 )" date 06/13/2018 bios0: LENOVO 4173CJ8 acpi0 at bios0: ACPI 4.0 acpi0: sleep states S0 S3 S4 S5 acpi0: tables DSDT FACP SLIC SSDT SSDT SSDT HPET APIC MCFG ECDT ASF! TCPA SSDT SSDT DMAR UEFI UEFI UEFI acpi0: wakeup devices LID_(S3) SLPB(S3) IGBE(S4) EXP4(S4) EXP5(S4) EHC1(S3) EHC2(S3) HDEF(S4) acpitimer0 at acpi0: 3579545 Hz, 24 bits acpihpet0 at acpi0: 14318179 Hz acpimadt0 at acpi0 addr 0xfee0: PC-AT compat cpu0 at mainbus0: apid 0 (boot processor) cpu0: Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz, 2591.95 MHz, 06-2a-07 cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN cpu0: 256KB 64b/line 8-way L2 cache cpu0: smt 0, core 0, package 0 mtrr: Pentium Pro MTRR support, 10 var ranges, 88 fixed ranges cpu0: apic clock running at 99MHz cpu0: mwait min=64, max=64, C-substates=0.2.1.1.2, IBE cpu1 at mainbus0: apid 1 (application processor) cpu1: Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz, 2591.59 MHz, 06-2a-07 cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN cpu1: 256KB 64b/line 8-way L2 cache cpu1: smt 1, core 0, package 0 cpu2 at mainbus0: apid 2 (application processor) cpu2: Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz, 2591.60 MHz, 06-2a-07 cpu2: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN cpu2: 256KB 64b/line 8-way L2 cache cpu2: smt 0, core 1, package 0 cpu3 at mainbus0: apid 3 (application processor) cpu3: Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz, 2591.59 MHz, 06-2a-07 cpu3: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE,SSE3,PCLMUL,DTES64,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,SSE4.1,SSE4.2,x2APIC,POPCNT,DEADLINE,AES,XSAVE,AVX,NXE,RDTSCP,LONG,LAHF,PERF,ITSC,MD_CLEAR,IBRS,IBPB,STIBP,L1DF,SSBD,SENSOR,ARAT,XSAVEOPT,MELTDOWN cpu3: 256KB 64b/line 8-way L2 cache cpu3: smt 1, core 1, package 0 ioapic0 at mainbus0: apid 2 pa 0xfec0, version 20, 24 pins acpimcfg0 at acpi0 acpimcfg0: addr 0xf800, bus 0-63 acpiec0 at acpi0 acpiprt0 at acpi0: bus 0 (PCI0) acpiprt1 at acpi0: bus -1 (PEG_) acpiprt2 at acpi0: bus 2 (EXP1) acpiprt3 at acpi0: bus 3 (EXP2) acpiprt4 at acpi0: bus 5 (EXP4) acpiprt5 at acpi0: bus 13 (EXP5) acpibtn0 at acpi0: LID_ acpibtn1 at acpi0: SLPB acpipci0 at acpi0 PCI0: 0x 0x0011 0x0001 acpicmos0 at acpi0 acpibat0 at acpi0: BAT0 model "42T4845" serial 20453 type LION oem "SANYO" acpiac0 at acpi0: AC unit online acpithinkpad0 at acpi0: version 1.0 "PNP0C14" at acpi0 not configured "PNP0C14" at acpi0 not configured acpicpu0 at acpi0: C3(350@104 io@0x415), C1(1000@1 halt), PSS acpicpu1 at acpi0: C3(350@104 io@0x415), C1(1000@1 halt), PSS acpicpu2 at acpi0: C3(350@104 io@0x415), C1(1000@1 halt), PSS acpicpu3 at acpi0: C3(350@104 io@0x415), C1(1000@1 halt), PSS acpipwrres0 at acpi0: PUBS, resource for EHC1, EHC2 acpitz0 at acpi0: critical temperature is 98 degC acpivideo0 at acpi0: VID_ acpivout0 at acpivideo0: LCD0 acpivideo1 at acpi0: VID_ cpu0: using VERW MDS workaround (except on vmm entry) cpu0: Enhanced SpeedStep 2591 MHz: speeds: 2601, 2600, 2400, 2200, 2000, 1800, 1600, 1400, 1200, 1000, 800 MHz pci0 at mainbus0 bus 0 pchb0 at pci0 dev 0 function 0 "Intel Core 2G Host" rev 0x09 inteldrm0 at pci0 dev 2 function 0 "Intel HD Graphics 3000" rev 0x09 drm0 at inteldrm0 inteldrm0: msi, SANDYBRIDGE, gen 6 "Intel 6 Series MEI" rev 0x04 at
Re: C2 state not recognized on Thinkpad T420s when on AC
> Date: Thu, 10 Feb 2022 23:46:43 -0800 > From: guent...@openbsd.org > > On Thu, 10 Feb 2022, Jan Stary wrote: > > > > When you build a kernel with this, do please add ACPI_DEBUG to your > > > > kernel > > > > config, so we can see more details about what the firmware is telling > > > > us. > > > > > > Full dmesg below, without ACPI_DEBUG. > > > > > > Also below, full /var/log/messages with ACPI_DEBUG, > > > as it spams dmesg so much that /var/run/dmesg.boot > > > does not really contain the booting kernel device messages, > > > being rolled off by the storm of ACPI_DEBUG messages. > > > (Is there a way to increase that buffer, > > > so that dmesg.boot would hold everything?) > > > Of course, this is only after syslogd has started; > > > hopefully the acpicpu events are there. > > > > > > Both contain a log of the same scenario: cold start the machine on AC, > > > plug AC out, in, out, in; shutdown with the power button. > > > > With MSGBUFSIZE cranked up, > > here is a dmesg containing all, > > up to before the shutdown. > > Uh, wow, I had forgotten how horrifically verbose ACPI_DEBUG was. I'm > half inclined to delete all the uses of ACPI_DEBUG from acpicpu.c and use > a different #define for them. Go for it. > That said, the data shows the expected 0x81 notifications (and no 0x80 > notifications) on the CPU objects, and the values appear to be accurately > parsed the acpicpu.c. Whew. > > > So here's a revised diff that tries to make it safe for ACPI to notify us > that a CPU's _CST has changed while that cpu is entering idle. Revert the > previous diff before trying to apply this one. Please give it a shot; no > need for ACPI_DEBUG now! > > > Philip > > > Index: sys/dev/acpi/acpicpu.c > === > RCS file: /data/src/openbsd/src/sys/dev/acpi/acpicpu.c,v > retrieving revision 1.91 > diff -u -p -r1.91 acpicpu.c > --- sys/dev/acpi/acpicpu.c9 Jan 2022 05:42:37 - 1.91 > +++ sys/dev/acpi/acpicpu.c11 Feb 2022 07:19:11 - > @@ -25,6 +25,7 @@ > #include > #include > #include > +#include > > #include > #include > @@ -80,6 +81,7 @@ voidacpicpu_setperf_ppc_change(struct a > #define CST_FLAG_FALLBACK0x4000 /* fallback for broken _CST */ > #define CST_FLAG_SKIP0x8000 /* state is worse > choice */ > > +#define FLAGS_NOCST 0x01 > #define FLAGS_MWAIT_ONLY 0x02 > #define FLAGS_BMCHECK0x04 > #define FLAGS_NOTHROTTLE 0x08 > @@ -130,6 +132,11 @@ struct acpicpu_softc { > struct cpu_info *sc_ci; > SLIST_HEAD(,acpi_cstate) sc_cstates; > > + /* sc_mtx protects sc_cstates_active and sc_mwait_only */ > + struct mutexsc_mtx; > + struct acpi_cstate *sc_cstates_active; > + int sc_mwait_only; > + > bus_space_tag_t sc_iot; > bus_space_handle_t sc_ioh; > > @@ -161,10 +168,12 @@ struct acpicpu_softc { > > void acpicpu_add_cstatepkg(struct aml_value *, void *); > void acpicpu_add_cdeppkg(struct aml_value *, void *); > +void acpicpu_cst_activate(struct acpicpu_softc *); > int acpicpu_getppc(struct acpicpu_softc *); > int acpicpu_getpct(struct acpicpu_softc *); > int acpicpu_getpss(struct acpicpu_softc *); > int acpicpu_getcst(struct acpicpu_softc *); > +void acpicpu_free_states(struct acpi_cstate *); > void acpicpu_getcst_from_fadt(struct acpicpu_softc *); > void acpicpu_print_one_cst(struct acpi_cstate *_cx); > void acpicpu_print_cst(struct acpicpu_softc *_sc); > @@ -511,10 +520,10 @@ acpicpu_getcst(struct acpicpu_softc *sc) > int use_nonmwait; > > /* delete the existing list */ > - while ((cx = SLIST_FIRST(>sc_cstates)) != NULL) { > - SLIST_REMOVE_HEAD(>sc_cstates, link); > - free(cx, M_DEVBUF, sizeof(*cx)); > - } > + cx = SLIST_FIRST(>sc_cstates); > + SLIST_INIT(>sc_cstates); > + if (cx != sc->sc_cstates_active) > + acpicpu_free_states(cx); > > /* provide a fallback C1-via-halt in case _CST's C1 is bogus */ > acpicpu_add_cstate(sc, ACPI_STATE_C1, CST_METH_HALT, > @@ -526,17 +535,18 @@ acpicpu_getcst(struct acpicpu_softc *sc) > aml_foreachpkg(, 1, acpicpu_add_cstatepkg, sc); > aml_freevalue(); > > + use_nonmwait = 0; > + > /* only have fallback state? then no _CST objects were understood */ > cx = SLIST_FIRST(>sc_cstates); > if (cx->flags & CST_FLAG_FALLBACK) > - return (1); > + goto done; > > /* >* Skip states >= C2 if the CPU's LAPIC timer stops in deep >* states (i.e., it doesn't have the 'ARAT' bit set). >* Also keep track if all the states we'll use use mwait. >*/ > - use_nonmwait = 0; > while ((next_cx = SLIST_NEXT(cx, link)) != NULL) { > if (cx->state > 1 && >