* Frederic Weisbecker <fweisbec@xxxxxxxxx> wrote: > > @@ -43,11 +44,19 @@ static int full_paths; > > static unsigned long page_size; > > static unsigned long mmap_window = 32; > > > > +struct ip_chain_event { > > + __u16 nr; > > Is it needed to have the nr encoded in the ip_chain? We can > already find it by doing kernel + user. That's a good observation. Since we havent exposed the call-chain bits in upstream version of the tools, we could still improve on this a little bit. I think the best would be context separators which occupy a special address in some quiet corner of the 64-bit address space. That way we'd have streams of u64 entries: ip-1 ip-2 CONTEXT_IRQ ip-3 ip-4 CONTEXT_SYSCALL ip-5 ip-6 The following contexts IDs would be useful: CONTEXT_NMI CONTEXT_HARDIRQ CONTEXT_SOFTIRQ CONTEXT_KERNEL CONTEXT_USER CONTEXT_GUEST_NMI CONTEXT_GUEST_HARDIRQ CONTEXT_GUEST_SOFTIRQ CONTEXT_GUEST_KERNEL CONTEXT_GUEST_USER The context IDs would occupy some rare and unlikely-to-be-allocated-soon corner of the address space - say startig at 0x8765432112345000. (and real RIPs would be filtered and nudged just outside that space of a handful IDs.) The advantage would be that this is infinitely flexible and extensible - any level of nesting can be expressed without having separate fields for nr_hv_guest_irq, etc. It's also pretty fast to parse. Hm? Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html