Patch "debugobjects: Annotate racy debug variables" has been added to the 6.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    debugobjects: Annotate racy debug variables

to the 6.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     debugobjects-annotate-racy-debug-variables.patch
and it can be found in the queue-6.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 2914c33c3aba36a09f17f7d6d1b0305db31c2e7f
Author: Breno Leitao <leitao@xxxxxxxxxx>
Date:   Tue Jun 11 02:18:12 2024 -0700

    debugobjects: Annotate racy debug variables
    
    [ Upstream commit 5b5baba6222255d29626f63c41f101379ec5400b ]
    
    KCSAN has identified a potential data race in debugobjects, where the
    global variable debug_objects_maxchain is accessed for both reading and
    writing simultaneously in separate and parallel data paths. This results in
    the following splat printed by KCSAN:
    
      BUG: KCSAN: data-race in debug_check_no_obj_freed / debug_object_activate
    
      write to 0xffffffff847ccfc8 of 4 bytes by task 734 on cpu 41:
      debug_object_activate (lib/debugobjects.c:199 lib/debugobjects.c:564 lib/debugobjects.c:710)
      call_rcu (kernel/rcu/rcu.h:227 kernel/rcu/tree.c:2719 kernel/rcu/tree.c:2838)
      security_inode_free (security/security.c:1626)
      __destroy_inode (./include/linux/fsnotify.h:222 fs/inode.c:287)
      ...
      read to 0xffffffff847ccfc8 of 4 bytes by task 384 on cpu 31:
      debug_check_no_obj_freed (lib/debugobjects.c:1000 lib/debugobjects.c:1019)
      kfree (mm/slub.c:2081 mm/slub.c:4280 mm/slub.c:4390)
      percpu_ref_exit (lib/percpu-refcount.c:147)
      css_free_rwork_fn (kernel/cgroup/cgroup.c:5357)
      ...
      value changed: 0x00000070 -> 0x00000071
    
    The data race is actually harmless as this is just used for debugfs
    statistics, as all other debug variables.
    
    Annotate all debug variables as racy explicitly, since these variables
    are known to be racy and harmless.
    
    Signed-off-by: Breno Leitao <leitao@xxxxxxxxxx>
    Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20240611091813.1189860-1-leitao@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index fb12a9bacd2fa..7cea91e193a8f 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -78,16 +78,17 @@ static bool			obj_freeing;
 /* The number of objs on the global free list */
 static int			obj_nr_tofree;
 
-static int			debug_objects_maxchain __read_mostly;
-static int __maybe_unused	debug_objects_maxchecked __read_mostly;
-static int			debug_objects_fixups __read_mostly;
-static int			debug_objects_warnings __read_mostly;
-static int			debug_objects_enabled __read_mostly
-				= CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT;
-static int			debug_objects_pool_size __read_mostly
-				= ODEBUG_POOL_SIZE;
-static int			debug_objects_pool_min_level __read_mostly
-				= ODEBUG_POOL_MIN_LEVEL;
+static int __data_racy			debug_objects_maxchain __read_mostly;
+static int __data_racy __maybe_unused	debug_objects_maxchecked __read_mostly;
+static int __data_racy			debug_objects_fixups __read_mostly;
+static int __data_racy			debug_objects_warnings __read_mostly;
+static int __data_racy			debug_objects_enabled __read_mostly
+					= CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT;
+static int __data_racy			debug_objects_pool_size __read_mostly
+					= ODEBUG_POOL_SIZE;
+static int __data_racy			debug_objects_pool_min_level __read_mostly
+					= ODEBUG_POOL_MIN_LEVEL;
+
 static const struct debug_obj_descr *descr_test  __read_mostly;
 static struct kmem_cache	*obj_cache __ro_after_init;
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux