Hi Otto, On Thu, Jan 2, 2025 at 9:33 AM Otto Kekäläinen <o...@kekalainen.net> wrote: > > These should actually be 64-bit and therefore enable > > innodb_log_file_mmap. Is your configuration check tripping because of > > the following? > > > > static constexpr const char *innodb_log_file_mmap_description= > > "Whether ib_logfile0" > > # ifdef HAVE_PMEM > > " resides in persistent memory or" > > # endif > > " should initially be memory-mapped"; > > It is not "my configuration check", it is standard output from > mariadbd --verbose --help.
You could compare filtered output, for example like this: sed -e 's/ resides in persistent memory or//' I think that it would be extremely misleading to mention persistent memory on systems where it cannot be supported. That would be all 32-bit ISA as well as a few 64-bit ISA. Actually, there exists an implementation of pmem_persist() for RISC-V and LoongArch, but I did not enable those by default, because we do not have those ISA in our CI. The following code in storage/innobase/CMakeLists.txt would have to be adjusted: IF(CMAKE_SIZEOF_VOID_P EQUAL 8) IF(CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch|AARCH|p(ower)?pc|x86_|amd)64") OPTION(WITH_INNODB_PMEM "Support memory-mapped InnoDB redo log" ON) ELSE() # Disable by default on ISA that are not covered by our CI OPTION(WITH_INNODB_PMEM "Support memory-mapped InnoDB redo log" OFF) ENDIF() ENDIF() If the regression tests run on /dev/shm (such as by invoking ./mtr --mem), the tests should execute the function pmem_persist(). If you could test this on RISC-V and LoongArch (both seem to be supported architectures in Debian), we could enable this code for them. I double-checked that s390x cannot be supported. https://www.ibm.com/support/pages/ibm-system-z-io-feature-reference-table does not mention any CXL, so it is not likely that any hardware exists. Also, https://gcc.gnu.org/onlinedocs/gcc/S_002f390-System-z-Built-in-Functions.html only mentions some instructions for memory transactions, which https://jira.mariadb.org/browse/MDEV-26769 is already making use of. > I agree that most of the time less is more, but in the case of > configuration options / system variables, it is extremely confusing to > users if an option occasionally exists and occasionally not in the > same version of MariaDB build with the same dependencies. > > Can you please help me write a patch (apparently for a_innodb.cc) to > make the variable will always be visible? I can try to see if the memory-mapped log parsing can be implemented on 32-bit systems. But, some of those systems can't possibly support pmem_persist(), and hence the documentation string would necessarily differ from those 64-bit platforms that can support it. Marko -- Marko Mäkelä, Lead Developer InnoDB MariaDB plc _______________________________________________ developers mailing list -- developers@lists.mariadb.org To unsubscribe send an email to developers-le...@lists.mariadb.org