LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Qian Cai <cai@lca.pw>
To: "Paul E. McKenney" <paulmck@kernel.org>
Cc: Marco Elver <elver@google.com>,
	Alexander Potapenko <glider@google.com>,
	Andrey Konovalov <andreyknvl@google.com>,
	Dmitriy Vyukov <dvyukov@google.com>,
	kasan-dev <kasan-dev@googlegroups.com>,
	LKML <linux-kernel@vger.kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>, Will Deacon <will@kernel.org>
Subject: Re: [PATCH -rcu] kcsan: Make KCSAN compatible with lockdep
Date: Wed, 15 Jan 2020 22:39:53 -0500	[thread overview]
Message-ID: <B2717BA1-B964-4B0A-BE4F-5B244087B9E5@lca.pw> (raw)
In-Reply-To: <20200115163754.GA2935@paulmck-ThinkPad-P72>



> On Jan 15, 2020, at 11:37 AM, Paul E. McKenney <paulmck@kernel.org> wrote:
> 
> On Wed, Jan 15, 2020 at 05:26:55PM +0100, Marco Elver wrote:
>> On Tue, 14 Jan 2020 at 18:24, Alexander Potapenko <glider@google.com> wrote:
>>> 
>>>> --- a/kernel/kcsan/core.c
>>>> +++ b/kernel/kcsan/core.c
>>>> @@ -337,7 +337,7 @@ kcsan_setup_watchpoint(const volatile void *ptr, size_t size, int type)
>>>>         *      detection point of view) to simply disable preemptions to ensure
>>>>         *      as many tasks as possible run on other CPUs.
>>>>         */
>>>> -       local_irq_save(irq_flags);
>>>> +       raw_local_irq_save(irq_flags);
>>> 
>>> Please reflect the need to use raw_local_irq_save() in the comment.
>>> 
>>>> 
>>>>        watchpoint = insert_watchpoint((unsigned long)ptr, size, is_write);
>>>>        if (watchpoint == NULL) {
>>>> @@ -429,7 +429,7 @@ kcsan_setup_watchpoint(const volatile void *ptr, size_t size, int type)
>>>> 
>>>>        kcsan_counter_dec(KCSAN_COUNTER_USED_WATCHPOINTS);
>>>> out_unlock:
>>>> -       local_irq_restore(irq_flags);
>>>> +       raw_local_irq_restore(irq_flags);
>>> 
>>> Ditto
>> 
>> Done. v2: http://lkml.kernel.org/r/20200115162512.70807-1-elver@google.com
> 
> Alexander and Qian, could you please let me know if this fixes things
> up for you?

The lockdep warning is gone, so feel free to add,

Tested-by: Qian Cai <cai@lca.pw>

for that patch, but the system is still unable to boot due to spam of
warnings due to incompatible with debug_pagealloc, debugobjects, so
the warning rate limit does not help.

[   28.992752][  T394] Reported by Kernel Concurrency Sanitizer on: 
[   28.992752][  T394] CPU: 0 PID: 394 Comm: pgdatinit0 Not tainted 5.5.0-rc6-next-20200115+ #3 
[   28.992752][  T394] Hardware name: HP ProLiant XL230a Gen9/ProLiant XL230a Gen9, BIOS U13 01/22/2018 
[   28.992752][  T394] =============================================================== 
[   28.992752][  T394] ================================================================== 
[   28.992752][  T394] BUG: KCSAN: data-race in __change_page_attr / __change_page_attr 
[   28.992752][  T394]  
[   28.992752][  T394] read to 0xffffffffa01a6de0 of 8 bytes by task 395 on cpu 16: 
[   28.992752][  T394]  __change_page_attr+0xe81/0x1620 
[   28.992752][  T394]  __change_page_attr_set_clr+0xde/0x4c0 
[   28.992752][  T394]  __set_pages_np+0xcc/0x100 
[   28.992752][  T394]  __kernel_map_pages+0xd6/0xdb 
[   28.992752][  T394]  __free_pages_ok+0x1a8/0x730 
[   28.992752][  T394]  __free_pages+0x51/0x90 
[   28.992752][  T394]  __free_pages_core+0x1c7/0x2c0 
[   28.992752][  T394]  deferred_free_range+0x59/0x8f 
[   28.992752][  T394]  deferred_init_max21d 
[   28.992752][  T394]  deferred_init_memmap+0x14a/0x1c1 
[   28.992752][  T394]  kthread+0x1e0/0x200 
[   28.992752][  T394]  ret_from_fork+0x3a/0x50 
[   28.992752][  T394]  
[   28.992752][  T394] write to 0xffffffffa01a6de0 of 8 bytes by task 394 on cpu 0: 
[   28.992752][  T394]  __change_page_attr+0xe9c/0x1620 
[   28.992752][  T394]  __change_page_attr_set_clr+0xde/0x4c0 
[   28.992752][  T394]  __set_pages_np+0xcc/0x100 
[   28.992752][  T394]  __kernel_map_pages+0xd6/0xdb 
[   28.992752][  T394]  __free_pages_ok+0x1a8/0x730 
[   28.992752][  T394]  __free_pages+0x51/0x90 
[   28.992752][  T394]  __free_pages_core+0x1c7/0x2c0 
[   28.992752][  T394]  deferred_free_range+0x59/0x8f 
[   28.992752][  T394]  deferred_init_maxorder+0x1d6/0x21d 
[   28.992752][  T394]  deferred_init_memmap+0x14a/0x1c1 
[   28.992752][  T394]  kthread+0x1e0/0x200 
[   28.992752][  T394]  ret_from_fork+0x3a/0x50 


[   93.233621][  T349] Reported by Kernel Concurrency Sanitizer on: 
[   93.261902][  T349] CPU: 19 PID: 349 Comm: kworker/19:1 Not tainted 5.5.0-rc6-next-20200115+ #3 
[   93.302634][  T349] Hardware name: HP ProLiant XL230a Gen9/ProLiant XL230a Gen9, BIOS U13 01/22/2018 
[   93.345413][  T349] Workqueue: memcg_kmem_cache memcg_kmem_cache_create_func 
[   93.378715][  T349] ================================================================== 
[   93.416183][  T616] ================================================================== 
[   93.453415][  T616] BUG: KCSAN: data-race in __debug_object_init / fill_pool 
[   93.486775][  T616]  
[   93.497644][  T616] read to 0xffffffff9ff33b78 of 4 bytes by task 617 on cpu 12: 
[   93.534139][  T616]  fill_pool+0x38/0x700 
[   93.554913][  T616]  __debug_object_init+0x3f/0x900 
[   93.579459][  T616]  debug_object_init+0x39/0x50 
[   93.601952][  T616]  __init_work+0x3e/0x50 
[   93.620611][  T616]  memcg_kmem_get_cache+0x3c8/0x480 
[   93.643619][  T616]  slab_pre_alloc_hook+0x5d/0xa0 
[   93.665134][  T616]  __kmalloc_node+0x60/0x300 
[   93.685094][  T616]  kvmalloc_node+0x83/0xa0 
[   93.704235][  T616]  seq_read+0x57c/0x7a0 
[   93.722460][  T616]  proc_reg_read+0x11a/0x160 
[   93.743570][  T616]  __vfs_read+0x59/0xa0 
[   93.761660][  T616]  vfs_read+0xcf/0x1c0 
[   93.779269][  T616]  ksys_read+0x9d/0x130 
[   93.797267][  T616]  __x64_sys_read+0x4c/0x60 
[   93.817205][  T616]  do_syscall_64+0x91/0xb47 
[   93.837590][  T616]  entry_SYSCALL_64_after_hwframe+0x49/0xbe 
[   93.864425][  T616]  
[   93.874830][  T616] write to 0xffffffff9ff33b78 of 4 bytes by task 616 on cpu 61: 
[   93.908534][  T616]  __debug_object_init+0x6e5/0x900 
[   93.931018][  T616]  debug_object_activate+0x1fc/0x350 
[   93.954131][  T616]  call_rcu+0x4c/0x4e0 
[   93.971959][  T616]  put_object+0x6a/0x90 
[   93.989955][  T616]  __delete_object+0xb9/0xf0 
[   94.009996][  T616]  delete_object_full+0x2d/0x40 
[   94.031812][  T616]  kmemleak_free+0x5f/0x90 
[   94.054671][  T616]  slab_free_freelist_hook+0x124/0x1c0 
[   94.082027][  T616]  kmem_cache_free+0x10c/0x3a0 
[   94.103806][  T616]  vm_area_free+0x31/0x40 
[   94.124587][  T616]  remove_vma+0xb0/0xc0 
[   94.143484][  T616]  exit_mmap+0x14c/0x220 
[   94.163826][  T616]  mmput+0x10e/0x270 
[   94.181736][  T616]  flush_old_exec+0x572/0xfe0 
[   94.202760][  T616]  load_elf_binary+0x467/0x2180 
[   94.224819][  T616]  search_binary_handler+0xd8/0x2b0 
[   94.248735][  T616]  __do_execve_file+0xb61/0x1080 
[   94.270943][  T616]  __x64_sys_execve+0x5f/0x70 
[   94.292254][  T616]  do_syscall_64+0x91/0xb47 
[   94.312712][  T616]  entry_SYSCALL_64_after_hwframe+0x49/0xbe 

[  103.455945][   C22] Reported by Kernel Concurrency Sanitizer on: 
[  103.483032][   C22] CPU: 22 PID: 0 Comm: swapper/22 Not tainted 5.5.0-rc6-next-20200115+ #3 
[  103.520563][   C22] Hardware name: HP ProLiant XL230a Gen9/ProLiant XL230a Gen9, BIOS U13 01/22/2018 
[  103.561771][   C22] ================================================================== 
[  103.598005][   C41] ================================================================== 
[  103.633820][   C41] BUG: KCSAN: data-race in intel_pstate_update_util / intel_pstate_update_util 
[  103.673408][   C41]  
[  103.683214][   C41] read to 0xffffffffa9098a58 of 2 bytes by interrupt on cpu 2: 
[  103.716645][   C41]  intel_pstate_update_util+0x580/0xb40 
[  103.740609][   C41]  cpufreq_update_util+0xb0/0x160 
[  103.762611][   C41]  update_blocked_averages+0x585/0x630 
[  103.786435][   C41]  run_rebalance_domains+0xd5/0x240 
[  103.812821][   C41]  __do_softirq+0xd9/0x57c 
[  103.834438][   C41]  irq_exit+0xa2/0xc0 
[  103.851773][   C41]  smp_apic_timer_interrupt+0x190/0x480 
[  103.876005][   C41]  apic_timer_interrupt+0xf/0x20 
[  103.897495][   C41]  cpuidle_enter_state+0x18a/0x9b0 
[  103.919324][   C41]  cpuidle_enter+0x69/0xc0 
[  103.938405][   C41]  call_cpuidle+0x23/0x40 
[  103.957152][   C41]  do_idle+0x248/0x280 
[  103.974728][   C41]  cpu_startup_entry+0x1d/0x1f 
[  103.995059][   C41]  start_secondary+0x1ad/0x230 
[  104.015920][   C41]  secondary_startup_64+0xb6/0xc0 
[  104.037376][   C41]  
[  104.047144][   C41] write to 0xffffffffa9098a59 of 1 bytes by interrupt on cpu 41: 
[  104.081113][   C41]  intel_pstate_update_util+0x4cf/0xb40 
[  104.105862][   C41]  cpufreq_update_util+0xb0/0x160 
[  104.127759][   C41]  update_load_avg+0x70e/0x800 
[  104.148400][   C41]  task_tick_fair+0x5c/0x680 
[  104.168325][   C41]  scheduler_tick+0xab/0x120 
[  104.188881][   C41]  update_process_times+0x44/0x60 
[  104.210811][   C41]  tick_sched_handle+0x4f/0xb0 
[  104.231137][   C41]  tick_sched_timer+0x45/0xc0 
[  104.251431][   C41]  __hrtimer_run_queues+0x243/0x800 
[  104.274362][   C41]  hrtimer_interrupt+0x1d4/0x3e0 
[  104.295860][   C41]  smp_apic_timer_interrupt+0x11d/0x480 
[  104.325136][   C41]  apic_timer_interrupt+0xf/0x20 
[  104.347864][   C41]  __kcsan_check_access+0x1a/0x120 
[  104.370100][   C41]  __read_once_size+0x1f/0xe0 
[  104.390064][   C41]  smp_call_function_many+0x4b0/0x5d0 
[  104.413591][   C41]  on_each_cpu+0x46/0x90 
[  104.431954][   C41]  flush_tlb_kernel_range+0x97/0xc0 
[  104.454702][   C41]  free_unmap_vmap_area+0xaa/0xe0 
[  104.476699][   C41]  remove_vm_area+0xf4/0x100 
[  104.496763][   C41]  __vunmap+0x10a/0x460 
[  104.514807][   C41]  __vfree+0x33/0x90 
[  104.531597][   C41]  vfree+0x47/0x80 
[  104.547600][   C41]  n_tty_close+0x56/0x80 
[  104.565988][   C41]  tty_ldisc_close+0x76/0xa0 
[  104.585912][   C41]  tty_ldisc_kill+0x51/0xa0 
[  104.605864][   C41]  tty_ldisc_release+0xf4/0x1a0 
[  104.627098][   C41]  tty_release_struct+0x23/0x60 
[  104.648268][   C41]  tty_release+0x673/0x9c0 
[  104.667517][   C41]  __fput+0x187/0x410 
[  104.684357][   C41]  ____fput+0x1e/0x30 
[  104.701542][   C41]  task_work_run+0xed/0x140 
[  104.721358][   C41]  do_syscall_64+0x803/0xb47 
[  104.740872][   C41]  entry_SYSCALL_64_after_hwframe+0x49/0xbe

[  136.745789][   C34] Reported by Kernel Concurrency Sanitizer on: 
[  136.774278][   C34] CPU: 34 PID: 0 Comm: swapper/34 Not tainted 5.5.0-rc6-next-20200115+ #3 
[  136.814948][   C34] Hardware name: HP ProLiant XL230a Gen9/ProLiant XL230a Gen9, BIOS U13 01/22/2018 
[  136.861974][   C34] ================================================================== 
[  136.911354][    T1] ================================================================== 
[  136.948491][    T1] BUG: KCSAN: data-race in __debug_object_init / fill_pool 
[  136.981645][    T1]  
[  136.992045][    T1] read to 0xffffffff9ff33b78 of 4 bytes by task 762 on cpu 25: 
[  137.026513][    T1]  fill_pool+0x38/0x700 
[  137.045575][    T1]  __debug_object_init+0x3f/0x900 
[  137.068826][    T1]  debug_object_activate+0x1fc/0x350 
[  137.093102][    T1]  call_rcu+0x4c/0x4e0 
[  137.111520][    T1]  __fput+0x23a/0x410 
[  137.129618][    T1]  ____fput+0x1e/0x30 
[  137.147627][    T1]  task_work_run+0xed/0x140 
[  137.168322][    T1]  do_syscall_64+0x803/0xb47 
[  137.188572][    T1]  entry_SYSCALL_64_after_hwframe+0x49/0xbe 
[  137.215309][    T1]  
[  137.225579][    T1] write to 0xffffffff9ff33b78 of 4 bytes by task 1 on cpu 7: 
[  137.259867][    T1]  __debug_object_init+0x6e5/0x900 
[  137.283065][    T1]  debug_object_activate+0x1fc/0x350 
[  137.306988][    T1]  call_rcu+0x4c/0x4e0 
[  137.326804][    T1]  dentry_free+0x70/0xe0 
[  137.347208][    T1]  __dentry_kill+0x1db/0x300 
[  137.369468][    T1]  shrink_dentry_list+0x153/0x2e0 
[  137.393437][    T1]  shrink_dcache_parent+0x1ee/0x320 
[  137.417174][    T1]  d_invalidate+0x80/0x130 
[  137.437280][    T1]  proc_flush_task+0x14c/0x2b0 
[  137.459263][    T1]  release_task.part.21+0x156/0xb50 
[  137.483580][    T1]  wait_consider_task+0x17a8/0x1960 
[  137.507550][    T1]  do_wait+0x25b/0x560 
[  137.526175][    T1]  kernel_waitid+0x194/0x270 
[  137.547105][    T1]  __do_sys_waitid+0x18e/0x1e0 
[  137.568951][    T1]  __x64_sys_waitid+0x70/0x90 
[  137.590291][    T1]  do_syscall_64+0x91/0xb47 
[  137.610681][    T1]  entry_SYSCALL_64_after_hwframe+0x49/0xbe 


  reply	other threads:[~2020-01-16  3:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-14 12:49 Marco Elver
2020-01-14 17:24 ` Alexander Potapenko
2020-01-15 16:26   ` Marco Elver
2020-01-15 16:37     ` Paul E. McKenney
2020-01-16  3:39       ` Qian Cai [this message]
2020-01-16  4:37         ` Qian Cai
2020-01-16 17:40           ` Paul E. McKenney
2020-01-16 17:50             ` Qian Cai
2020-01-16 17:55               ` Qian Cai
2020-01-16 18:57         ` Marco Elver
2020-01-17 16:40           ` Paul E. McKenney
2020-01-17 16:59             ` Qian Cai
2020-01-17 22:51               ` Marco Elver
2020-01-17 22:54             ` Marco Elver
2020-01-17 23:23               ` Paul E. McKenney

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=B2717BA1-B964-4B0A-BE4F-5B244087B9E5@lca.pw \
    --to=cai@lca.pw \
    --cc=andreyknvl@google.com \
    --cc=dvyukov@google.com \
    --cc=elver@google.com \
    --cc=glider@google.com \
    --cc=kasan-dev@googlegroups.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paulmck@kernel.org \
    --cc=peterz@infradead.org \
    --cc=will@kernel.org \
    --subject='Re: [PATCH -rcu] kcsan: Make KCSAN compatible with lockdep' \
    /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

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).