Messages in this thread | | | Date | Wed, 29 Jul 2020 11:03:55 +0900 | From | Sergey Senozhatsky <> | Subject | Re: [PATCH 2/4] printk: store instead of processing cont parts |
| |
On (20/07/21 17:03), John Ogness wrote: > On 2020-07-21, Sergey Senozhatsky <sergey.senozhatsky@gmail.com> wrote: > >> That said, we have traditionally used not just "current process", but > >> also "last irq-level" as the context information, so I do think it > >> would be good to continue to do that. > > > > OK, so basically, extending printk_caller_id() so that for IRQ/NMI > > we will have more info than just "0x80000000 + raw_smp_processor_id()". > > If bit31 is set, the upper 8 bits could specify what the lower 24 bits > represent. That would give some freedom for the future. > > For example: > > 0x80 = cpu id (generic context) > 0x81 = interrupt number > 0x82 = cpu id (nmi context)
Looks good to me. I'd probably add in_softirq state. So the contexts are: in_task, in_softirq, in_irq, in_nmi
For the purpose of future extensions, I would probably consider u64 for callerid. So that we can store more "state bits" in the future, like disabled/enabled preemption; disabled/enabled local irqs; etc.
-ss
| |