Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-22669

InnoDB lacks CRC-32C acceleration on IA-32

Details

    Description

      MySQL 5.6 introduced innodb_checksum_algorithm=crc32 and implemented it for AMD64 using the SSE 4.2 instructions (incorrectly advertised as "SSE2" in a startup message). It was not implemented on IA-32 or on Windows.

      Since MariaDB 10.2.11, MariaDB makes use of the SSE4.2 CRC-32C instructions on Windows on both IA-32 and AMD64.

      Let us be consistent and implement CRC-32C for IA-32 on all available platforms.

      Attachments

        Issue Links

          Activity

            While evaluating the results, I noticed that on buildbot.askmonty.org, all AMD64/IA-32 platforms except Windows fail to enable the optimization:

            10.2 6462af1c2e2cddf3a96818dc7884e187d8ba7f24

            2020-05-22 11:40:51 140344182650752 [Note] InnoDB: Using generic crc32 instructions
            

            The above log is from 10.2, where the CPUID check is present for AMD64.

            I also downloaded a kvm-deb-xenial-x86 package of mariadb-server-core-10.5_10.5.4+maria~xenial_i386.deb with my change, and checked the generated code. The CPUID instruction is present, and the code around it looks correct to me.

            On buildbot.mariadb.org (which uses Docker images rather than virtual machines), we do see the expected message:

            10.5 51f0fa4eb375334857f9e03b5262e9cda57f92d2

            2020-05-22 22:11:41 0 [Note] InnoDB: Using SSE4.2 crc32 instructions
            

            marko Marko Mäkelä added a comment - While evaluating the results, I noticed that on buildbot.askmonty.org, all AMD64/IA-32 platforms except Windows fail to enable the optimization: 10.2 6462af1c2e2cddf3a96818dc7884e187d8ba7f24 2020-05-22 11:40:51 140344182650752 [Note] InnoDB: Using generic crc32 instructions The above log is from 10.2, where the CPUID check is present for AMD64. I also downloaded a kvm-deb-xenial-x86 package of mariadb-server-core-10.5_10.5.4+maria~xenial_i386.deb with my change, and checked the generated code. The CPUID instruction is present, and the code around it looks correct to me. On buildbot.mariadb.org (which uses Docker images rather than virtual machines), we do see the expected message: 10.5 51f0fa4eb375334857f9e03b5262e9cda57f92d2 2020-05-22 22:11:41 0 [Note] InnoDB: Using SSE4.2 crc32 instructions

            People

              marko Marko Mäkelä
              marko Marko Mäkelä
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.