dri-devel Archive mirror
 help / color / mirror / Atom feed
From: kernel test robot <oliver.sang@intel.com>
To: Kees Cook <keescook@chromium.org>
Cc: <oe-lkp@lists.linux.dev>, <lkp@intel.com>,
	<linux-kernel@vger.kernel.org>,  <linux-kbuild@vger.kernel.org>,
	Christian Brauner <brauner@kernel.org>,
	"Kees Cook" <keescook@chromium.org>,
	Will Deacon <will@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Boqun Feng <boqun.feng@gmail.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Kent Overstreet <kent.overstreet@linux.dev>,
	Masahiro Yamada <masahiroy@kernel.org>,
	Nathan Chancellor <nathan@kernel.org>,
	Nicolas Schier <nicolas@fjasle.eu>,
	Al Viro <viro@zeniv.linux.org.uk>, Jan Kara <jack@suse.cz>,
	Zack Rusin <zack.rusin@broadcom.com>,
	Broadcom internal kernel review list
	<bcm-kernel-feedback-list@broadcom.com>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	David Airlie <airlied@gmail.com>, Daniel Vetter <daniel@ffwll.ch>,
	Jani Nikula <jani.nikula@linux.intel.com>,
	Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
	Rodrigo Vivi <rodrigo.vivi@intel.com>,
	Tvrtko Ursulin <tursulin@ursulin.net>,
	Andi Shyti <andi.shyti@linux.intel.com>,
	Lucas De Marchi <lucas.demarchi@intel.com>,
	Matt Atwood <matthew.s.atwood@intel.com>,
	Matthew Auld <matthew.auld@intel.com>,
	Nirmoy Das <nirmoy.das@intel.com>,
	Jonathan Cavitt <jonathan.cavitt@intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	<linux-fsdevel@vger.kernel.org>,
	<dri-devel@lists.freedesktop.org>,
	<intel-gfx@lists.freedesktop.org>,
	<linux-hardening@vger.kernel.org>, <oliver.sang@intel.com>
Subject: Re: [PATCH 4/5] refcount: Introduce refcount_long_t and APIs
Date: Mon, 6 May 2024 16:04:40 +0800	[thread overview]
Message-ID: <202405061514.23fedba1-oliver.sang@intel.com> (raw)
In-Reply-To: <20240502223341.1835070-4-keescook@chromium.org>


hi, Kees Cook,

we noticed a WARNING is our boot tests. 
as we understand, the WARNING is not introduced by this patch, instead, just
changing stats as below.
however, we failed to bisect
"dmesg.WARNING:at_lib/refcount.c:#refcount_warn_saturate"
which shows in parent commit to capture real commit which introduced the WARNING

just made this report FYI what we observed in our boot tests.


8090de6a0536f462 93b9cd30de232c9b4e27221dff6
---------------- ---------------------------
       fail:runs  %reproduction    fail:runs
           |             |             |
           :6          100%           6:6     dmesg.EIP:refcount_report_saturation
          6:6         -100%            :6     dmesg.EIP:refcount_warn_saturate
           :6          100%           6:6     dmesg.WARNING:at_lib/refcount.c:#refcount_report_saturation
          6:6         -100%            :6     dmesg.WARNING:at_lib/refcount.c:#refcount_warn_saturate


Hello,

kernel test robot noticed "WARNING:at_lib/refcount.c:#refcount_report_saturation" on:

commit: 93b9cd30de232c9b4e27221dff6d02ac557b86eb ("[PATCH 4/5] refcount: Introduce refcount_long_t and APIs")
url: https://github.com/intel-lab-lkp/linux/commits/Kees-Cook/fs-Do-not-allow-get_file-to-resurrect-0-f_count/20240503-063542
base: https://git.kernel.org/cgit/linux/kernel/git/vfs/vfs.git vfs.all
patch link: https://lore.kernel.org/all/20240502223341.1835070-4-keescook@chromium.org/
patch subject: [PATCH 4/5] refcount: Introduce refcount_long_t and APIs

in testcase: boot

compiler: gcc-13
test machine: qemu-system-x86_64 -enable-kvm -cpu SandyBridge -smp 2 -m 16G

(please refer to attached dmesg/kmsg for entire log/backtrace)



If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202405061514.23fedba1-oliver.sang@intel.com


[    2.683270][    T1] ------------[ cut here ]------------
[    2.684014][    T1] refcount_t: decrement hit 0; leaking memory.
[ 2.684829][ T1] WARNING: CPU: 0 PID: 1 at lib/refcount.c:29 refcount_report_saturation (lib/refcount.c:29 (discriminator 1)) 
[    2.686080][    T1] Modules linked in:
[    2.686633][    T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.9.0-rc3-00078-g93b9cd30de23 #1 ade0d32fff89aed56247bad9c6991c6e60a975d2
[    2.688188][    T1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
[ 2.689523][ T1] EIP: refcount_report_saturation (lib/refcount.c:29 (discriminator 1)) 
[ 2.690327][ T1] Code: c2 01 e8 92 8a b1 ff 0f 0b 58 c9 31 c0 31 d2 31 c9 c3 8d b4 26 00 00 00 00 68 ec bc f4 c1 c6 05 3e 42 4a c2 01 e8 6f 8a b1 ff <0f> 0b 5a c9 31 c0 31 d2 31 c9 c3 55 89 c1 89 d0 c7 01 00 00 00 c0
All code
========
   0:	c2 01 e8             	ret    $0xe801
   3:	92                   	xchg   %eax,%edx
   4:	8a b1 ff 0f 0b 58    	mov    0x580b0fff(%rcx),%dh
   a:	c9                   	leave
   b:	31 c0                	xor    %eax,%eax
   d:	31 d2                	xor    %edx,%edx
   f:	31 c9                	xor    %ecx,%ecx
  11:	c3                   	ret
  12:	8d b4 26 00 00 00 00 	lea    0x0(%rsi,%riz,1),%esi
  19:	68 ec bc f4 c1       	push   $0xffffffffc1f4bcec
  1e:	c6 05 3e 42 4a c2 01 	movb   $0x1,-0x3db5bdc2(%rip)        # 0xffffffffc24a4263
  25:	e8 6f 8a b1 ff       	call   0xffffffffffb18a99
  2a:*	0f 0b                	ud2		<-- trapping instruction
  2c:	5a                   	pop    %rdx
  2d:	c9                   	leave
  2e:	31 c0                	xor    %eax,%eax
  30:	31 d2                	xor    %edx,%edx
  32:	31 c9                	xor    %ecx,%ecx
  34:	c3                   	ret
  35:	55                   	push   %rbp
  36:	89 c1                	mov    %eax,%ecx
  38:	89 d0                	mov    %edx,%eax
  3a:	c7 01 00 00 00 c0    	movl   $0xc0000000,(%rcx)

Code starting with the faulting instruction
===========================================
   0:	0f 0b                	ud2
   2:	5a                   	pop    %rdx
   3:	c9                   	leave
   4:	31 c0                	xor    %eax,%eax
   6:	31 d2                	xor    %edx,%edx
   8:	31 c9                	xor    %ecx,%ecx
   a:	c3                   	ret
   b:	55                   	push   %rbp
   c:	89 c1                	mov    %eax,%ecx
   e:	89 d0                	mov    %edx,%eax
  10:	c7 01 00 00 00 c0    	movl   $0xc0000000,(%rcx)
[    2.692770][    T1] EAX: 00000000 EBX: e19ee0c4 ECX: 00000000 EDX: 00000000
[    2.693685][    T1] ESI: e19ee0c0 EDI: c37ad880 EBP: c3767dd0 ESP: c3767dcc
[    2.694597][    T1] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 EFLAGS: 00010246
[    2.695638][    T1] CR0: 80050033 CR2: ffcb2000 CR3: 02723000 CR4: 00040690
[    2.696557][    T1] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[    2.697464][    T1] DR6: fffe0ff0 DR7: 00000400
[    2.698106][    T1] Call Trace:
[ 2.698586][ T1] ? show_regs (arch/x86/kernel/dumpstack.c:479) 
[ 2.699197][ T1] ? refcount_report_saturation (lib/refcount.c:29 (discriminator 1)) 
[ 2.699975][ T1] ? __warn (kernel/panic.c:694) 
[ 2.700547][ T1] ? refcount_report_saturation (lib/refcount.c:29 (discriminator 1)) 
[ 2.701322][ T1] ? report_bug (lib/bug.c:201 lib/bug.c:219) 
[ 2.701960][ T1] ? exc_overflow (arch/x86/kernel/traps.c:252) 
[ 2.702584][ T1] ? handle_bug (arch/x86/kernel/traps.c:218) 
[ 2.703208][ T1] ? exc_invalid_op (arch/x86/kernel/traps.c:260 (discriminator 1)) 
[ 2.703850][ T1] ? handle_exception (arch/x86/entry/entry_32.S:1047) 
[ 2.704538][ T1] ? devkmsg_open (kernel/printk/printk.c:596 kernel/printk/printk.c:615 kernel/printk/printk.c:919) 
[ 2.705173][ T1] ? exc_overflow (arch/x86/kernel/traps.c:252) 
[ 2.705798][ T1] ? refcount_report_saturation (lib/refcount.c:29 (discriminator 1)) 
[ 2.706578][ T1] ? exc_overflow (arch/x86/kernel/traps.c:252) 
[ 2.707215][ T1] ? refcount_report_saturation (lib/refcount.c:29 (discriminator 1)) 
[ 2.707994][ T1] refcount_warn_saturate (lib/refcount.c:40) 
[ 2.708693][ T1] __reset_page_owner (include/linux/refcount-impl.h:318 include/linux/refcount-impl.h:333 mm/page_owner.c:228 mm/page_owner.c:266) 
[ 2.709377][ T1] __free_pages_ok (include/linux/mmzone.h:1100 mm/page_alloc.c:1144 mm/page_alloc.c:1270) 
[ 2.710036][ T1] make_alloc_exact (mm/page_alloc.c:4828 (discriminator 1)) 
[ 2.710687][ T1] alloc_pages_exact (mm/page_alloc.c:4859) 
[ 2.711357][ T1] alloc_large_system_hash (mm/mm_init.c:2531) 
[ 2.712095][ T1] inet_hashinfo2_init (net/ipv4/inet_hashtables.c:1193 (discriminator 1)) 
[ 2.712770][ T1] tcp_init (net/ipv4/tcp.c:4714) 
[ 2.713348][ T1] inet_init (net/ipv4/af_inet.c:2032) 
[ 2.713949][ T1] ? ipv4_offload_init (net/ipv4/af_inet.c:1942) 
[ 2.714640][ T1] do_one_initcall (init/main.c:1238) 
[ 2.715294][ T1] ? rdinit_setup (init/main.c:1286) 
[ 2.715927][ T1] do_initcalls (init/main.c:1299 (discriminator 1) init/main.c:1316 (discriminator 1)) 
[ 2.716542][ T1] ? rest_init (init/main.c:1429) 
[ 2.717157][ T1] kernel_init_freeable (init/main.c:1550) 
[ 2.717852][ T1] kernel_init (init/main.c:1439) 
[ 2.718455][ T1] ret_from_fork (arch/x86/kernel/process.c:153) 
[ 2.719085][ T1] ? rest_init (init/main.c:1429) 
[ 2.719700][ T1] ret_from_fork_asm (arch/x86/entry/entry_32.S:737) 
[ 2.720348][ T1] entry_INT80_32 (arch/x86/entry/entry_32.S:944) 
[    2.720999][    T1] irq event stamp: 263893
[ 2.721599][ T1] hardirqs last enabled at (263903): console_unlock (arch/x86/include/asm/irqflags.h:26 arch/x86/include/asm/irqflags.h:67 arch/x86/include/asm/irqflags.h:127 kernel/printk/printk.c:341 kernel/printk/printk.c:2731 kernel/printk/printk.c:3050) 
[ 2.722782][ T1] hardirqs last disabled at (263912): console_unlock (kernel/printk/printk.c:339 (discriminator 3) kernel/printk/printk.c:2731 (discriminator 3) kernel/printk/printk.c:3050 (discriminator 3)) 
[ 2.723947][ T1] softirqs last enabled at (263164): release_sock (net/core/sock.c:3560) 
[ 2.725080][ T1] softirqs last disabled at (263162): release_sock (net/core/sock.c:3549) 
[    2.726210][    T1] ---[ end trace 0000000000000000 ]---



The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20240506/202405061514.23fedba1-oliver.sang@intel.com



-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


  reply	other threads:[~2024-05-06  8:05 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-02 22:33 [PATCH 0/5] fs: Do not allow get_file() to resurrect 0 f_count Kees Cook
2024-05-02 22:33 ` [PATCH 1/5] " Kees Cook
2024-05-02 22:53   ` Jann Horn
2024-05-02 23:03     ` Kees Cook
2024-05-03  9:02       ` Christian Brauner
2024-05-02 22:33 ` [PATCH 2/5] drm/vmwgfx: Do not directly manipulate file->f_count Kees Cook
2024-05-02 22:33 ` [PATCH 3/5] drm/i915: " Kees Cook
2024-05-02 22:33 ` [PATCH 4/5] refcount: Introduce refcount_long_t and APIs Kees Cook
2024-05-06  8:04   ` kernel test robot [this message]
2024-05-02 22:33 ` [PATCH 5/5] fs: Convert struct file::f_count to refcount_long_t Kees Cook
2024-05-02 22:42   ` Al Viro
2024-05-02 22:52     ` Kees Cook
2024-05-02 23:12       ` Al Viro
2024-05-02 23:21         ` Kees Cook
2024-05-02 23:41           ` Al Viro
2024-05-03  0:10             ` Kees Cook
2024-05-03  0:14               ` Al Viro
2024-05-03  0:41                 ` Kees Cook
2024-05-03  9:37                   ` Christian Brauner
2024-05-03 10:36                     ` Peter Zijlstra
2024-05-03 11:35                       ` Christian Brauner

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=202405061514.23fedba1-oliver.sang@intel.com \
    --to=oliver.sang@intel.com \
    --cc=airlied@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi.shyti@linux.intel.com \
    --cc=bcm-kernel-feedback-list@broadcom.com \
    --cc=boqun.feng@gmail.com \
    --cc=brauner@kernel.org \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jack@suse.cz \
    --cc=jani.nikula@linux.intel.com \
    --cc=jonathan.cavitt@intel.com \
    --cc=joonas.lahtinen@linux.intel.com \
    --cc=keescook@chromium.org \
    --cc=kent.overstreet@linux.dev \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-hardening@vger.kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=lucas.demarchi@intel.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mark.rutland@arm.com \
    --cc=masahiroy@kernel.org \
    --cc=matthew.auld@intel.com \
    --cc=matthew.s.atwood@intel.com \
    --cc=mripard@kernel.org \
    --cc=nathan@kernel.org \
    --cc=nicolas@fjasle.eu \
    --cc=nirmoy.das@intel.com \
    --cc=oe-lkp@lists.linux.dev \
    --cc=peterz@infradead.org \
    --cc=rodrigo.vivi@intel.com \
    --cc=tursulin@ursulin.net \
    --cc=tzimmermann@suse.de \
    --cc=viro@zeniv.linux.org.uk \
    --cc=will@kernel.org \
    --cc=zack.rusin@broadcom.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 read-only IMAP folder(s) and NNTP newsgroup(s).