Ok Will do. --thanks

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/2166076

Title:
   QEMU : ELIMINATION OF HYPERTRANSPORT MEMORY HOLE

Status in QEMU:
  New
Status in linux package in Ubuntu:
  Invalid

Bug description:
  Historically, AMD processors reserved a 1 TB memory hole in the
  physical address space around the 1 TB boundary (specifically from 1
  TB to ~ 2 TB). This reservation was a legacy requirement from
  the HyperTransport era to maintain compatibility with older IOMMU (I/O
  Memory Management Unit) implementations that expected this address
  space to be reserved for I/O devices and memory-mapped I/O operations.

  ISSUE:

  This 1 TB hole meant that:

  Systems couldn't use physical memory addresses in that range for
  actual DRAM

  With large memory configurations (approaching/exceeding 1 TB), this
  created inefficiencies in memory mapping

  It limited the contiguous addressable memory space available to the OS
  and applications

  The reservation was maintained for legacy compatibility.

  SOLUTION: 
  Starting with EPYC 9005 (Turin), AMD introduced the ability to eliminate this 
legacy 1 TB IOMMU/HyperTransport memory hole. This feature: 

  Reclaims the 1 TB address space previously reserved for legacy
  compatibility

  Allows systems to use more contiguous physical memory addressing

  Improves memory efficiency for large-memory configurations

  Is controlled via BIOS/firmware settings

  Represents a clean break from HyperTransport-era constraints


  Pre-6.1 QEMU would report the host e820 to the guest. BUT QEMU did not
  detect if the hole was present or not. QEMU IOMMU emulation had
  assumptions about the hole. QEMU memory accounting didn’t properly
  handle both cases. When the hole was absent, QEMU's internal
  calculations were wrong.

  
                                          QEMU Pre-6.1                    QEMU 
6.1+
  Legacy (with hole) + No pass-through  Works as expected                 Works 
as expected
  Legacy (with hole) + with pass-through        Works as expected               
  Works as expected
  Modern (no hole) + No pass-through    Memory in the hole is STRANDED    Works 
as expected
  Modern (no hole) + with pass-through  DMA to wrong memory system crash  Works 
as expected

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/2166076/+subscriptions


Reply via email to