[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 3/4] xen: refactor debugtrace data
On 06.09.2019 10:49, Juergen Gross wrote: > On 05.09.19 16:43, Jan Beulich wrote: >> On 05.09.2019 16:36, Juergen Gross wrote: >>> On 05.09.19 14:46, Juergen Gross wrote: >>>> On 05.09.19 14:37, Jan Beulich wrote: >>>>> On 05.09.2019 14:27, Juergen Gross wrote: >>>>>> On 05.09.19 14:22, Jan Beulich wrote: >>>>>>> On 05.09.2019 14:12, Juergen Gross wrote: >>>>>>>> On 05.09.19 14:01, Jan Beulich wrote: >>>>>>>>> On 05.09.2019 13:39, Juergen Gross wrote: >>>>>>>>>> As a preparation for per-cpu buffers do a little refactoring of the >>>>>>>>>> debugtrace data: put the needed buffer admin data into the buffer as >>>>>>>>>> it will be needed for each buffer. In order not to limit buffer size >>>>>>>>>> switch the related fields from unsigned int to unsigned long, as on >>>>>>>>>> huge machines with RAM in the TB range it might be interesting to >>>>>>>>>> support buffers >4GB. >>>>>>>>> >>>>>>>>> Just as a further remark in this regard: >>>>>>>>> >>>>>>>>>> void debugtrace_printk(const char *fmt, ...) >>>>>>>>>> { >>>>>>>>>> static char buf[DEBUG_TRACE_ENTRY_SIZE]; >>>>>>>>>> - static unsigned int count, last_count, last_prd; >>>>>>>>>> + static unsigned int count, last_count; >>>>>>>>> >>>>>>>>> How long do we think will it take until their wrapping will become >>>>>>>>> an issue with such huge buffers? >>>>>>>> >>>>>>>> Count wrapping will not result in any misbehavior of tracing. With >>>>>>>> per-cpu buffers it might result in ambiguity regarding sorting the >>>>>>>> entries, but I guess chances are rather low this being a real issue. >>>>>>>> >>>>>>>> BTW: wrapping of count is not related to buffer size, but to the >>>>>>>> amount of trace data written. >>>>>>> >>>>>>> Sure, but the chance of ambiguity increases with larger buffer sizes. >>>>>> >>>>>> Well, better safe than sorry. Switching to unsigned long will rarely >>>>>> hurt, so I'm going to do just that. The only downside will be some waste >>>>>> of buffer space for very long running traces with huge amounts of >>>>>> entries. >>>>> >>>>> Hmm, true. Maybe we could get someone else's opinion on this - anyone? >>>> >>>> TBH, I wouldn't be concerned about the buffer space. In case there are >>>> really billions of entries, the difference between a 10-digit count >>>> value and maybe a 15 digit one (and that is already a massive amount) >>>> isn't that large. The average printed size of count with about >>>> 4 billion entries is 9.75 digits (and not just 5 :-) ). >>> >>> Another option would be to let count wrap at e.g. 4 billion (or even 1 >>> million) and add a wrap count. Each buffer struct would contain the >>> wrap count of the last entry, and when hitting a higher wrap count a >>> new entry like ("wrap %u->%u", old_wrap, new_wrap) would be printed. >>> This saves buffer space without loosing information. >> >> This sounds quite neat. > > I'm adding a new patch for that purpose, as it is adding a new feature. > > Any preferences for the max value of count? I'm in favor of limiting it > to 6-digit numbers as those are much easier to compare by just looking > at them. I'm not overly fussed; personally I'd probably wrap at 30 bits, making it generally up to 8 digits, just very slightly going into the 9-digit range. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |