• Laszlo Ersek's avatar
    dump: rebase from host-private RAMBlock offsets to guest-physical addresses · 56c4bfb3
    Laszlo Ersek authored
    RAMBlock.offset                   --> GuestPhysBlock.target_start
    RAMBlock.offset + RAMBlock.length --> GuestPhysBlock.target_end
    RAMBlock.length                   --> GuestPhysBlock.target_end -
                                          GuestPhysBlock.target_start
    
    "GuestPhysBlock.host_addr" is only used when writing the dump contents.
    
    This patch enables "crash" to work with the vmcore by rebasing the vmcore
    from the left side of the following diagram to the right side:
    
    host-private
    offset
    relative
    to ram_addr   RAMBlock                  guest-visible paddrs
                0 +-------------------+.....+-------------------+ 0
                  |         ^         |     |        ^          |
                  |       640 KB      |     |      640 KB       |
                  |         v         |     |        v          |
      0x0000a0000 +-------------------+.....+-------------------+ 0x0000a0000
                  |         ^         |     |XXXXXXXXXXXXXXXXXXX|
                  |       384 KB      |     |XXXXXXXXXXXXXXXXXXX|
                  |         v         |     |XXXXXXXXXXXXXXXXXXX|
      0x000100000 +-------------------+.....+-------------------+ 0x000100000
                  |         ^         |     |        ^          |
                  |       3583 MB     |     |      3583 MB      |
                  |         v         |     |        v          |
      0x0e0000000 +-------------------+.....+-------------------+ 0x0e0000000
                  |         ^         |.    |XXXXXXXXXXXXXXXXXXX|
                  | above_4g_mem_size | .   |XXXX PCI hole XXXXX|
                  |         v         |  .  |XXXX          XXXXX|
         ram_size +-------------------+   . |XXXX  512 MB  XXXXX|
                                       .   .|XXXXXXXXXXXXXXXXXXX|
                                        .   +-------------------+ 0x100000000
                                         .  |         ^         |
                                          . | above_4g_mem_size |
                                           .|         v         |
                                            +-------------------+ ram_size
                                                                  + 512 MB
    
    Related RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=981582Signed-off-by: default avatarLaszlo Ersek <lersek@redhat.com>
    Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
    56c4bfb3
arch_dump.c 12.4 KB