Andriy Gapon wrote: > I noticed that cpufreq_curr_sysctl performs a substantial memory allocation > and > deallocation on each call. Its size is CF_MAX_LEVELS * sizeof(*levels), which > is ~24KB. This happens even for read-only calls to just query current level. > And such calls happen quite frequently when powerd is running.
Worse is that it not just consumes time, but causes a bunch or TLB flush IPIs on free(). For read-only call it doesn't even needs CF_MAX_LEVELS * sizeof(*levels). sizeof(*levels) seems should be enough there. May be then it fits into some existing UMA zone, minimizing penalty. > I think that this is an unnecessary and avoidable load for VM system. > Couldn't a buffer be preallocated in sc and re-used for the calls? > Even if not, for some reason, then wouldn't it be better to have a dedicated > uma > zone for that rather than doing malloc+free? Dedicated rarely used UMA zone may eat much more memory then it is needed on SMP. -- Alexander Motin _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-acpi To unsubscribe, send any mail to "[email protected]"
