linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mirsad Goran Todorovac <mirsad.todorovac@alu.unizg.hr>
To: srinivas pandruvada <srinivas.pandruvada@linux.intel.com>,
	LKML <linux-kernel@vger.kernel.org>,
	rjw@rjwysocki.net
Cc: regressions@lists.linux.dev, regressions@leemhuis.info,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	Robert Moore <robert.moore@intel.com>,
	devel@acpica.org
Subject: Re: BUG: bisected: thermald regression (MEMLEAK) in commit c7ff29763989bd09c433f73fae3c1e1c15d9cda4
Date: Mon, 24 Oct 2022 20:34:31 +0200	[thread overview]
Message-ID: <bd1f0d2a-d456-92cc-ecca-23e480aea4b1@alu.unizg.hr> (raw)
In-Reply-To: <9ef3674afd370050b86a68e44c97e4f0257f1adf.camel@linux.intel.com>

Hi Srinivas,

On 24. 10. 2022. 17:51, srinivas pandruvada wrote:
> Hi Mirsad,
>
> Thanks for the bisect.
>
> On Mon, 2022-10-24 at 15:13 +0200, Mirsad Goran Todorovac wrote:
>> Dear all,
>>
>> Around Sep 27th 2022 I've noticed in a mainline kernel built with
>> CONFIG_DEBUG_KMEMLEAK=y
>> that there actually is a leak:
>>
>>> sudo cat /sys/kernel/debug/kmemleak unreferenced object
>> 0xffff8881095f3ee0 (size 80): comm "thermald", pid 837, jiffies
>> 4294896698 (age 9867.428s) hex dump (first 32 bytes): 00 00 00 00 00
>> 00
>> 00 00 0d 01 2d 00 00 00 00 00 ..........-..... af 07 01 00 00 c9 ff
>> ff
>> 00 00 00 00 00 00 00 00 ................ backtrace:
>> [<00000000b50b9dd6>]
>> kmem_cache_alloc+0x184/0x380 [<00000000fa8428c0>]
>> acpi_os_acquire_object+0x2c/0x32 [<000000002cc0099f>]
>> acpi_ps_alloc_op+0x65/0xe6 [<00000000335faf1b>]
>> acpi_ps_get_next_arg+0x842/0x9ed [<000000007afa2dee>]
>> acpi_ps_parse_loop+0x718/0xee1 [<0000000010ce490e>]
>> acpi_ps_parse_aml+0x261/0x7b2 [<00000000278d4c5f>]
>> acpi_ps_execute_method+0x360/0x459 [<00000000ff7ad4ba>]
>> acpi_ns_evaluate+0x595/0x810 [<0000000037ce3488>]
>> acpi_evaluate_object+0x28b/0x5b2 [<000000001a800bbf>]
>> acpi_run_osc+0x209/0x3d0 [<00000000776fbd43>]
>> int3400_thermal_run_osc+0xed/0x180 [int3400_thermal]
>> [<00000000d6ec2302>] current_uuid_store+0x17c/0x1d0 [int3400_thermal]
>> [<00000000486cf3e6>] dev_attr_store+0x3e/0x60 [<00000000bf193027>]
>> sysfs_kf_write+0x88/0xa0 [<00000000820b5cce>]
>> kernfs_fop_write_iter+0x1c9/0x270 [<0000000062f8d35e>]
>> vfs_write+0x5a5/0x750 Mr. Pandruvada required a bug bisect from me,
>> so I
>> have eventually made one. # first bad commit:
>> [c7ff29763989bd09c433f73fae3c1e1c15d9cda4] thermal: int340x: Update
>> OS
> This will say this patch as this patch is calling acpi_run_osc in
> response to thermald calls for the first time.
>
> But looking at code, this is freeing the memory allocated by
> acpi_run_osc() call chain as any other caller.
>
> 	status = acpi_run_osc(handle, &context);
> 	if (ACPI_SUCCESS(status)) {
> 		ret = *((u32 *)(context.ret.pointer + 4));
> 		if (ret != *enable)
> 			result = -EPERM;
>
> 		kfree(context.ret.pointer);
> 	} else
> 		result = -EPERM;
>
> There is no kfree when call failed as at other places.
> I think you are failing, you can search for "_OSC" in dmesg.
> On some Dell systems this OSC setting fails because of some BIOS issue.
> May be you are hitting that case.
> Just for the sake of test, please apply the diff and see if the issue
> is gone.

Thank you for the patch. Unfortunately, when applied to v6.0.3 it didn't 
fix the issue.

marvin@marvin-IdeaPad-3-15ITL6:~$ uname -rms
Linux 6.0.3-18-fix01-mlk+ x86_64
marvin@marvin-IdeaPad-3-15ITL6:~$ sudo bash
[sudo] password for marvin:
root@marvin-IdeaPad-3-15ITL6:/home/marvin# cat /sys/kernel/debug/kmemleak
root@marvin-IdeaPad-3-15ITL6:/home/marvin# echo scan > 
/sys/kernel/debug/kmemleak
root@marvin-IdeaPad-3-15ITL6:/home/marvin# cat /sys/kernel/debug/kmemleak
unreferenced object 0xffff998b030c3370 (size 80):
   comm "thermald", pid 824, jiffies 4294893654 (age 67.080s)
   hex dump (first 32 bytes):
     00 00 00 00 00 00 00 00 0d 01 2d 00 00 00 00 00 ..........-.....
     af 07 01 c0 6f bc ff ff 00 00 00 00 00 00 00 00 ....o...........
   backtrace:
     [<00000000490225c2>] slab_post_alloc_hook+0x80/0x2e0
     [<00000000dc142b33>] kmem_cache_alloc+0x166/0x2e0
     [<00000000168f1071>] acpi_os_acquire_object+0x2c/0x32
     [<00000000fcc615e1>] acpi_ps_alloc_op+0x4a/0x99
     [<00000000fb475bb4>] acpi_ps_get_next_arg+0x611/0x761
     [<000000009048d529>] acpi_ps_parse_loop+0x494/0x8d7
     [<000000005b0bf086>] acpi_ps_parse_aml+0x1bb/0x561
     [<000000007ab7e288>] acpi_ps_execute_method+0x20f/0x2d5
     [<00000000c12fa6b7>] acpi_ns_evaluate+0x34d/0x4f3
     [<000000001be94719>] acpi_evaluate_object+0x180/0x3ae
     [<00000000423a7ad5>] acpi_run_osc+0x128/0x250
     [<0000000040a72af8>] int3400_thermal_run_osc+0x6f/0xc0 
[int3400_thermal]
     [<00000000f8d59987>] current_uuid_store+0xe3/0x120 [int3400_thermal]
     [<000000007e2e2d17>] dev_attr_store+0x14/0x30
     [<00000000b824b589>] sysfs_kf_write+0x38/0x50
     [<00000000beae69c1>] kernfs_fop_write_iter+0x146/0x1d0
root@marvin-IdeaPad-3-15ITL6:/home/marvin#

The build process was as follows:

  1573  10/24/2022 06:41:53 PM  cd linux_stable
  1574  10/24/2022 06:42:03 PM  git checkout v6.0.3
  1575  10/24/2022 06:42:44 PM  cd ..
  1576  10/24/2022 06:42:50 PM  time rm -rf linux_stable_build; time cp 
-rp linux_stable linux_stable_build; \
                     time diff -ur linux_stable linux_stable_build; cd 
linux_stable_build
  1577  10/24/2022 06:46:19 PM  git apply ../thermald-20221024-01.diff
  1578  10/24/2022 06:46:28 PM  vi ../config-5.15.0-50-memleak
  1579  10/24/2022 06:47:08 PM  cp ../config-5.15.0-50-memleak .config
  1580  10/24/2022 06:47:16 PM  make olddefconfig
  1581  10/24/2022 06:48:42 PM  time nice make CC="ccache gcc" 
KBUILD_BUILD_TIMESTAMP="" -j10 deb-pkg; date

I think your patch definitively makes sense, but there's more to this 
than meets the eye :-/

Hope this helps.

Thanks
Mirsad

--
Mirsad Goran Todorovac
Sistem inženjer
Grafički fakultet | Akademija likovnih umjetnosti
Sveučilište u Zagrebu
-- 
System engineer
Faculty of Graphic Arts | Academy of Fine Arts
University of Zagreb, Republic of Croatia
The European Union


  reply	other threads:[~2022-10-24 20:31 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <e0f06714-5a49-a4e6-24e6-c4103c820819@alu.unizg.hr>
2022-10-24 15:51 ` BUG: bisected: thermald regression (MEMLEAK) in commit c7ff29763989bd09c433f73fae3c1e1c15d9cda4 srinivas pandruvada
2022-10-24 18:34   ` Mirsad Goran Todorovac [this message]
2022-10-24 18:39     ` srinivas pandruvada
2022-10-24 18:56       ` Mirsad Goran Todorovac
2022-10-26 17:52         ` Mirsad Goran Todorovac
2022-10-26 22:48           ` srinivas pandruvada
     [not found]             ` <78e347e9-c8b1-f228-ca32-0ad6186a6285@alu.unizg.hr>
2022-10-27 18:20               ` Mirsad Goran Todorovac
2022-10-28 18:25                 ` Rafael J. Wysocki
2022-11-15 10:36                   ` Thorsten Leemhuis
2022-11-15 11:17                     ` Mirsad Goran Todorovac
2022-11-15 14:40                   ` Mirsad Goran Todorovac
2022-11-15 14:49                     ` Rafael J. Wysocki
2022-11-15 18:57                       ` Mirsad Goran Todorovac

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bd1f0d2a-d456-92cc-ecca-23e480aea4b1@alu.unizg.hr \
    --to=mirsad.todorovac@alu.unizg.hr \
    --cc=devel@acpica.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=regressions@leemhuis.info \
    --cc=regressions@lists.linux.dev \
    --cc=rjw@rjwysocki.net \
    --cc=robert.moore@intel.com \
    --cc=srinivas.pandruvada@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).