Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dirtied shared pages profiles #10163

Open
caolanm opened this issue Oct 2, 2024 · 3 comments
Open

Dirtied shared pages profiles #10163

caolanm opened this issue Oct 2, 2024 · 3 comments
Labels
24.04 enhancement New feature or request performance Improving COOL performance

Comments

@caolanm
Copy link
Contributor

caolanm commented Oct 2, 2024

Describe the Bug

Flamegraphs of where shared pages are dirtied

Steps to Reproduce

  1. perf probe --add do_wp_page
  2. perf record -e probe:do_wp_page -o perf.data.write_shared -F5 --call-graph dwarf,65528 -a sleep 1h
  3. perf script -i ./perf.data.write_shared --no-inline | stackcollapse-perf.pl | sed -E -s "s/^kitbroker[^;]+/kitbroker/" | sed -E -s "s/^docbroker[^;]+/docbroker/" | sed -E -s "s/^kit_spare[^;]+/kit_spare/" | flamegraph.pl

Sample initial flamegraph

write_shared

@caolanm caolanm added enhancement New feature or request performance Improving COOL performance 24.04 labels Oct 2, 2024
@mmeeks
Copy link
Contributor

mmeeks commented Oct 2, 2024

Oooh - interesting =) so it looks like the filter cache is not being too helpful the cppu::iCopyConstructSequence thing - I -guess- is reference fiddling and perturbing the underlying data structure there from FilterCache::getItem I guess.

configmgr::Access::getByHierarchicalName() is also a surprise page dirtier - almost certainly again by bogus referencing of C++ objects: our strings should all be static-ized

Indeed Document::load has a lot of dirtying coming from configmr. @grandinj I thought we had tweaked the objects there to not have mutated references as we read the config ?

@caolanm
Copy link
Contributor Author

caolanm commented Oct 3, 2024

write_shared-longer

This one is for 12 hours

@grandinj
Copy link

grandinj commented Oct 3, 2024

Indeed Document::load has a lot of dirtying coming from configmr. @grandinj I thought we had tweaked the objects there to not have mutated references as we read the config ?

There are a couple of places that still use the underlying ref-counting configmgr APIs.

FilterCache is one of them, and the other is the stuff that loads the UI config (toolbars, sidebars, etc)

I don't see any decent path to improving those.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
24.04 enhancement New feature or request performance Improving COOL performance
Projects
Status: No status
Development

No branches or pull requests

3 participants