-
Notifications
You must be signed in to change notification settings - Fork 56
resources: Add files to make 6.8.12 riscv kernel and gem5 bridge driver #67
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: stable
Are you sure you want to change the base?
Conversation
src/npb-24.04-imgs/riscv-npb.pkr.hcl
Outdated
| "<wait>" | ||
| ] | ||
| iso_checksum = "sha256:ddf1ebb56454ef37e88d6de8aefdef7180fc9a2328a3bf8cff02f7a043e7127b" | ||
| iso_urls = ["/home/harshilp/gem5-resources-worktrees/make-riscv-kernel/src/riscv-fs/riscv-ubuntu-22.04-24.04/disk-image-24.04/riscv-ubuntu"] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remember to change this once the base disk image is up
| make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- -j 32 && \ | ||
| make ARCH=riscv CROSS_COMPILE=riscv64-linux-gnu- INSTALL_MOD_PATH=/workspace/output modules_install | ||
|
|
||
| RUN git clone https://github.com/nkrim/gem5.git --depth=1 --filter=blob:none --no-checkout --sparse --single-branch --branch=gem5-bridge && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remember to change this later
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This link still needs to be changed
|
|
||
| # Just get the files we need | ||
| git clone https://github.com/gem5/gem5.git --depth=1 --filter=blob:none --no-checkout --sparse --single-branch --branch=stable | ||
| git clone https://github.com/gem5/gem5.git --depth=1 --filter=blob:none --no-checkout --sparse --single-branch --branch=release-staging-v24-1-1-0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remember to change this back to stable once staging is merged
erin-le
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested building and running the RISCV base and RISCV NPB disk images. I found that the building process was somewhat flaky, but was ultimately able to get it to work.
Previously, the RISCV kernel extraction failed on a machine with Docker version 27.5.0, but succeeded on machines with Docker version 27.3.1. However, upon re-testing, the kernel extraction succeeded on Docker version 27.5.0. I also found that the build process for the disk images would sometimes time out, likely due to timing issues.
After building the disk images, I ran simulations for booting the base disk image and running UA size S on the NPB disk image. Both ran as expected.
| disk_image = "true" | ||
| boot_command = [ | ||
| "<wait120>", | ||
| "<wait260>", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to add documentation in README.md or BUILDING.md about how users can/might need to adjust the wait times to avoid timing issues when building the disk image on their own systems. It would also be nice to have a comment in the Packer file.
| format = "raw" | ||
| headless = "true" | ||
| disk_image = "true" | ||
| boot_command = ["<wait90>", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need to add documentation in README.md or BUILDING.md about how users can/might need to adjust the wait times to avoid timing issues when building the disk image on their own systems. It would also be nice to have a comment in the Packer file.
erin-le
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See this comment: #67 (comment)
erin-le
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some comments
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was this change supposed to be in this PR? It's a change for Arm NPB, but the PR is for RISCV.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same comment as above; was this change supposed to be in this PR?
| ## Disk Image | ||
|
|
||
| Run `./build.sh` in the `riscv-ubuntu-22.04` directory to build the disk image. | ||
| Run `./build.sh` in the `riscv-ubuntu-22.04-24.04` directory to build the disk image. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| Run `./build.sh` in the `riscv-ubuntu-22.04-24.04` directory to build the disk image. | |
| First, run `make-riscv-kernel.sh` and pass either `22.04` or `24.04` as an argument. Next, run `./build.sh` and pass either `22.04` or `24.04` in the `riscv-ubuntu-22.04-24.04` directory to build the disk image. |
| To see what `packer` is doing, you can use the environment variable `PACKER_LOG=INFO` when running `./build.sh`. | ||
|
|
||
| The login process is automated by packer. | ||
| If the build process is hanging during login, check if the "wait" command in the boot_command section is actually waiting for the image to boot. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this file should make it clearer that the process is flaky and the wait commands can be modified to match the timing on the local machine.
No description provided.