On (20/12/04 17:10), Petr Mladek wrote:
> 
> One reason is the use of per-cpu variables. Alternative solution would
> be to store printk_context into task_struct.

We can keep per-CPU, disable preemption and have counters for
every context (task, soft/hard irq, NMI). Shouldn't be a problem

        vprintk_emit()
        {
                preempt_disable()
                vprintk_store()
                preempt_enable()

                preempt_disable()
                console_unlock()
                preempt_enable()
        }

vprintk_store() is a small fraction of console_unlock() time wise.

        -ss

Reply via email to