Date: Mon, 24 Aug 2009 13:05:16 -0700 From: Marcel Moolenaar <xcllnt@mac.com> To: Ed Schouten <ed@80386.nl> Cc: arch@FreeBSD.org Subject: Re: mtx_lock_do_what_i_mean() Message-ID: <2678DC6C-3E91-420A-B43D-02E0F1F853C5@mac.com> In-Reply-To: <20090824174050.GI2829@hoeg.nl> References: <20090824174050.GI2829@hoeg.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 24, 2009, at 10:40 AM, Ed Schouten wrote: > Hi all, > > As some of you may already know, I'm writing a console driver for > FreeBSD in my Perforce branch (newcons). What I don't like about > console > devices, but cannot be avoided, is that certain pieces of code need to > be protected by spinning mutex, instead of default mutexes. This is > because things like the terminal emulator need to be protected from > concurrent access, which is likely to happen when printf() by the > kernel > and a write() on a TTY by a userspace process happen at the same time. I would approach the problem differently: decouple printf() in the kernel from anything to which we have a TTY attached. Instead, look at printf() as a means to write to the message buffer only. Echoing things that go into the message buffer to the console becomes 1) optional (yay!), and 2) something you can do by going through the TTY layer (use a kthread or use a process [syslog]). Just a thought, -- Marcel Moolenaar xcllnt@mac.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2678DC6C-3E91-420A-B43D-02E0F1F853C5>