From: Martin Peschke The list of statistics entries maintained by type 'sparse' might have shown unsorted entries with regard to the number of reported hits. The reason was that new entries were always added at the tail of the list regardless of the number of hits they came with. Unsorted lists might suffer a performance loss. Fix is to sort the list by hits after entry insertion, i.e. moving entries added at the tail up the chain, which should not be required very often (usually just when merging per-cpu lists). Signed-off-by: Martin Peschke Signed-off-by: Andrew Morton --- lib/statistic.c | 1 + 1 file changed, 1 insertion(+) diff -puN lib/statistic.c~statistics-infrastructure-statistics-fix-sorted-list lib/statistic.c --- a/lib/statistic.c~statistics-infrastructure-statistics-fix-sorted-list +++ a/lib/statistic.c @@ -1138,6 +1138,7 @@ static int statistic_new_sparse(struct s entry->hits = incr; slist->entries++; list_add_tail(&entry->list, &slist->entry_lh); + statistic_sort_sparse(&slist->entry_lh, entry); return 0; } _