On 01/07/2019 05:32 PM, Dave Chinner wrote: > On Mon, Jan 07, 2019 at 10:12:56AM -0500, Waiman Long wrote: >> As newer systems have more and more IRQs and CPUs available in their >> system, the performance of reading /proc/stat frequently is getting >> worse and worse. > Because the "roll-your-own" per-cpu counter implementaiton has been > optimised for low possible addition overhead on the premise that > summing the counters is rare and isn't a performance issue. This > patchset is a direct indication that this "summing is rare and can > be slow" premise is now invalid. > > We have percpu counter infrastructure that trades off a small amount > of addition overhead for zero-cost reading of the counter value. > i.e. why not just convert this whole mess to percpu_counters and > then just use percpu_counter_read_positive()? Then we just don't > care how often userspace reads the /proc file because there is no > summing involved at all... > > Cheers, > > Dave. Yes, percpu_counter_read_positive() is cheap. However, you still need to pay the price somewhere. In the case of percpu_counter, the update is more expensive. I would say the percentage of applications that will hit this problem is small. But for them, this problem has some significant performance overhead. Cheers, Longman