On 20.06.2009 02:39, ron minnich wrote:
On Fri, Jun 19, 2009 at 4:46 PM, Carl-Daniel Hailfinger wrote
do_printk is defined in src/arch/i386/lib/printk_init.c as almost identical function, but without console_tx_flush and without locking. If only one CPU uses the lockless variant, we lose.
it's very useful. It can be used in the rom/CAR code before consoles really work.
Hm. AFAICS both versions have the same console requirements and just differ in locking (if you ignore the _flush no-op).
This kind of thing is common. Just about all OSes have a "printk before printk" function.
True, but our console requirements for both versions are pretty minimal and I think we showed in v3 that a one-size-fits-all printk can work fine.
So be careful. I use this one already in qemu.
Since the spinlock seems to live outside the CAR area, locking will break for any processor not having working RAM access. The solution is v3-style global variables as outlined in my other mail.
(we should just rename this to printk and use it the v3 way instead of the printk_<loglevel> layers on top, but that's orthogonal, too)
Yes please!
one thing at a time. That is on a list, but let's focus on this thread.
Agreed. Besides that, such a conversion would allow me to use Coccinelle again, so I'll probably try to do that myself once I have time.
Regards, Carl-Daniel