Chi-Kuan Chiu
Chi-Kuan Chiu
This document describes the memory management design in Box64 (`custommem.c`). The goal is to verify the correctness and gather feedback for improvements. Below is the current draft: ### High-Level Overview...
In `src/custommem.c` the function: ```c void* map128_customMalloc(size_t size, int is32bits) { size = 128; … } ``` hard-codes every allocation to 128 bytes. However, In my profiling (box64 + wine...
The current API set for range management is tightly coupled to the rbtree implementation, with function names prefixed as `rb_*`. However, the underlying data structure may evolve in the future....
When running the x86 version of [NBench](https://github.com/nfinit/ansibench/tree/master/nbench), compiled with the `-m32 -mno-sse` flag, the Bitfield task(Executes a variety of bit manipulation functions.) consistently results in a segmentation fault. ### Logs...
I'm trying to run `box64 wine control` on RISC-V [Voyager](https://www.andestech.com/en/2024/05/30/andes-technology-announced-the-qilai-soc-and/) using the same configuration as in issue #2645. When I execute: ``` BOX64_DYNAREC_RV64NOEXT=1 box64 wine64 control ``` I encounter this...
I made a local [commit](https://github.com/devarajabc/box64/commit/1b00139bbf932ae958f8b8ac52e4da435bd0c696) and it passes my tests ( CI and ansibenchmark), saving one **O(log n)** tree lookup on every call. However, I'm not sure if I missed...
While examining Box64's memory management system, particularly the usage of `rbtree`, I observed unusual behavior involving the `dynamap` tree. By running Box64 combined with Wine64 on a Windows 64-bit chess...
Reduce `ringbuf_element_t` from 8 bytes to 4 bytes by encoding the `gap` flag into the LSB of the size field. Since all payload sizes are padded to 8 bytes, the...
Telemetry on workload(same config as in issue #2511 but with the new version of box64) shows that **~80.6%** of blocks(total 12,478 blocks) and **~77.2%** of bytes are freed only in...
I have noticed that in `custommem.c`, memory ranges mapped by mmap are simultaneously recorded and removed in multiple red-black trees. Each node encapsulate a memory range along with detailed information...