lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 12 Mar 2014 10:18:41 +0100 From: Peter Zijlstra <peterz@...radead.org> To: Jiri Bohac <jbohac@...e.cz> Cc: John Stultz <john.stultz@...aro.org>, linux-kernel@...r.kernel.org Subject: Re: is printk() safe within a timekeeper_seq write section? On Thu, Mar 06, 2014 at 06:45:31PM +0100, Jiri Bohac wrote: > Hi, > > I'm looking at the printk call in > __timekeeping_inject_sleeptime(), introduced in cb5de2f8 > (time: Catch invalid timespec sleep values in __timekeeping_inject_sleeptime) > > Is it safe to call printk() while timekeeper_seq is held for > writing? > > What about this call chain? > printk > vprintk_emit > console_unlock > up(&console_sem) > __up > wake_up_process > try_to_wake_up > ttwu_do_activate > ttwu_activate > activate_task > enqueue_task > enqueue_task_fair > hrtick_update > hrtick_start_fair > hrtick_start_fair > get_time > ktime_get > --> endless loop on > read_seqcount_retry(&timekeeper_seq, ...) > > > It looks like an unlikely but possible deadlock. > Or did I overlook something? So HRTICK is disabled by default; but yes this is a problem when you enable it. The problem is that our timers are in an entirely different clock base than our (scheduler) clocks. On SNB+ hardware with TSC deadline timers we have the same clockbase I suppose but I'm not sure that's something we can (and want) to rely on. Now, I've long had the idea to mess up the hrtimer code to optimize this particular timer, but I'm not entirely sure we can get around having to use the timerkeeper_seq thing, we simply have to get into timer clock space :/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists