At https://www.mail-archive.com/gem5-users@gem5.org/msg15233.html Jason提到了附加两个磁盘映像进行还原的技术 一个检查点并运行不同的基准测试。
使用fs.py
时是否可以指定多个磁盘映像?从 源代码我认为目前不支持,但只是 在我决定是否修补它之前仔细检查。
似乎多个--disk-image=
选项只是相互覆盖。
然而,fs_bigLITTLE.py
似乎支持它。
GEM5 60600f09c25255b3c8f72da7fb49100e2682093a
https://www.mail-archive.com/gem5-users@gem5.org/msg15675.html
我在这里回答: https://www.mail-archive.com/gem5-users@gem5.org/msg15714.html
基本上,http://www.gem5.org/AsimBench 展示了如何使用 fs.py 执行此操作的示例。您可以使用此修补程序尝试此操作:
diff --git a/configs/common/FSConfig.py b/configs/common/FSConfig.py
index e2b6616..e01cc13 100644
--- a/configs/common/FSConfig.py
+++ b/configs/common/FSConfig.py
@@ -266,15 +266,17 @@ def makeArmSystem(mem_mode, machine_type, num_cpus=1, mdesc=None,
self.cf0 = CowIdeDisk(driveID='master')
self.cf0.childImage(mdesc.disk())
+ self.disk2 = CowIdeDisk(driveID='master')
+ self.disk2.childImage(disk('workloads.img'))
# Old platforms have a built-in IDE or CF controller. Default to
# the IDE controller if both exist. New platforms expect the
# storage controller to be added from the config script.
if hasattr(self.realview, "ide"):
- self.realview.ide.disks = [self.cf0]
+ self.realview.ide.disks = [self.cf0, self.disk2]
elif hasattr(self.realview, "cf_ctrl"):
- self.realview.cf_ctrl.disks = [self.cf0]
+ self.realview.cf_ctrl.disks = [self.cf0, self.disk2]
else:
- self.pci_ide = IdeController(disks=[self.cf0])
+ self.pci_ide = IdeController(disks=[self.cf0, self.disk2])
pci_devices.append(self.pci_ide)
self.mem_ranges = []
请注意,在此示例中,您必须在M5_PATH中提供一个名为 workloads.img 的映像(gem5 的环境变量,指向包含系统文件的目录(。当然,您可以将其更改为所需的任何值或通过选项传递它。
另请注意,启动时,必须先使用普通工具装载第二个磁盘来装载磁盘。 这可以通过例如
sudo mount /dev/sdb1 /mnt
然后,第二个磁盘映像中的所有文件都将出现在/mnt 下
自 gem5 a6d98140(2020 年 1 月(以来,可能是开箱即用的
添加: https://gem5-review.googlesource.com/c/public/gem5/+/23671/6
您现在可以多次使用--disk-image
,如下所示:
build/ARM/gem5.opt scripts/example/fs.py
--disk-image path/to/my.ext2 --disk-image path/to/another.ext2
然后,额外的映像可以在Linux下挂载/dev/sda
,/dev/sdb
等。
不要忘记,您只能在还原检查点后挂载到客户机上(或者您必须在客户机上卸载,修改主机上的磁盘,然后在客户机上重新挂载(。否则,来宾内核内存仍将期望在其脚下交换的不同文件系统。