gem5-users@gem5.org

The gem5 Users mailing list

View all threads

FS system running Binary Code accessing Image Disk (without a kernel)

AA
Alain Aoun
Fri, Feb 16, 2024 4:46 PM

Hello,

I am new to GEM5 and I would appreciate any guidance to start my experiment in memory access performance.
I would like to measure the performance of a benchmark binary code generated by compiling an assembly code that I wrote. The assembly code accesses memory addresses where data is pre-dumped at these addresses in a RAW disk image. My current setup consist of the image disk (containing the data) generated using qemu-img and the compiled binary code for x86 architecture.

I would appreciate if I can get answers to some or all my inquiries below as it can help me move forward:
1- When simulating in FS mode, is a kernel (e.g., linux kernel) a must or I can run a binary code without a kernel?
2- From what I read in archived mailings, I understood that I/O (including a disk image) is mounted by the kernel. Thus, is it possible to force mount the disk image without a kernel but rather in the setup configuration (python file) for GEM5?
3- If a kernel is a must in FS mode, does the kernel instantiate reserved region in the memory which is not accessible by the user (i.e., it cannot be accessed by my binary code)? If yes, how to determine which region (memory address range) can be accessed by the user?
4- How to make sure that the disk image is successfully mounted and determine (or specify) its physical address range?

Thank you in advance,
Alain

Hello, I am new to GEM5 and I would appreciate any guidance to start my experiment in memory access performance. I would like to measure the performance of a benchmark binary code generated by compiling an assembly code that I wrote. The assembly code accesses memory addresses where data is pre-dumped at these addresses in a RAW disk image. My current setup consist of the image disk (containing the data) generated using qemu-img and the compiled binary code for x86 architecture. I would appreciate if I can get answers to some or all my inquiries below as it can help me move forward: 1- When simulating in FS mode, is a kernel (e.g., linux kernel) a must or I can run a binary code without a kernel? 2- From what I read in archived mailings, I understood that I/O (including a disk image) is mounted by the kernel. Thus, is it possible to force mount the disk image without a kernel but rather in the setup configuration (python file) for GEM5? 3- If a kernel is a must in FS mode, does the kernel instantiate *reserved* region in the memory which is not accessible by the user (i.e., it cannot be accessed by my binary code)? If yes, how to determine which region (memory address range) can be accessed by the user? 4- How to make sure that the disk image is successfully mounted and determine (or specify) its physical address range? Thank you in advance, Alain