summaryrefslogtreecommitdiffstats
path: root/src/kernel
Commit message (Collapse)AuthorAgeFilesLines
* Split xloop_main into separate files for pre-5.15 and 5.15+Simon Rettberg2022-03-048-2517/+4865
|
* qcow2: Add lock for lookup cache and decompressionSimon Rettberg2022-03-042-3/+12
| | | | | | | | Race conditions can occur if reads are submitted from different cgroups, as each cgroup has its own workqueue. Linearize the according parts of the code using a mutex, as this will in the worst case lead to performance on par with pre-5.15 versions of xloop, which used one workqueue for all cgroups.
* Add more sanity checks to kernel_read calls and compressed buffer accessSimon Rettberg2022-03-042-25/+105
| | | | | | | Also, while we're at it, add error messages for all (most) failure modes of the cluster reading and decompression code, so we don't just end up with IO errors at the block layer without any clue as to where they were introduced.
* Don't add byte offset to kmapped pointerSimon Rettberg2022-03-041-11/+11
| | | | | | | | While the kunmap functions always round down to the current page, and currently, we never map a region larger than a page, it should be safer to do the pointer arithmetic after we acquired the mapped pointer, to avoid the risk of ever passing an invalid pointer to kunmap.
* Fix linter errors and warnings from checkpatch.plManuel Bentele2021-12-073-26/+29
|
* Add support for Linux LTS kernel 5.15.xManuel Bentele2021-12-074-526/+755
|
* Add support for CentOS 8.4Manuel Bentele2021-07-261-1/+2
|
* Refactor kernel code to satisfy Linux kernel code styleManuel Bentele2021-03-1513-1441/+1111Star
|
* Add support in CMake to validate (lint) the source codeManuel Bentele2021-03-152-0/+588
|
* Add support for AlmaLinux 8Manuel Bentele2021-02-101-2/+11
|
* Removed unused library 'ncurses' from xlosetup's dependenciesManuel Bentele2020-12-031-0/+3
|
* Setup xloop device with XLOOP_CONFIGURE ioctl callManuel Bentele2020-12-021-5/+5
| | | | | | | | | | | | This feature allows the userspace tool xlosetup to completely setup a loop device with a single ioctl call, removing the in-between state where the device can be partially configured, eg. the loop device has a backing file associated with it, but is reading from the wrong offset. Besides removing the intermediate state, another big benefit of this ioctl is that XLOOP_SET_STATUS can be slow. The main reason for this slowness is that XLOOP_SET_STATUS(64) calls blk_mq_freeze_queue() to freeze the associated queue. This requires waiting for RCU.
* Add Linux kernel module support for 32-bit architectures (eg. ARM)Manuel Bentele2020-11-202-8/+19
| | | | | | | This change replaces all 64-bit division and modulo operations with specific Linux kernel macros and functions to support 32-bit hardware architectures. Thus, the xloop kernel modules can also run on 32-bit ARM architectures, such as the Raspberry Pi 1 running Raspberry Pi OS.
* Add upstream and compatibility changes for Linux kernel 5.10 and 4.19Manuel Bentele2020-11-161-2/+30
|
* Remove the build requirement for an unused C++ compilerManuel Bentele2020-10-274-4/+8
| | | | | This patch sets the programming languages of each CMake project to C. With this change, CMake does not search for an unused C++ compiler anymore.
* Remove static generation of LTP configuration headerManuel Bentele2020-10-264-14/+15
| | | | | | | This patch removes the static generation of the LTP configuration header done by CMake. The static generation is replaced with a fixed header (no CMake template anymore) which includes the dynamic generated xloop version header to define version number macros for LTP.
* Add automatic generation of version and build type headers for compilationManuel Bentele2020-10-235-70/+32Star
| | | | | | | This change replaces the static version and build type header file generation by CMake with dynamic CMake targets to generate the version file whenever a Make target is executed. Thus, there is no need anymore to reconfigure and rerun CMake after the repository version or build configuration has changed.
* Move the source code of all xloop components to the common 'src' directoryManuel Bentele2020-10-23259-0/+57016