[Feature] Increase percpu counter threshold size

Bug #1730879 reported by Alice Liu
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
intel
Fix Released
Undecided
Unassigned
linux (Ubuntu)
Fix Released
Undecided
Unassigned
Bionic
Fix Released
Undecided
Unassigned

Bug Description

Description

It was noted that the size of the percpu counters used for "node/zone_state" is only 8 bytes:

struct per_cpu_pageset {
        struct per_cpu_pages pcp;
        s8 stat_threshold;
        s8 vm_stat_diff[NR_VM_ZONE_STAT_ITEMS];
};

This code is very old. It effectively requires a pair hot, global cachelines to be touched when the per_cpu counter value does not fit in "vm_stat_diff".

For this item, we need to increase the size of vm_stat_diff[] from an s8 to an s16, then allow the ->stat_threshold to be adjusted between the existing value of 125 and some larger value. Note that the current threshold from calculate_normal_threshold() is capped at 125 for all zones over 32GB. We have zones much larger than that today, so it is likely not scaling optimally.

Target Kernel: 4.14
Target Release: 18.04

Tags: kernel
Revision history for this message
Alice Liu (dxliu) wrote :

Merged in kernel v4.14-rc1.
Commit id:
1d90ca897cb05cf38bd62f36756d219e02913b7d

information type: Proprietary → Private
Revision history for this message
Alice Liu (dxliu) wrote :

There are three commits in total which have been merged in v4.14-rc1.
3a321d2a3dde812142e06ab5c2f062ed860182a5
1d90ca897cb05cf38bd62f36756d219e02913b7d
638032224ed762a29baca1fc37f1168efc2554ae

Revision history for this message
Leann Ogasawara (leannogasawara) wrote :

4.15 is now available in Bionic. Marking this Fix Released.

tags: added: kernel
information type: Private → Public
Changed in linux (Ubuntu Bionic):
status: New → Fix Released
Changed in intel:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.