RE: [PATCH] ACPI: x86: Separate out the Microsoft _DSM function calls

From: Limonciello, Mario
Date: Mon Apr 24 2023 - 18:22:42 EST


[Public]



> -----Original Message-----
> From: kernel test robot <lkp@xxxxxxxxx>
> Sent: Monday, April 24, 2023 10:14
> To: Limonciello, Mario <Mario.Limonciello@xxxxxxx>; rafael@xxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx
> Cc: oe-kbuild-all@xxxxxxxxxxxxxxx; linux-pm@xxxxxxxxxxxxxxx; S-k, Shyam-sundar
> <Shyam-sundar.S-k@xxxxxxx>; Limonciello, Mario
> <Mario.Limonciello@xxxxxxx>; Len Brown <lenb@xxxxxxxxxx>; linux-
> acpi@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] ACPI: x86: Separate out the Microsoft _DSM function calls
>
> Hi Mario,
>
> kernel test robot noticed the following build warnings:
>
> [auto build test WARNING on 7124d7671af0facf115d70f9d1fadde0d768d325]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Mario-Limonciello/ACPI-
> x86-Separate-out-the-Microsoft-_DSM-function-calls/20230421-001547
> base: 7124d7671af0facf115d70f9d1fadde0d768d325
> patch link: https://lore.kernel.org/r/20230420160923.14127-1-
> mario.limonciello%40amd.com
> patch subject: [PATCH] ACPI: x86: Separate out the Microsoft _DSM function
> calls
> config: i386-randconfig-s003 (https://download.01.org/0day-
> ci/archive/20230424/202304242231.68KXGyif-lkp@xxxxxxxxx/config)
> compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
> reproduce:
> # apt-get install sparse
> # sparse version: v0.6.4-39-gce1a6720-dirty
> # https://github.com/intel-lab-
> lkp/linux/commit/e4ea0d2f15f2d0486bc3b4f59cbf9cea6c63fda1
> git remote add linux-review https://github.com/intel-lab-lkp/linux
> git fetch --no-tags linux-review Mario-Limonciello/ACPI-x86-Separate-out-
> the-Microsoft-_DSM-function-calls/20230421-001547
> git checkout e4ea0d2f15f2d0486bc3b4f59cbf9cea6c63fda1
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir
> ARCH=i386 olddefconfig
> make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir
> ARCH=i386 SHELL=/bin/bash drivers/acpi/
>
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@xxxxxxxxx>
> | Link: https://lore.kernel.org/oe-kbuild-all/202304242231.68KXGyif-
> lkp@xxxxxxxxx/
>
> sparse warnings: (new ones prefixed by >>)
> drivers/acpi/x86/s2idle.c:479:13: sparse: sparse: restricted suspend_state_t
> degrades to integer
> drivers/acpi/x86/s2idle.c:479:33: sparse: sparse: restricted suspend_state_t
> degrades to integer
> >> drivers/acpi/x86/s2idle.c:552:6: sparse: sparse: symbol 'lps0_s2idle_wake'
> was not declared. Should it be static?
>

Besides the problem caught by the robot I was looking at a BIOS debug log for Windows
recently and noticed the events come in a different order.

I re-reviewed the Microsoft spec and it makes it clear we've been doing it wrong in Linux too.

On the way down it should be
3->7->5
On the way back up it should be:
6->8->4

I need to redo all of my testing with this new assumption before I'm confident on such a change.
I'll include an assertion of confidence from that testing to help decide if this should actually wait
for 6.5.