Skip to content

Few improvements related to CPU cache line size and padding #37

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

Closed
wants to merge 1 commit into from

Conversation

akopytov
Copy link

Bug #79636: CACHE_LINE_SIZE should be 128 on AArch64
Bug #79637: Hard-coded cache line size
Bug #79638: Reconcile CACHE_LINE_SIZE with CPU_LEVEL1_DCACHE_LINESIZE
Bug #79652: Suspicious padding in srv_conc_t

  • changed CPU_LEVEL1_DCACHE_LINESIZE to default to 128 bytes on POWER
    and AArch64 architectures in cases when no value could be detected
    by CMake using getconf
  • changed pfs_global.h to assume CPU_LEVEL1_DCACHE_LINESIZE is always
    defined (and throw a compile-time error if it's not)
  • changed CACHE_LINE_SIZE definition in ut0counter.h to be an alias of
    CPU_LEVEL1_DCACHE_LINESIZE
  • changed a number of hard-coded 64-byte cache line size values in the
    InnoDB code
  • fixed insufficient padding for srv_conc members in srv0conc.cc

Bug #79636: CACHE_LINE_SIZE should be 128 on AArch64
Bug #79637: Hard-coded cache line size
Bug #79638: Reconcile CACHE_LINE_SIZE with CPU_LEVEL1_DCACHE_LINESIZE

- changed CPU_LEVEL1_DCACHE_LINESIZE to default to 128 bytes on POWER
  and AArch64 architectures in cases when no value could be detected
  by CMake using getconf

- changed pfs_global.h to assume CPU_LEVEL1_DCACHE_LINESIZE is always
  defined (and throw a compile-time error if it's not)

- changed CACHE_LINE_SIZE definition in ut0counter.h to be an alias of
  CPU_LEVEL1_DCACHE_LINESIZE

- changed a number of hard-coded 64-byte cache line size values in the
  InnoDB code

- fixed insufficient padding for srv_conc members in srv0conc.cc
@mysql-oca-bot
Copy link

Hi, thank you for your contribution. Please confirm this code is submitted under the terms of the OCA (Oracle's Contribution Agreement) you have previously signed by cutting and pasting the following text as a comment:
"I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it."
Thanks

@akopytov
Copy link
Author

I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.

@mysql-oca-bot
Copy link

Hi, thank you for your contribution. Your code has been assigned to an internal queue. Please follow
bug http://bugs.mysql.com/bug.php?id=79683 for updates.
Thanks

@grooverdan
Copy link

thanks @akopytov

@akopytov
Copy link
Author

I made a minor change to the patch fixing the compilation error on systems where getconf LEVEL1_DCACHE_LINESIZE returns 0. Therefore re-submitting the PR.

@grooverdan
Copy link

in storage/perfschema/pfs_global.h is there a reason PFS_ALIGNEMENT wasn't defined to CPU_LEVEL1_DCACHE_LINESIZE?

@akopytov
Copy link
Author

akopytov commented Apr 1, 2016

No reason, just an oversight. I'll fix.

@akopytov
Copy link
Author

akopytov commented Apr 1, 2016

Submitted #66. Thanks.

gunnarku pushed a commit to facebook/mysql-8.0 that referenced this pull request Jul 21, 2017
Summary: A straightforward implementation of Index Condition Pushdown

Test Plan: mtr t/rocksdb_icp.test

Reviewers: maykov, hermanlee4, jonahcohen, jtolmer, yoshinorim

Reviewed By: yoshinorim

Differential Revision: https://reviews.facebook.net/D35181
gunnarku pushed a commit to facebook/mysql-8.0 that referenced this pull request Jul 25, 2017
Summary: A straightforward implementation of Index Condition Pushdown

Test Plan: mtr t/rocksdb_icp.test

Reviewers: maykov, hermanlee4, jonahcohen, jtolmer, yoshinorim

Reviewed By: yoshinorim

Differential Revision: https://reviews.facebook.net/D35181
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants