← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2122288] [NEW] Lack of proper handling of new firmware architectures

 

Public bug reported:

Description
===========

Recent CentOS and Fedora introduced a few new architecture patterns of OVMF firmware.
However current nova does not handle these patterns appropriately and assumes that every firmware is always "statefull" and also "plush" type.

1) mode=stateless
example. 60-edk2-ovmf-x64-amdsev.json in Fedora 40
---
{
    "description": "OVMF with SEV-ES support",
    "interface-types": [
        "uefi"
    ],
    "mapping": {
        "device": "flash",
        "mode": "stateless",
        "executable": {
            "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd",
            "format": "raw"
        }
    },
    "targets": [
        {
            "architecture": "x86_64",
            "machines": [
                "pc-q35-*"
            ]
        }
    ],
    "features": [
        "amd-sev",
        "amd-sev-es",
        "amd-sev-snp",
        "verbose-dynamic"
    ],
    "tags": [

    ]
}
---

2) device=memory
example. 60-edk2-ovmf-x64-amdsev.json in CentOS Stream 10

---
{
    "description": "OVMF with SEV-ES support",
    "interface-types": [
        "uefi"
    ],
    "mapping": {
        "device": "memory",
        "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd"
    },
    "targets": [
        {
            "architecture": "x86_64",
            "machines": [
                "pc-q35-*"
            ]
        }
    ],
    "features": [
        "amd-sev",
        "amd-sev-es",
        "amd-sev-snp",
        "verbose-dynamic"
    ],
    "tags": [

    ]
}
---

These files should be excluded when detecting the loader files, to avoid
KeyError or launch time error.

** Affects: nova
     Importance: Undecided
         Status: New

** Description changed:

  Description
  ===========
  
- CentOS 9 introduced a few new architecture patterns of OVMF firmware.
+ Recent CentOS and Fedora introduced a few new architecture patterns of OVMF firmware.
  Current nova does not handle these patterns appropriately and assumes that every firmware is always "statefull" and also "plush" type.
- 
  
  1) mode=stateless
  example. 60-edk2-ovmf-x64-amdsev.json in Fedora 40
  ---
  {
-     "description": "OVMF with SEV-ES support",
-     "interface-types": [
-         "uefi"
-     ],
-     "mapping": {
-         "device": "flash",
-         "mode": "stateless",
-         "executable": {
-             "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd",
-             "format": "raw"
-         }
-     },
-     "targets": [
-         {
-             "architecture": "x86_64",
-             "machines": [
-                 "pc-q35-*"
-             ]
-         }
-     ],
-     "features": [
-         "amd-sev",
-         "amd-sev-es",
-         "amd-sev-snp",
-         "verbose-dynamic"
-     ],
-     "tags": [
+     "description": "OVMF with SEV-ES support",
+     "interface-types": [
+         "uefi"
+     ],
+     "mapping": {
+         "device": "flash",
+         "mode": "stateless",
+         "executable": {
+             "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd",
+             "format": "raw"
+         }
+     },
+     "targets": [
+         {
+             "architecture": "x86_64",
+             "machines": [
+                 "pc-q35-*"
+             ]
+         }
+     ],
+     "features": [
+         "amd-sev",
+         "amd-sev-es",
+         "amd-sev-snp",
+         "verbose-dynamic"
+     ],
+     "tags": [
  
-     ]
+     ]
  }
  ---
  
  2) device=memory
  example. 60-edk2-ovmf-x64-amdsev.json in CentOS Stream 10
  
  ---
  {
-     "description": "OVMF with SEV-ES support",
-     "interface-types": [
-         "uefi"
-     ],  
-     "mapping": {
-         "device": "memory",
-         "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd"
-     },  
-     "targets": [
-         {
-             "architecture": "x86_64",
-             "machines": [
-                 "pc-q35-*"
-             ]
-         }
-     ],  
-     "features": [
-         "amd-sev",
-         "amd-sev-es",
-         "amd-sev-snp",
-         "verbose-dynamic"
-     ],  
-     "tags": [
+     "description": "OVMF with SEV-ES support",
+     "interface-types": [
+         "uefi"
+     ],
+     "mapping": {
+         "device": "memory",
+         "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd"
+     },
+     "targets": [
+         {
+             "architecture": "x86_64",
+             "machines": [
+                 "pc-q35-*"
+             ]
+         }
+     ],
+     "features": [
+         "amd-sev",
+         "amd-sev-es",
+         "amd-sev-snp",
+         "verbose-dynamic"
+     ],
+     "tags": [
  
-     ]   
+     ]
  }
  ---
  
  These files should be excluded when detecting the loader files, to avoid
  KeyError or launch time error.

** Description changed:

  Description
  ===========
  
  Recent CentOS and Fedora introduced a few new architecture patterns of OVMF firmware.
- Current nova does not handle these patterns appropriately and assumes that every firmware is always "statefull" and also "plush" type.
+ However current nova does not handle these patterns appropriately and assumes that every firmware is always "statefull" and also "plush" type.
  
  1) mode=stateless
  example. 60-edk2-ovmf-x64-amdsev.json in Fedora 40
  ---
  {
      "description": "OVMF with SEV-ES support",
      "interface-types": [
          "uefi"
      ],
      "mapping": {
          "device": "flash",
          "mode": "stateless",
          "executable": {
              "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd",
              "format": "raw"
          }
      },
      "targets": [
          {
              "architecture": "x86_64",
              "machines": [
                  "pc-q35-*"
              ]
          }
      ],
      "features": [
          "amd-sev",
          "amd-sev-es",
          "amd-sev-snp",
          "verbose-dynamic"
      ],
      "tags": [
  
      ]
  }
  ---
  
  2) device=memory
  example. 60-edk2-ovmf-x64-amdsev.json in CentOS Stream 10
  
  ---
  {
      "description": "OVMF with SEV-ES support",
      "interface-types": [
          "uefi"
      ],
      "mapping": {
          "device": "memory",
          "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd"
      },
      "targets": [
          {
              "architecture": "x86_64",
              "machines": [
                  "pc-q35-*"
              ]
          }
      ],
      "features": [
          "amd-sev",
          "amd-sev-es",
          "amd-sev-snp",
          "verbose-dynamic"
      ],
      "tags": [
  
      ]
  }
  ---
  
  These files should be excluded when detecting the loader files, to avoid
  KeyError or launch time error.

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/2122288

Title:
  Lack of proper handling of new firmware architectures

Status in OpenStack Compute (nova):
  New

Bug description:
  Description
  ===========

  Recent CentOS and Fedora introduced a few new architecture patterns of OVMF firmware.
  However current nova does not handle these patterns appropriately and assumes that every firmware is always "statefull" and also "plush" type.

  1) mode=stateless
  example. 60-edk2-ovmf-x64-amdsev.json in Fedora 40
  ---
  {
      "description": "OVMF with SEV-ES support",
      "interface-types": [
          "uefi"
      ],
      "mapping": {
          "device": "flash",
          "mode": "stateless",
          "executable": {
              "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd",
              "format": "raw"
          }
      },
      "targets": [
          {
              "architecture": "x86_64",
              "machines": [
                  "pc-q35-*"
              ]
          }
      ],
      "features": [
          "amd-sev",
          "amd-sev-es",
          "amd-sev-snp",
          "verbose-dynamic"
      ],
      "tags": [

      ]
  }
  ---

  2) device=memory
  example. 60-edk2-ovmf-x64-amdsev.json in CentOS Stream 10

  ---
  {
      "description": "OVMF with SEV-ES support",
      "interface-types": [
          "uefi"
      ],
      "mapping": {
          "device": "memory",
          "filename": "/usr/share/edk2/ovmf/OVMF.amdsev.fd"
      },
      "targets": [
          {
              "architecture": "x86_64",
              "machines": [
                  "pc-q35-*"
              ]
          }
      ],
      "features": [
          "amd-sev",
          "amd-sev-es",
          "amd-sev-snp",
          "verbose-dynamic"
      ],
      "tags": [

      ]
  }
  ---

  These files should be excluded when detecting the loader files, to
  avoid KeyError or launch time error.

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