On Tue 2014-06-24 17:32:15, Konstantin Khlebnikov wrote: > > Instead of per-cpu buffers printk might use part of existing ring > buffer -- initiator cpu allocates space for > target cpu and flushes it into common stream after it finish printing. > Probably this kind of transactional model might be used on single cpu > for multi-line KERN_CONT.
I wanted to think more about this. The evident advantage is that we do not need extra buffers. Also it might be used instead of the cont buffer. One challenge is that we do not know how much space is needed. If we do not reserve enough, we might not be able to reserve it later. This would happen when the main ring buffer is locked by some blocked process. If we reserve too much, it is a waste of information. Note that we must remove old messages to make the space. Also we could not rotate the ring buffer over the reserved space. Then we might miss the last messages from the normal context when the system goes down. Another question is if it could simplify the printk() code. The reservation logic would be probably more complicated than the current logic around the cont buffer. Best Regards, Petr -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/