[MDEV-6675] Use PGO in builds to help reduce icache miss overhead Created: 2014-09-01 Updated: 2015-04-24 |
|
| Status: | Stalled |
| Project: | MariaDB Server |
| Component/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major |
| Reporter: | Kristian Nielsen | Assignee: | Kristian Nielsen |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | performance | ||
| Attachments: |
|
| Description |
|
I wrote about this in January: https://lists.launchpad.net/maria-developers/msg06693.html Even for simple queries, profiling shows that icache misses is a major A partial but easy-to-implement fix is to use GCC profile-guided I already have a script that generates a suitable test load, and the commands https://github.com/knielsen/gen_profile_load
It just needs to be integrated into the .deb build scripts (native Debian as |
| Comments |
| Comment by Kristian Nielsen [ 2014-09-05 ] |
|
Hm, I have a patch for using PGO when building .debs. But I did a quick test with a bunch of simple queries, and the PGO binaries were not seen to be faster. In fact, they were seen to be a few percent slower. So I need to analyse this before proceeding, need to find the explanation for this, to see if the PGO idea is at all viable. |
| Comment by Kristian Nielsen [ 2014-11-26 ] |
|
I made a patch to use PGO in the debian package builds. But then a quick benchmark showed that the resulting binaries were slower, not faster, than the original. This probably needs to be understood before going further with this task. |
| Comment by Kristian Nielsen [ 2015-04-24 ] |
|
I attached my patch to this issue. This is mainly extending debian/rules to build with profiling, then run the profile load, then build again using PGO. And it uses the load generator from here: https://github.com/knielsen/gen_profile_load It also includes the simple test script that showed poorer performance of the PGO binaries. The patch should be complete (it is based on an older 10.0 tree). But the issue that even simple performance tests become slower using PGO probably needs to be investigated before using this ... |