All of lore.kernel.org
 help / color / mirror / Atom feed
* [BUG] fs/f2fs: a possible sleep-in-atomic bug in f2fs_trace_pid
@ 2017-12-12  0:59 Jia-Ju Bai
  2017-12-12  2:00   ` Chao Yu
  0 siblings, 1 reply; 3+ messages in thread
From: Jia-Ju Bai @ 2017-12-12  0:59 UTC (permalink / raw)
  To: jaegeuk, yuchao0; +Cc: linux-f2fs-devel, Linux Kernel Mailing List

According to fs/f2fs/trace.c, the kernel module may sleep under a spinlock.
The function call path is:
f2fs_trace_pid (acquire the spinlock)
   f2fs_radix_tree_insert
     cond_resched --> may sleep

I do not find a good way to fix it, so I only report.
This possible bug is found by my static analysis tool (DSAC) and my code 
review.


Thanks,
Jia-Ju Bai

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [BUG] fs/f2fs: a possible sleep-in-atomic bug in f2fs_trace_pid
  2017-12-12  0:59 [BUG] fs/f2fs: a possible sleep-in-atomic bug in f2fs_trace_pid Jia-Ju Bai
@ 2017-12-12  2:00   ` Chao Yu
  0 siblings, 0 replies; 3+ messages in thread
From: Chao Yu @ 2017-12-12  2:00 UTC (permalink / raw)
  To: Jia-Ju Bai, jaegeuk; +Cc: linux-f2fs-devel, Linux Kernel Mailing List

Hi Jia-Ju,

Thanks for your report. :)

On 2017/12/12 8:59, Jia-Ju Bai wrote:
> According to fs/f2fs/trace.c, the kernel module may sleep under a spinlock.
> The function call path is:
> f2fs_trace_pid (acquire the spinlock)
>    f2fs_radix_tree_insert
>      cond_resched --> may sleep
> 
> I do not find a good way to fix it, so I only report.
> This possible bug is found by my static analysis tool (DSAC) and my code 
> review.
That's a known issue, and there are other problems in IO trace related codes,
so I want to refactor the code directly, you could check the code in below link:

https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git/commit/?h=f2fs-dev&id=d895154be1733e2bd29c9e64b57e4e201f0e8a0c

But the patch still needs debugging so far. Since the IO trace feature is off
by default, I expect the impaction is limited, so I pend the debug job on this
patch.

Anyway, I think this issue you reported should be fixed first, let me make the
fixing part independent from original patch for fixing.

Thanks,

> 
> 
> Thanks,
> Jia-Ju Bai
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [BUG] fs/f2fs: a possible sleep-in-atomic bug in f2fs_trace_pid
@ 2017-12-12  2:00   ` Chao Yu
  0 siblings, 0 replies; 3+ messages in thread
From: Chao Yu @ 2017-12-12  2:00 UTC (permalink / raw)
  To: Jia-Ju Bai, jaegeuk; +Cc: linux-f2fs-devel, Linux Kernel Mailing List

Hi Jia-Ju,

Thanks for your report. :)

On 2017/12/12 8:59, Jia-Ju Bai wrote:
> According to fs/f2fs/trace.c, the kernel module may sleep under a spinlock.
> The function call path is:
> f2fs_trace_pid (acquire the spinlock)
>    f2fs_radix_tree_insert
>      cond_resched --> may sleep
> 
> I do not find a good way to fix it, so I only report.
> This possible bug is found by my static analysis tool (DSAC) and my code 
> review.
That's a known issue, and there are other problems in IO trace related codes,
so I want to refactor the code directly, you could check the code in below link:

https://git.kernel.org/pub/scm/linux/kernel/git/chao/linux.git/commit/?h=f2fs-dev&id=d895154be1733e2bd29c9e64b57e4e201f0e8a0c

But the patch still needs debugging so far. Since the IO trace feature is off
by default, I expect the impaction is limited, so I pend the debug job on this
patch.

Anyway, I think this issue you reported should be fixed first, let me make the
fixing part independent from original patch for fixing.

Thanks,

> 
> 
> Thanks,
> Jia-Ju Bai
> 
> 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-12-12  2:01 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-12  0:59 [BUG] fs/f2fs: a possible sleep-in-atomic bug in f2fs_trace_pid Jia-Ju Bai
2017-12-12  2:00 ` Chao Yu
2017-12-12  2:00   ` Chao Yu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.