Re: [PATCH] bpf: defer printk() inside __bpf_prog_run()

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

 



On Wed, Jun 26, 2024 at 4:09 PM Tetsuo Handa
<penguin-kernel@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On 2024/06/27 7:33, Steven Rostedt wrote:
> > So you are saying that because a BPF hook can attach to a tracepoint
> > that is called with rq locks held, it should always disable preemption
> > and call printk_deferred_enter(), because it *might* hit an error path
> > that will call printk?? In other words, how the BPF hook is used
> > determines if the rq lock is held or not when it is called.
>
> Yes.
>
> >
> > I can use that same argument for should_fail_ex(). Because how it is
> > used determines if the rq lock is held or not when it is called. And it
> > is the function that actually calls printk().
>
> Strictly speaking, KASAN/KMSAN/KCSAN etc. *might* call printk() at any location.
> In that aspect, just wrapping individual function that explicitly calls printk()
> might not be sufficient. We will need to widen section for deferring printk(),
> but we don't want to needlessly call migrate_disable()/preempt_disable()/
> printk_deferred_enter() due to performance reason. We need to find a balanced
> location for calling migrate_disable()/preempt_disable()/printk_deferred_enter().
> I consider __bpf_prog_run() as a balanced location.

Tetsuo,
your repeated invalid arguments are not making this thread productive.
Told you already that the same can happen without bpf in the picture.

> >
> > Sorry, but it makes no sense to put the burden of the
> > printk_deferred_enter() on the BPF hook logic. It should sit solely
> > with the code that actually calls printk().
>
> How do you respond to Petr Mladek's comment
>
>   Yeah, converting printk() into printk_deferred() or using
>   printk_deferred_enter() around particular code paths is a whac-a-mole
>   game.

Exactly. wrapping bpf with printk_deferred_enter() is such a whac-a-mole.
It doesn't fix an issue.





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux