CS2: Cache-Shared Client-Server Approach in DBT System
Introduction
This project is a research project that aims to improve the performance of the DBT system by using a cache-shared client-server approach. That is, DBT systems can share their translation cache with each other to reduce the number of translations that need to be performed. Moreover, the translation cache can be preloaded or prefetched to significantly reduce the number of icache-flushes for DBT systems’ self-modifying code or JIT code generation.
We focus on the following design principles:
Cache Sharing: The translation cache of each DBT system can be shared with other DBT systems.
Cache Preloading/Prefetching: The translation cache can be preloaded or prefetched, so that the DBT system can perform multiple cache loads/fetches at once.
Easy Integration: The CS2 can be easily integrated with existing DBT systems.
…
This repository contains the implementation of the core library and the server of the CS2. And the clients will be various DBT systems. Currently, we have integrated the CS2 with Box64 and more clients (e.g. QEMU) are planned to be integrated in the future.
Installation
[!NOTE]
This project uses the Just command runner to simplify the development & installation process. Thus, you need to install the Just command runner on your system before proceeding.
To install the CS2 core library and server, you need to build the project from source using Rust toolchain:
Clone this repository to your local machine.
Build and install the artifacts by running the following command:
$ just install
[!TIP]
You can specify the installation prefix by passing it as an argument to the install command:
$ just install /your/installation/prefix
The installation prefix is /usr/local by default. Note that if you don’t have the necessary permissions to write to the installation prefix, the just install command will use sudo to gain the necessary permissions.
Contributing
We would love to see contributions from the community. If you experience bugs, feel free to open an issue. For more information on how to contribute, please refer to the CONTRIBUTING.md file.
License
This project is licensed under the MIT License. See the LICENSE file for details.
CS2: Cache-Shared Client-Server Approach in DBT System
Introduction
This project is a research project that aims to improve the performance of the DBT system by using a cache-shared client-server approach. That is, DBT systems can share their translation cache with each other to reduce the number of translations that need to be performed. Moreover, the translation cache can be preloaded or prefetched to significantly reduce the number of icache-flushes for DBT systems’ self-modifying code or JIT code generation.
We focus on the following design principles:
This repository contains the implementation of the core library and the server of the CS2. And the clients will be various DBT systems. Currently, we have integrated the CS2 with Box64 and more clients (e.g. QEMU) are planned to be integrated in the future.
Installation
To install the CS2 core library and server, you need to build the project from source using Rust toolchain:
Clone this repository to your local machine.
Build and install the artifacts by running the following command:
Contributing
We would love to see contributions from the community. If you experience bugs, feel free to open an issue. For more information on how to contribute, please refer to the CONTRIBUTING.md file.
License
This project is licensed under the MIT License. See the LICENSE file for details.