如何使用gem5 fs.py在模拟中附加多个磁盘映像?

时间:2018-06-14 17:24:52

标签: gem5

https://www.mail-archive.com/gem5-users@gem5.org/msg15233.html 杰森提到了附加两个磁盘映像进行恢复的技术 检查站并运行不同的基准。

使用fs.py时是否可以指定多个磁盘映像?从 源代码我不认为它目前支持,但只是 在我决定补丁之前进行双重检查。

似乎多个--disk-image=选项只是互相覆盖。

fs_bigLITTLE.py似乎支持它。

gem5 60600f09c25255b3c8f72da7fb49100e2682093a

https://www.mail-archive.com/gem5-users@gem5.org/msg15675.html

2 个答案:

答案 0 :(得分:2)

我在这里回答: 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(gem5的环境变量,指向包含系统文件的目录)中提供一个名为工作负载.img的映像。当然,您可以将其更改为所需的任何值,也可以通过选项将其传递。

还请注意,启动时,必须先使用常规工具安装第二张磁盘来安装第二张磁盘。 这可以通过例如

来完成
sudo mount /dev/sdb1 /mnt

第二个磁盘映像中的所有文件将出现在/ mnt下

答案 1 :(得分:0)

自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等装载额外的映像。

请不要忘记,只有在还原检查点之后才能在客户机上挂载(或者必须在客户机上卸装,修改主机上的磁盘并在客户机上重新挂载)。否则,来宾内核内存将仍然期待一个在其脚下交换的不同文件系统。