Messages in this thread | | | Date | Thu, 27 Mar 2014 17:49:31 -0700 | From | John Stultz <> | Subject | Re: is printk() safe within a timekeeper_seq write section? |
| |
On 03/12/2014 02:21 AM, Jiri Bohac wrote: > On Tue, Mar 11, 2014 at 02:54:13PM -0700, John Stultz wrote: >> Ok, so a generic solution is probably not going to be worth it then. My >> thought was that since we do a very limited amount of informational >> printks in the timekeeping code, we can be fairly safe delaying the >> print-out until we drop the locks. >> >> For timekeeping, its really 4 call sites: >> * invalid inject_sleep_time deltas >> * > 11% clocksource freq adjustments >> * insert leap second >> * delete leap second > I believe these last two were made safe by > commit ca4523cd (timekeeping: Shorten seq_count region). > > write_seqcount_begin(&timekeeper_seq) is now done after the > accumulate_nsecs_to_secs(tk) from where the printks are called.
So I started looking into deferring the printk with a small local buffer, but I suddenly realized there are all these WARN_ON's around which would likely have the same problem, no?
So I'm starting to doubt we can safely get away with a timekeeping specific hack to defer the printk. :(
thanks -john
| |