[MDEV-9857] CACHE_LINE_SIZE in innodb should be 128 on POWER Created: 2016-04-01 Updated: 2016-06-30 Resolved: 2016-06-07 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Storage Engine - InnoDB |
| Fix Version/s: | 10.2.1 |
| Type: | Task | Priority: | Major |
| Reporter: | Daniel Black | Assignee: | Sergey Vojtovich |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | contribution, foundation, patch | ||
| Issue Links: |
|
||||||||||||
| Sprint: | 10.2.1-1, 10.2.1-2 | ||||||||||||
| Description |
|
The forthcoming github pull request will. Also includes patches in Performance Schema. |
| Comments |
| Comment by Sergey Vojtovich [ 2016-05-03 ] | ||||||||||||||||||||||||||
|
serg, I merged everything I found reasonable. Could you have another look at this PR? | ||||||||||||||||||||||||||
| Comment by Sergey Vojtovich [ 2016-06-02 ] | ||||||||||||||||||||||||||
|
License confirmed. There's also PR#178 now. | ||||||||||||||||||||||||||
| Comment by Sergei Golubchik [ 2016-06-06 ] | ||||||||||||||||||||||||||
|
Looks ok. The only comment is about
This is not exactly true. We don't want sizeof(LF_PINS) to be CPU_LEVEL1_DCACHE_LINESIZE * 2, we want It'd be perfect if you could change it to use as few cache lines as possible. | ||||||||||||||||||||||||||
| Comment by Daniel Black [ 2016-06-07 ] | ||||||||||||||||||||||||||
|
PR#178 removed padding as a mechanism for alignment in favour of using compiler alignment combined with malloc alignment to keep these on different cache lines. Test case to show the alignment of the structure member affects the structure size: https://gist.github.com/grooverdan/19a7c8d8ac0e680ba6fcf4668962b9c4 The original pad calculation that did include a mod - https://github.com/MariaDB/server/pull/169/files#diff-41202b17494e25e891bbfa27df165331R71 | ||||||||||||||||||||||||||
| Comment by Sergey Vojtovich [ 2016-06-07 ] | ||||||||||||||||||||||||||
|
serg, remember our discussion re paddings:
Your statetement is correct for aligned allocs. Minimal padding in this particular case is "char pad[CPU_LEVEL1_DCACHE_LINESIZE]". I'll fix it accordingly. | ||||||||||||||||||||||||||
| Comment by Daniel Black [ 2016-06-29 ] | ||||||||||||||||||||||||||
|
If you have aligned allocs and and aligned structure elements do you actually still need padding? (https://github.com/MariaDB/server/pull/185). | ||||||||||||||||||||||||||
| Comment by Sergey Vojtovich [ 2016-06-30 ] | ||||||||||||||||||||||||||
|
No padding for aligned structures is needed. |