CINXE.COM
Bug #2023211 “Run emulated riscv64 VMs on amd64” : Bugs : OpenStack Nova Compute Charm
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"> <head> <base href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+index" /> <meta charset="UTF-8" /> <title>Bug #2023211 “Run emulated riscv64 VMs on amd64” : Bugs : OpenStack Nova Compute Charm</title> <link rel="apple-touch-icon" sizes="180x180" href="/@@/apple-touch-icon.png?v=2022" /> <link rel="icon" type="image/png" sizes="32x32" href="/@@/favicon-32x32.png?v=2022" /> <link rel="icon" type="image/png" sizes="16x16" href="/@@/favicon-16x16.png?v=2022" /> <link rel="manifest" href="/@@/site.webmanifest?v=2022" /> <link rel="mask-icon" href="/@@/safari-pinned-tab.svg?v=2022" color="#e9531f" /> <link rel="shortcut icon" href="/@@/favicon.ico?v=2022" /> <meta name="msapplication-TileColor" content="#da532c" /> <meta name="msapplication-config" content="/@@/browserconfig.xml?v=2022" /> <meta name="theme-color" content="#ffffff" /> <link rel="canonical" href="https://bugs.launchpad.net/bugs/2023211" /> <link rel="alternate" type="application/atom+xml" href="http://feeds.launchpad.net/bugs/2023211/bug.atom" title="Bug 2023211 Feed" /> <link type="text/css" rel="stylesheet" media="screen, print" href="/+icing/rev22ade00ab50b929fac63b8ee7252243aceda294a/combo.css" /> <meta name="description" content="[Impact] Since the OpenStack Yoga release is possible to run emulated architectures ( https://docs.openstack.org/nova/latest/admin/hw-emulation-architecture.html ), although riscv64 is not in the list of supported architectures. In the Launchpad build farm, we run a cluster of riscv64 virtual machines that deal with building riscv64 artifacts, including .debs for Ubuntu itself. We don't currently have hypervisor-capable riscv64 hardware to run these on, so we're using qemu system emulation..." /> <meta property="og:description" content="[Impact] Since the OpenStack Yoga release is possible to run emulated architectures ( https://docs.openstack.org/nova/latest/admin/hw-emulation-architecture.html ), although riscv64 is not in the list of supported architectures. In the Launchpad build farm, we run a cluster of riscv64 virtual machines that deal with building riscv64 artifacts, including .debs for Ubuntu itself. We don't currently have hypervisor-capable riscv64 hardware to run these on, so we're using qemu system emulation..." /> <meta property="og:title" content="Bug #2023211 “Run emulated riscv64 VMs on amd64” : Bugs : OpenStack Nova Compute Charm" /> <meta property="og:type" content="website" /> <meta property="og:image" content="/@@/launchpad-og-image.png" /> <meta property="og:url" content="https://bugs.launchpad.net/bugs/2023211" /> <meta property="og:site_name" content="Launchpad" /> <script type="text/javascript"> var LP = { cache: {}, links: {} }; </script> <script type="text/javascript">var cookie_scope = '; Path=/; Secure; Domain=.launchpad.net';</script> <script type="text/javascript" src="/+combo/rev22ade00ab50b929fac63b8ee7252243aceda294a/?yui/yui/yui-min.js&lp/meta.js&yui/loader/loader-min.js"></script> <script type="text/javascript"> var raw = null; if (LP.devmode) { raw = 'raw'; } YUI.GlobalConfig = { combine: true, comboBase: '/+combo/rev22ade00ab50b929fac63b8ee7252243aceda294a/?', root: 'yui/', filter: raw, debug: false, fetchCSS: false, maxURLLength: 2000, groups: { lp: { combine: true, base: '/+combo/rev22ade00ab50b929fac63b8ee7252243aceda294a/?lp/', comboBase: '/+combo/rev22ade00ab50b929fac63b8ee7252243aceda294a/?', root: 'lp/', // comes from including lp/meta.js modules: LP_MODULES, fetchCSS: false } } }</script> <script type="text/javascript"> // we need this to create a single YUI instance all events and code // talks across. All instances of YUI().use should be based off of // LPJS instead. var LPJS = new YUI(); </script> <script id="base-layout-load-scripts" type="text/javascript"> //<![CDATA[ LPJS.use('base', 'node', 'console', 'event', 'oop', 'lp', 'lp.app.foldables','lp.app.sorttable', 'lp.app.inlinehelp', 'lp.app.links', 'lp.bugs.bugtask_index', 'lp.bugs.subscribers', 'lp.app.ellipsis', 'lp.code.branchmergeproposal.diff', 'lp.views.global', function(Y) { Y.on("domready", function () { var global_view = new Y.lp.views.Global(); global_view.render(); Y.lp.app.sorttable.SortTable.init(); Y.lp.app.inlinehelp.init_help(); Y.lp.activate_collapsibles(); Y.lp.app.foldables.activate(); Y.lp.app.links.check_valid_lp_links(); }); Y.on('lp:context:web_link:changed', function(e) { window.location = e.new_value; }); }); //]]> </script> <script id="base-helper-functions" type="text/javascript"> //<![CDATA[ // This code is pulled from lp.js that needs to be available on every // request. Pulling here to get it outside the scope of the YUI block. function setFocusByName(name) { // Focus the first element matching the given name which can be focused. var nodes = document.getElementsByName(name); var i, node; for (i = 0; i < nodes.length; i++) { node = nodes[i]; if (node.focus) { try { // Trying to focus a hidden element throws an error in IE8. if (node.offsetHeight !== 0) { node.focus(); } } catch (e) { LPJS.use('console', function(Y) { Y.log('In setFocusByName(<' + node.tagName + ' type=' + node.type + '>): ' + e); }); } break; } } } function selectWidget(widget_name, event) { if (event && (event.keyCode === 9 || event.keyCode === 13)) { // Avoid firing if user is tabbing through or simply pressing // enter to submit the form. return; } document.getElementById(widget_name).checked = true; } //]]> </script> <script type="text/javascript" id="available-official-tags-js">var available_official_tags = ["a11y", "antelope-rc-potential", "api", "api-ref", "appstream", "availability-zones", "bionic", "bisect-done", "bitesize", "block-proposed", "block-proposed-focal", "block-proposed-jammy", "block-proposed-noble", "block-proposed-oracular", "bobcat-rc-potential", "cells", "ceph", "cherry-pick", "cinder", "community-security", "compute", "conductor", "config", "console", "cyborg", "dalmatian-rc-potential", "db", "desktop-file", "dist-upgrade", "doc", "ec2", "evacuate", "fault-injection", "fixed-upstream", "focal", "ftbfs", "gate-failure", "glance", "hw-specific", "hyper-v", "i18n", "image-cache", "in-stable-liberty", "in-stable-newton", "in-stable-ocata", "ironic", "jammy", "kernel-bug", "kilo-backport-potential", "liberty-backport-potential", "libvirt", "live-migration", "low-hanging-fruit", "lxc", "manpage", "metabug", "metadata", "mitaka-backport-potential", "multiarch", "multigpu", "multimonitor", "needs-attention", "needs-bisect", "needs-design", "needs-functional-test", "needs-packaging", "needs-reassignment", "needs.openstack-version", "network", "neutron", "newton-backport-potential", "nfs", "noble", "notifications", "nova-manage", "nova-network", "numa", "nvidia", "ocata-backport-potential", "openstack-version.grizzly", "openstack-version.havana", "openstack-version.icehouse", "openstack-version.juno", "openstack-version.kilo", "openstack-version.liberty", "openstack-version.mitaka", "openstack-version.newton", "openstack-version.ocata", "openstack-version.pike", "ops", "oracular", "oslo", "package-conflict", "packaging", "patch", "patch-accepted-debian", "patch-accepted-upstream", "patch-forwarded-debian", "patch-forwarded-upstream", "patch-needswork", "patch-rejected", "patch-rejected-debian", "patch-rejected-upstream", "pci", "performance", "performing-bisect", "pike-backport-potential", "placement", "plucky", "policy", "postgresql", "powervm", "privsep", "qt4-removal", "queens-backport-potential", "quotas", "race-condition", "rbac", "reboot", "rebuild", "regression-proposed", "regression-release", "regression-update", "rescue", "resize", "resource-tracker", "rfe", "rootwrap", "s390x", "scheduler", "sdk", "security", "security-groups", "serviceability", "shared-storage", "shelve", "snapshot", "stacktrace", "stein-rc-potential", "string-fix", "suspend-resume", "systemd-boot", "testcase", "testing", "train-rc-potential", "unified-objects", "unmetdeps", "update-excuse", "upgrade", "upgrade-software-version", "ussuri-backport-potential", "ussuri-rc-potential", "verification-done-bionic", "verification-done-focal", "verification-done-jammy", "verification-done-noble", "verification-done-oracular", "verification-failed-bionic", "verification-failed-jammy", "verification-needed-bionic", "verification-needed-focal", "verification-needed-jammy", "verification-needed-noble", "verification-needed-oracular", "vgpu", "victoria-rc-potential", "vmware", "volumes", "wallaby-rc-potential", "wayland", "xen", "xena-rc-potential", "xenserver", "yoga-rc-potential", "zed-rc-potential", "zvm"];</script> <script type="text/javascript"> LPJS.use('base', 'node', 'oop', 'event', 'lp.bugs.bugtask_index', 'lp.bugs.subscribers', 'lp.code.branchmergeproposal.diff', 'lp.app.comment', 'lp.services.messages.edit', function(Y) { Y.on('domready', function() { Y.lp.code.branchmergeproposal.diff.connect_diff_links(); Y.lp.bugs.bugtask_index.setup_bugtask_index(); Y.lp.bugs.bugtask_index.setup_bugtask_table(); LP.cache.comment_context = LP.cache.bug; var cl = new Y.lp.app.comment.CommentList(); cl.render(); var sl = new Y.lp.bugs.subscribers.createBugSubscribersLoader({ container_box: '#other-bug-subscribers', subscribers_details_view: '/+bug-portlet-subscribers-details', subscribe_someone_else_link: '.menu-link-addsubscriber' }, window); Y.lp.services.messages.edit.setup(); }); }); </script> <style type="text/css"> /* Align the 'add comment' link to the right of the comment box. */ #add-comment-form textarea { width: 100%; } #add-comment-form { max-width: 60em; padding-bottom: 4em; } #add-comment-form .actions {float: right;} .buglink-summary dd { font-size: 10px; } a#privacy-link:link:hover, a#privacy-link:visited:hover {text-decoration:none;} </style> <style type="text/css"> .yui3-overlay .value label { /* It normally makes sense for form labels to be bold, but since this form consists only of radio buttons, there's nothing but labels so we just get wall-to-wall bold. */ font-weight: normal !important; } </style> </head> <body id="document" itemscope="" itemtype="http://schema.org/WebPage" class="tab-bugs main_side public yui3-skin-sam"> <div class="yui-d0"> <div id="locationbar" class="login-logout"> <div id="logincontrol"><a href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+login">Log in / Register</a></div> </div><!--id="locationbar"--> <div id="watermark" class="watermark-apps-portlet"> <div> <a href="https://launchpad.net/charm-nova-compute"><img alt="" width="64" height="64" src="/@@/product-logo" /></a> </div> <div class="wide"> <h2 id="watermark-heading"><a href="https://launchpad.net/charm-nova-compute">OpenStack Nova Compute Charm</a></h2> </div> <!-- Application Menu --> <ul class="facetmenu"> <li class="overview"><a href="https://launchpad.net/charm-nova-compute">Overview</a></li> <li class="branches"><a href="https://code.launchpad.net/charm-nova-compute">Code</a></li> <li class="bugs active"><a href="https://bugs.launchpad.net/charm-nova-compute">Bugs</a></li> <li class="specifications"><a href="https://blueprints.launchpad.net/charm-nova-compute">Blueprints</a></li> <li class="translations"><a href="https://translations.launchpad.net/charm-nova-compute">Translations</a></li> <li class="answers"><a href="https://answers.launchpad.net/charm-nova-compute">Answers</a></li> </ul> </div> <div class="yui-t4"> <div id="maincontent" class="yui-main"> <div class="yui-b" dir="ltr"> <div class="context-publication"> <h1 id="edit-title"> <span class="yui3-editable_text-text ellipsis" style="max-width: 95%;"> Run emulated riscv64 VMs on amd64 </span> </h1> <div id="registration" class="registering"> Bug #2023211 reported by <a href="https://launchpad.net/~cjwatson" class="sprite person">Colin Watson</a> <time title="2023-06-07 15:35:28 UTC" datetime="2023-06-07T15:35:28.537101+00:00">on 2023-06-07</time> </div> </div> <div id="request-notifications"> </div> <div> <div id="bug-is-duplicate"> </div> <div style="float: right;"> <span><a href="/+help-bugs/bug-heat.html" target="help" class="sprite flame">20</a></span> </div> <div class="actions"> <span id="affectsmetoo" style="display: inline">This bug affects 2 people</span> </div> <table id="affected-software" class="listing"> <thead> <tr> <th colspan="2">Affects</th> <th>Status</th> <th>Importance</th> <th>Assigned to</th> <th>Milestone</th> </tr> </thead> <tbody> <tr id="tasksummary3054559"> <td> </td> <td> <span id="bugtarget-picker-tasksummary3054559"> <span class="yui3-activator-data-box"> <a class="sprite product" href="https://bugs.launchpad.net/nova">OpenStack Compute (nova)</a> </span> <div class="yui3-activator-message-box yui3-activator-hidden"></div> </span> </td> <td style="width: 20%; vertical-align: middle"> <div class="status-content" style="width: 100%; float: left"> <span style="float: left" class="value statusINPROGRESS">In Progress</span> </div> </td> <td style="width: 15em; vertical-align: middle"> <div class="importance-content" style="width: 100%; float: left"> <span style="float: left" class="value importanceUNDECIDED">Undecided</span> </div> </td> <td style="width:20%; margin: 0; padding: 0; vertical-align: middle; padding-left: 0.5em"> <span id="assignee-picker-tasksummary3054559"> <span class="yui3-activator-data-box"> <a class="sprite person" href="https://launchpad.net/~freyes">Felipe Reyes</a> </span> <div class="yui3-activator-message-box yui3-activator-hidden"></div> </span> </td> <td style="width: 20%; vertical-align: middle"> <div class="milestone-content" style="width: 100%; float: left"> <a class="value" href=""></a> </div> </td> </tr> <tr class="highlight" id="tasksummary3032581"> <td> </td> <td> <span id="bugtarget-picker-tasksummary3032581"> <span class="yui3-activator-data-box"> <a class="sprite product" href="https://bugs.launchpad.net/charm-nova-compute">OpenStack Nova Compute Charm</a> </span> <div class="yui3-activator-message-box yui3-activator-hidden"></div> </span> </td> <td style="width: 20%; vertical-align: middle"> <div class="status-content" style="width: 100%; float: left"> <span style="float: left" class="value statusINVALID">Invalid</span> </div> </td> <td style="width: 15em; vertical-align: middle"> <div class="importance-content" style="width: 100%; float: left"> <span style="float: left" class="value importanceUNDECIDED">Undecided</span> </div> </td> <td style="width:20%; margin: 0; padding: 0; vertical-align: middle; padding-left: 0.5em"> <span id="assignee-picker-tasksummary3032581"> <span class="yui3-activator-data-box"> Unassigned </span> <div class="yui3-activator-message-box yui3-activator-hidden"></div> </span> </td> <td style="width: 20%; vertical-align: middle"> <div class="milestone-content" style="width: 100%; float: left"> <a class="value" href=""></a> </div> </td> </tr> <tr id="tasksummary3054558"> <td> </td> <td> <span id="bugtarget-picker-tasksummary3054558"> <span class="yui3-activator-data-box"> <a class="sprite package-source" href="https://bugs.launchpad.net/ubuntu/+source/nova" title="Latest release: 2:21.2.4-0ubuntu2.14, uploaded to main on 2024-10-07 14:06:11.432196+00:00 by Rodrigo Barbieri (rodrigo-barbieri2010), maintained by Ubuntu Developers (ubuntu-devel-discuss-lists)">nova (Ubuntu)</a> </span> <div class="yui3-activator-message-box yui3-activator-hidden"></div> </span> </td> <td style="width: 20%; vertical-align: middle"> <div class="status-content" style="width: 100%; float: left"> <span style="float: left" class="value statusCONFIRMED">Confirmed</span> </div> </td> <td style="width: 15em; vertical-align: middle"> <div class="importance-content" style="width: 100%; float: left"> <span style="float: left" class="value importanceUNDECIDED">Undecided</span> </div> </td> <td style="width:20%; margin: 0; padding: 0; vertical-align: middle; padding-left: 0.5em"> <span id="assignee-picker-tasksummary3054558"> <span class="yui3-activator-data-box"> Unassigned </span> <div class="yui3-activator-message-box yui3-activator-hidden"></div> </span> </td> <td style="width: 20%; vertical-align: middle"> <div class="milestone-content" style="width: 100%; float: left"> <a class="value" href=""></a> </div> </td> </tr> </tbody> </table> <div id="maincontentsub"> <div class="top-portlet"> <div itemprop="mainContentOfPage" class="report"> <div> <div class="lazr-multiline-edit" id="edit-description"> <div class="clearfix"> <h3>Bug Description</h3> </div> <div class="yui3-editable_text-text"><p>[Impact]</p> <p>Since the OpenStack Yoga release is possible to run emulated architectures ( <a rel="nofollow" href="https://docs.openstack.org/nova/latest/admin/hw-emulation-architecture.html">https:/<wbr />/docs.openstack<wbr />.org/nova/<wbr />latest/<wbr />admin/hw-<wbr />emulation-<wbr />architecture.<wbr />html</a> ), although riscv64 is not in the list of supported architectures.</p> <p>In the Launchpad build farm, we run a cluster of riscv64 virtual machines that deal with building riscv64 artifacts, including .debs for Ubuntu itself. We don't currently have hypervisor-capable riscv64 hardware to run these on, so we're using qemu system emulation on commodity amd64 hardware. This works OK, but we currently do this in manually-configured libvirt instances; we'd much rather be able to do it on our internal OpenStack clouds.</p> <p>[Test Case]</p> <p> $ wget <a rel="nofollow" href="http://cloud-images.ubuntu.com/server/releases/jammy/release-20220420/ubuntu-22.04-server-cloudimg-riscv64.img">http://<wbr />cloud-images.<wbr />ubuntu.<wbr />com/server/<wbr />releases/<wbr />jammy/release-<wbr />20220420/<wbr />ubuntu-<wbr />22.04-server-<wbr />cloudimg-<wbr />riscv64.<wbr />img</a><br /> $ openstack image create --disk-format qcow2 --file ~cjwatson/<wbr />ubuntu-<wbr />22.04-server-<wbr />cloudimg-<wbr />riscv64.<wbr />img --private --property architecture=<wbr />riscv64 --property item_name=disk1.img --property os_distro=ubuntu --property os_version=22.04 cjwatson-<wbr />riscv64-<wbr />test<br /> $ openstack image set --property hw_emulation_<wbr />architecture=<wbr />riscv64 cjwatson-<wbr />riscv64-<wbr />test<br /> $ openstack image set --property hw_machine_<wbr />type=virt cjwatson-<wbr />riscv64-<wbr />test<br /> $ openstack server create --image cjwatson-<wbr />riscv64-<wbr />test --flavor vbuilder --network vbuilder_<wbr />staging_<wbr />test_net cjwatson-<wbr />riscv64-<wbr />test</p> <p>Expected result: the created instance reaches to ACTIVE state.</p> <p>Actual result: the "openstack server create" command fails with the following error message:<br /> Invalid image metadata. Error: Architecture name 'riscv64' is not valid (HTTP 400) (Request-ID: req-023932ea-<wbr />7c90-4be3-<wbr />89b8-6bd1971891<wbr />9a)</p> <p>This causes me to think that, even if I've left out some property or other (e.g. firmware), basic things like the riscv64 architecture name being valid aren't currently in place. But it's certainly possible I've got something wrong here. If there's a known way to make this work, could it please be documented?</p> <p>I've attached `virsh dumpxml` output from one of the manual libvirt instances we use at present, in case it's useful.</p></div> </div> </div> <div style="margin:-10px 0 20px 5px" class="clearfix"> <span>See <a href="comments/0">original description</a></span> </div> <div id="bug-tags"> <span id="tags-heading"> </span> <span id="tag-list"> </span> </div> <script type="text/javascript"> LPJS.use('event', 'node', 'lp.bugs.tags_entry', function(Y) { Y.on('domready', function(e) { Y.lp.bugs.tags_entry.setup_tag_entry( available_official_tags); }, window); }); </script> <div class="clearfix"></div> </div> <div id="branches-and-cves"> <div id="bug-branches-container" style="float: left"> </div><!-- bug-branch-container --> <div class="clearfix"></div> </div> <!-- branches and CVEs --> </div> <div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/1" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~cjwatson" class="sprite person">Colin Watson (cjwatson)</a> wrote <time itemprop="commentTime" datetime="2023-06-07T15:35:28.537101+00:00" title="2023-06-07 15:35:28 UTC">on 2023-06-07</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/1"> #1</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <ul style="margin-bottom: 1em"> <li class="download-attachment"> <a href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+attachment/5678472/+files/riscv64-qemu-lgw01-001.xml" class="sprite download-icon">virsh dumpxml</a> <a class="sprite edit action-icon" href="/charm-nova-compute/+bug/2023211/+attachment/5678472">Edit</a> (2.5 KiB, application/xml) </li> </ul> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10"></textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/2" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~freyes" class="sprite person">Felipe Reyes (freyes)</a> wrote <time itemprop="commentTime" datetime="2023-06-07T15:56:11.886183+00:00" title="2023-06-07 15:56:11 UTC">on 2023-06-07</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/2"> #2</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>We (OpenStack Engineering) need to identify if there are gaps in the support to run riscv64 emulation. The upstream documentation can be found at <a rel="nofollow" href="https://docs.openstack.org/nova/latest/admin/hw-emulation-architecture.html">https:/<wbr />/docs.openstack<wbr />.org/nova/<wbr />latest/<wbr />admin/hw-<wbr />emulation-<wbr />architecture.<wbr />html</a> , the support landed in Yoga. If no issues are found in the charm, we should asses if we can improve the charm-guide to assist operators on how to achieve this setup.</p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">We (OpenStack Engineering) need to identify if there are gaps in the support to run riscv64 emulation. The upstream documentation can be found at https://docs.openstack.org/nova/latest/admin/hw-emulation-architecture.html , the support landed in Yoga. If no issues are found in the charm, we should asses if we can improve the charm-guide to assist operators on how to achieve this setup.</textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/3" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~freyes" class="sprite person">Felipe Reyes (freyes)</a> wrote <time itemprop="commentTime" datetime="2023-06-24T04:19:05.758275+00:00" title="2023-06-24 04:19:05 UTC">on 2023-06-24</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/3"> #3</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>The issue here seems to be that the nova.objects.<wbr />fields.<wbr />Architecture class[0] doesn't have registered RISCV64, so the list defined in os-traits[1] doesn't seem to be enough to have support for an emulated architecture.</p> <p>Here I'm attaching a diff that can be used as a starting point.</p> <p>Reproducer:</p> <p>```<br /> test -f ubuntu-<wbr />22.04-server-<wbr />cloudimg-<wbr />riscv64.<wbr />img && wget <a rel="nofollow" href="http://cloud-images.ubuntu.com/server/releases/jammy/release-20220420/ubuntu-22.04-server-cloudimg-riscv64.img">http://<wbr />cloud-images.<wbr />ubuntu.<wbr />com/server/<wbr />releases/<wbr />jammy/release-<wbr />20220420/<wbr />ubuntu-<wbr />22.04-server-<wbr />cloudimg-<wbr />riscv64.<wbr />img</a><br /> openstack image create \<br /> --disk-format qcow2 \<br /> --file ./ubuntu-<wbr />22.04-server-<wbr />cloudimg-<wbr />riscv64.<wbr />img \<br /> --public \<br /> --property architecture=<wbr />riscv64 \<br /> --property item_name=disk1.img \<br /> --property os_distro=ubuntu \<br /> --property os_version=22.04 \<br /> riscv64-test<br /> openstack image set --property hw_emulation_<wbr />architecture=<wbr />riscv64 riscv64-test<br /> openstack image set --property hw_machine_<wbr />type=virt riscv64-test<br /> openstack server create \<br /> --image riscv64-test \<br /> --network freyes_admin_net \<br /> --flavor m1.medium \<br /> --key-name freyes \<br /> my-riscv64-test<br /> ```</p> <p>Output:</p> <p>```<br /> Invalid image metadata. Error: Architecture name 'riscv64' is not valid (HTTP 400) (Request-ID: req-7a2d48d1-<wbr />4457-40fc-<wbr />b26a-7906ce9295<wbr />32)<br /> ```</p> <p>In the logs:</p> <p>```<br /> 2023-06-24 03:32:43.912 2238785 INFO nova.api.<wbr />openstack.<wbr />wsgi [req-7a2d48d1-<wbr />4457-40fc-<wbr />b26a-7906ce9295<wbr />32 a3ee17ed103a4cb<wbr />babdb215d9dca04<wbr />82 - - 1bf127c9b631435<wbr />984600ac72fa537<wbr />4f 1bf127c9b631435<wbr />984600ac72fa537<wbr />4f] HTTP exception thrown: Invalid image metadata. Error: Architecture name 'riscv64' is not valid<br /> 2023-06-24 03:32:43.913 2238785 DEBUG nova.api.<wbr />openstack.<wbr />wsgi [req-7a2d48d1-<wbr />4457-40fc-<wbr />b26a-7906ce9295<wbr />32 a3ee17ed103a4cb<wbr />babdb215d9dca04<wbr />82 - - 1bf127c9b631435<wbr />984600ac72fa537<wbr />4f 1bf127c9b631435<wbr />984600ac72fa537<wbr />4f] Returning 400 to user: Invalid image metadata. Error: Architecture name 'riscv64' is not valid __call__ /usr/lib/<wbr />python3/<wbr />dist-packages/<wbr />nova/api/<wbr />openstack/<wbr />wsgi.py:<wbr />936<br /> ```</p> <p>[0] <a rel="nofollow" href="https://opendev.org/openstack/nova/src/branch/master/nova/objects/fields.py#L120">https:/<wbr />/opendev.<wbr />org/openstack/<wbr />nova/src/<wbr />branch/<wbr />master/<wbr />nova/objects/<wbr />fields.<wbr />py#L120</a><br /> [1] <a rel="nofollow" href="https://opendev.org/openstack/os-traits/src/branch/master/os_traits/compute/arch.py">https:/<wbr />/opendev.<wbr />org/openstack/<wbr />os-traits/<wbr />src/branch/<wbr />master/<wbr />os_traits/<wbr />compute/<wbr />arch.py</a></p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">The issue here seems to be that the nova.objects.fields.Architecture class[0] doesn't have registered RISCV64, so the list defined in os-traits[1] doesn't seem to be enough to have support for an emulated architecture. Here I'm attaching a diff that can be used as a starting point. Reproducer: ``` test -f ubuntu-22.04-server-cloudimg-riscv64.img && wget http://cloud-images.ubuntu.com/server/releases/jammy/release-20220420/ubuntu-22.04-server-cloudimg-riscv64.img openstack image create \ --disk-format qcow2 \ --file ./ubuntu-22.04-server-cloudimg-riscv64.img \ --public \ --property architecture=riscv64 \ --property item_name=disk1.img \ --property os_distro=ubuntu \ --property os_version=22.04 \ riscv64-test openstack image set --property hw_emulation_architecture=riscv64 riscv64-test openstack image set --property hw_machine_type=virt riscv64-test openstack server create \ --image riscv64-test \ --network freyes_admin_net \ --flavor m1.medium \ --key-name freyes \ my-riscv64-test ``` Output: ``` Invalid image metadata. Error: Architecture name 'riscv64' is not valid (HTTP 400) (Request-ID: req-7a2d48d1-4457-40fc-b26a-7906ce929532) ``` In the logs: ``` 2023-06-24 03:32:43.912 2238785 INFO nova.api.openstack.wsgi [req-7a2d48d1-4457-40fc-b26a-7906ce929532 a3ee17ed103a4cbbabdb215d9dca0482 - - 1bf127c9b631435984600ac72fa5374f 1bf127c9b631435984600ac72fa5374f] HTTP exception thrown: Invalid image metadata. Error: Architecture name 'riscv64' is not valid 2023-06-24 03:32:43.913 2238785 DEBUG nova.api.openstack.wsgi [req-7a2d48d1-4457-40fc-b26a-7906ce929532 a3ee17ed103a4cbbabdb215d9dca0482 - - 1bf127c9b631435984600ac72fa5374f 1bf127c9b631435984600ac72fa5374f] Returning 400 to user: Invalid image metadata. Error: Architecture name 'riscv64' is not valid __call__ /usr/lib/python3/dist-packages/nova/api/openstack/wsgi.py:936 ``` [0] https://opendev.org/openstack/nova/src/branch/master/nova/objects/fields.py#L120 [1] https://opendev.org/openstack/os-traits/src/branch/master/os_traits/compute/arch.py</textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/4" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~freyes" class="sprite person">Felipe Reyes (freyes)</a> wrote <time itemprop="commentTime" datetime="2023-06-24T04:19:37.329211+00:00" title="2023-06-24 04:19:37 UTC">on 2023-06-24</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/4"> #4</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <ul style="margin-bottom: 1em"> <li class="download-attachment"> <a href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+attachment/5681715/+files/riscv64.diff" class="sprite download-icon">riscv64.diff</a> <a class="sprite edit action-icon" href="/charm-nova-compute/+bug/2023211/+attachment/5681715">Edit</a> (988 bytes, text/plain) </li> </ul> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10"></textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> <div class="boardCommentActivity"> <table class="bug-activity"> <tr> <td colspan="2">Changed in charm-nova-compute: </td> </tr> <tr> <td style="text-align: right;"> <b>status</b>: </td> <td> New → Triaged </td> </tr> </table> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/5" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~freyes" class="sprite person">Felipe Reyes (freyes)</a> wrote <time itemprop="commentTime" datetime="2023-07-20T14:56:00.948083+00:00" title="2023-07-20 14:56:00 UTC">on 2023-07-20</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/5"> #5</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <ul style="margin-bottom: 1em"> <li class="download-attachment"> <a href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+attachment/5687468/+files/riscv64-test-vm-generated-by-nova.xml" class="sprite download-icon">riscv64-test-vm-generated-by-nova.xml</a> <a class="sprite edit action-icon" href="/charm-nova-compute/+bug/2023211/+attachment/5687468">Edit</a> (5.0 KiB, application/xml) </li> </ul> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>When using the patch available in comment #4 in a devstack environment the validation passes allowing the creation of a riscv64 instance, although the XML produced by Nova is rejected by libvirt with the following error:</p> <p>ERROR nova.virt.<wbr />libvirt.<wbr />guest [None req-3910b77d-<wbr />daf6-43fd-<wbr />970d-a0989f3d72<wbr />d1 demo admin] Error launching a defined domain with XML: [...]<br /> Jul 20 14:45:20 green nova-compute[<wbr />144096]<wbr />: : libvirt.<wbr />libvirtError: this function is not supported by the connection driver: 'riscv64' architecture is not supported by CPU driver</p> <p>The attachment contains the generated XML by Nova.</p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">When using the patch available in comment #4 in a devstack environment the validation passes allowing the creation of a riscv64 instance, although the XML produced by Nova is rejected by libvirt with the following error: ERROR nova.virt.libvirt.guest [None req-3910b77d-daf6-43fd-970d-a0989f3d72d1 demo admin] Error launching a defined domain with XML: [...] Jul 20 14:45:20 green nova-compute[144096]: : libvirt.libvirtError: this function is not supported by the connection driver: 'riscv64' architecture is not supported by CPU driver The attachment contains the generated XML by Nova.</textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/6" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~cjwatson" class="sprite person">Colin Watson (cjwatson)</a> wrote <time itemprop="commentTime" datetime="2023-07-20T15:28:59.821816+00:00" title="2023-07-20 15:28:59 UTC">on 2023-07-20</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/6"> #6</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>Does your libvirt version have <a rel="nofollow" href="https://gitlab.com/libvirt/libvirt/-/commit/fd70335876">https:/<wbr />/gitlab.<wbr />com/libvirt/<wbr />libvirt/<wbr />-/commit/<wbr />fd70335876</a> in it, i.e. 9.1.0-rc1 or better?</p> <p>(Oddly, we get by with a much older libvirt right now; but I wonder if there were some bad versions in between.)</p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">Does your libvirt version have https://gitlab.com/libvirt/libvirt/-/commit/fd70335876 in it, i.e. 9.1.0-rc1 or better? (Oddly, we get by with a much older libvirt right now; but I wonder if there were some bad versions in between.)</textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/7" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~cjwatson" class="sprite person">Colin Watson (cjwatson)</a> wrote <time itemprop="commentTime" datetime="2023-07-20T15:42:58.641740+00:00" title="2023-07-20 15:42:58 UTC">on 2023-07-20</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/7"> #7</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>Also, I could be wrong, but I don't know whether that's going to get very far without passing firmware arguments to qemu. See <qemu:commandline/> in the XML I attached.</p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">Also, I could be wrong, but I don't know whether that's going to get very far without passing firmware arguments to qemu. See <qemu:commandline/> in the XML I attached.</textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/8" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~freyes" class="sprite person">Felipe Reyes (freyes)</a> wrote <time itemprop="commentTime" datetime="2023-07-20T18:47:50+00:00" title="2023-07-20 18:47:50 UTC">on 2023-07-20</time><span class="editable-message-last-edit-date">: </span> <a href="/charm-nova-compute/+bug/2023211/comments/8"> <strong>Re: [Bug 2023211] Re: Run emulated riscv64 VMs on amd64</strong> </a> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/8"> #8</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>I have a newer patch that allowed me to create an instance, although it seems to not successfully<br /> boot, I'm investigating that issue now.</p> <p>$ openstack server list</p> <p>+------<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />----+--<wbr />-------<wbr />-------<wbr />-+-----<wbr />---+---<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />--<br /> -------<wbr />-------<wbr />-------<wbr />--+----<wbr />-------<wbr />---+---<wbr />-------<wbr />+<br /> <span class="foldable-quoted"> | ID | Name | Status | Networks<br /> | Image | Flavor |<br /> </span> +------<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />----+--<wbr />-------<wbr />-------<wbr />-+-----<wbr />---+---<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />--<br /> -------<wbr />-------<wbr />-------<wbr />--+----<wbr />-------<wbr />---+---<wbr />-------<wbr />+<br /> <span class="foldable-quoted"> | 51d815d0-<wbr />a0c2-4a9e-<wbr />93ab-26aed2df74<wbr />6f | my-riscv64-test | ACTIVE | private=10.0.0.13,<br /> </span> fd60:1406:<wbr />b51:0:f816:<wbr />3eff:fee7:<wbr />b4b7 | riscv64-test | m1.small |<br /> +------<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />----+--<wbr />-------<wbr />-------<wbr />-+-----<wbr />---+---<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />--<br /> -------<wbr />-------<wbr />-------<wbr />--+----<wbr />-------<wbr />---+---<wbr />-------<wbr />+<br /> $ openstack console log show my-riscv64-test</p> <p>OpenSBI v0.9<br /> ____ _____ ____ _____<br /> / __ \ / ____| _ \_ _|<br /> | | | |_ __ ___ _ __ | (___ | |_) || |<br /> | | | | '_ \ / _ \ '_ \ \___ \| _ < | |<br /> | |__| | |_) | __/ | | |____) | |_) || |_<br /> \____/| .__/ \___|_| |_|____<wbr />_/|____<wbr />/_____|<br /> | |<br /> |_|</p> <p>Platform Name : riscv-virtio,qemu<br /> Platform Features : timer,mfdeleg<br /> Platform HART Count : 1<br /> Firmware Base : 0x80000000<br /> Firmware Size : 100 KB<br /> Runtime SBI Version : 0.2</p> <p>Domain0 Name : root<br /> Domain0 Boot HART : 0<br /> Domain0 HARTs : 0*<br /> Domain0 Region00 : 0x0000000080000<wbr />000-0x000000008<wbr />001ffff ()<br /> Domain0 Region01 : 0x0000000000000<wbr />000-0xfffffffff<wbr />fffffff (R,W,X)<br /> Domain0 Next Address : 0x0000000000000000<br /> Domain0 Next Arg1 : 0x00000000bf000000<br /> Domain0 Next Mode : S-mode<br /> Domain0 SysReset : yes</p> <p>Boot HART ID : 0<br /> Boot HART Domain : root<br /> Boot HART ISA : rv64imafdcsu<br /> Boot HART Features : scounteren,<wbr />mcounteren,<wbr />time<br /> Boot HART PMP Count : 16<br /> Boot HART PMP Granularity : 4<br /> Boot HART PMP Address Bits: 54<br /> Boot HART MHPM Count : 0<br /> Boot HART MHPM Count : 0<br /> Boot HART MIDELEG : 0x0000000000000222<br /> Boot HART MEDELEG : 0x000000000000b109<br /> $ sudo virsh list --all<br /> Id Name State<br /> -------<wbr />-------<wbr />-------<wbr />-------<wbr />-------<br /> 1 instance-00000002 running</p> <p>$ sudo virsh dumpxml instance-00000002 | pastebinit<br /> <a rel="nofollow" href="https://paste.ubuntu.com/p/Bn2YBHP2HJ/">https:/<wbr />/paste.<wbr />ubuntu.<wbr />com/p/Bn2YBHP2H<wbr />J/</a></p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">I have a newer patch that allowed me to create an instance, although it seems to not successfully boot, I'm investigating that issue now. $ openstack server list +--------------------------------------+-----------------+--------+--------------------------------- -----------------------+--------------+----------+ | ID | Name | Status | Networks | Image | Flavor | +--------------------------------------+-----------------+--------+--------------------------------- -----------------------+--------------+----------+ | 51d815d0-a0c2-4a9e-93ab-26aed2df746f | my-riscv64-test | ACTIVE | private=10.0.0.13, fd60:1406:b51:0:f816:3eff:fee7:b4b7 | riscv64-test | m1.small | +--------------------------------------+-----------------+--------+--------------------------------- -----------------------+--------------+----------+ $ openstack console log show my-riscv64-test OpenSBI v0.9 ____ _____ ____ _____ / __ \ / ____| _ \_ _| | | | |_ __ ___ _ __ | (___ | |_) || | | | | | '_ \ / _ \ '_ \ \___ \| _ < | | | |__| | |_) | __/ | | |____) | |_) || |_ \____/| .__/ \___|_| |_|_____/|____/_____| | | |_| Platform Name : riscv-virtio,qemu Platform Features : timer,mfdeleg Platform HART Count : 1 Firmware Base : 0x80000000 Firmware Size : 100 KB Runtime SBI Version : 0.2 Domain0 Name : root Domain0 Boot HART : 0 Domain0 HARTs : 0* Domain0 Region00 : 0x0000000080000000-0x000000008001ffff () Domain0 Region01 : 0x0000000000000000-0xffffffffffffffff (R,W,X) Domain0 Next Address : 0x0000000000000000 Domain0 Next Arg1 : 0x00000000bf000000 Domain0 Next Mode : S-mode Domain0 SysReset : yes Boot HART ID : 0 Boot HART Domain : root Boot HART ISA : rv64imafdcsu Boot HART Features : scounteren,mcounteren,time Boot HART PMP Count : 16 Boot HART PMP Granularity : 4 Boot HART PMP Address Bits: 54 Boot HART MHPM Count : 0 Boot HART MHPM Count : 0 Boot HART MIDELEG : 0x0000000000000222 Boot HART MEDELEG : 0x000000000000b109 $ sudo virsh list --all Id Name State ----------------------------------- 1 instance-00000002 running $ sudo virsh dumpxml instance-00000002 | pastebinit https://paste.ubuntu.com/p/Bn2YBHP2HJ/ </textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/9" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~freyes" class="sprite person">Felipe Reyes (freyes)</a> wrote <time itemprop="commentTime" datetime="2023-07-20T18:50:53+00:00" title="2023-07-20 18:50:53 UTC">on 2023-07-20</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/9"> #9</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>On Thu, 2023-07-20 at 15:28 +0000, Colin Watson wrote:<br /> <span class="foldable-quoted"> > Does your libvirt version have<br /> > <a rel="nofollow" href="https://gitlab.com/libvirt/libvirt/-/commit/fd70335876">https:/<wbr />/gitlab.<wbr />com/libvirt/<wbr />libvirt/<wbr />-/commit/<wbr />fd70335876</a> in it, i.e.<br /> > 9.1.0-rc1 or better?<br /> > </span></p> <p>I made it work making Nova to *not* set the <cpu></cpu> node in the generated XML, this made libvirt<br /> happy. This is what Nova does for MIPSEL which suffers from the same limitation on the libvirt side.</p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">On Thu, 2023-07-20 at 15:28 +0000, Colin Watson wrote: > Does your libvirt version have > https://gitlab.com/libvirt/libvirt/-/commit/fd70335876 in it, i.e. > 9.1.0-rc1 or better? > I made it work making Nova to *not* set the <cpu></cpu> node in the generated XML, this made libvirt happy. This is what Nova does for MIPSEL which suffers from the same limitation on the libvirt side.</textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/10" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~freyes" class="sprite person">Felipe Reyes (freyes)</a> wrote <time itemprop="commentTime" datetime="2023-07-20T20:25:26.866497+00:00" title="2023-07-20 20:25:26 UTC">on 2023-07-20</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/10"> #10</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>Here it's the console log for an instance that booted successfully. The missing part of the puzzle was to define a kernel image, specifically the image that comes with the u-boot-qemu package.</p> <p>$ openstack image create qemu-riscv64-uboot --public --disk-format aki --container-format aki --file /usr/lib/<wbr />u-boot/<wbr />qemu-riscv64_<wbr />smode/uboot.<wbr />elf<br /> $ openstack image set --property kernel_<wbr />id=$(openstack image show -c id -f value qemu-riscv64-uboot) riscv64-test<br /> $ openstack server create ...<br /> [...]<br /> $ openstack console log show my-riscv64-test | grep cloud-init<br /> [ 266.351641] cloud-init[533]: Cloud-init v. 22.1-14-<wbr />g2e17a0d6-<wbr />0ubuntu1~<wbr />22.04.5 running 'init' at Thu, 20 Jul 2023 20:11:05 +0000. Up 261.24 seconds.<br /> [ 268.797660] cloud-init[533]: ci-info: +++++++<wbr />+++++++<wbr />+++++++<wbr />+++++++<wbr />+++++++<wbr />+++++++<wbr />+++Net device info+++<wbr />+++++++<wbr />+++++++<wbr />+++++++<wbr />+++++++<wbr />+++++++<wbr />+++++++<br /> [ 268.828670] cloud-init[533]: ci-info: +------<wbr />--+----<wbr />--+----<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />-+-----<wbr />-------<wbr />-----+-<wbr />-------<wbr />+------<wbr />-------<wbr />------+<br /> [ 268.845621] cloud-init[533]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address |<br /> [ 268.862611] cloud-init[533]: ci-info: +------<wbr />--+----<wbr />--+----<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />-+-----<wbr />-------<wbr />-----+-<wbr />-------<wbr />+------<wbr />-------<wbr />------+<br /> [ 268.879394] cloud-init[533]: ci-info: | enp1s0 | True | 10.0.0.15 | 255.255.255.192 | global | fa:16:3e:bb:91:35 |<br /> [ 268.909649] cloud-init[533]: ci-info: | enp1s0 | True | fd60:1406:<wbr />b51:0:f816:<wbr />3eff:febb:<wbr />9135/64 | . | global | fa:16:3e:bb:91:35 |<br /> [ 268.926517] cloud-init[533]: ci-info: | enp1s0 | True | fe80::f816:<wbr />3eff:febb:<wbr />9135/64 | . | link | fa:16:3e:bb:91:35 |<br /> [ 268.944076] cloud-init[533]: ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | host | . |<br /> [ 268.973753] cloud-init[533]: ci-info: | lo | True | ::1/128 | . | host | . |<br /> [ 268.979713] cloud-init[533]: ci-info: +------<wbr />--+----<wbr />--+----<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />-------<wbr />-+-----<wbr />-------<wbr />-----+-<wbr />-------<wbr />+------<wbr />-------<wbr />------+</p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">Here it's the console log for an instance that booted successfully. The missing part of the puzzle was to define a kernel image, specifically the image that comes with the u-boot-qemu package. $ openstack image create qemu-riscv64-uboot --public --disk-format aki --container-format aki --file /usr/lib/u-boot/qemu-riscv64_smode/uboot.elf $ openstack image set --property kernel_id=$(openstack image show -c id -f value qemu-riscv64-uboot) riscv64-test $ openstack server create ... [...] $ openstack console log show my-riscv64-test | grep cloud-init [ 266.351641] cloud-init[533]: Cloud-init v. 22.1-14-g2e17a0d6-0ubuntu1~22.04.5 running 'init' at Thu, 20 Jul 2023 20:11:05 +0000. Up 261.24 seconds. [ 268.797660] cloud-init[533]: ci-info: +++++++++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++++++++ [ 268.828670] cloud-init[533]: ci-info: +--------+------+----------------------------------------+-----------------+--------+-------------------+ [ 268.845621] cloud-init[533]: ci-info: | Device | Up | Address | Mask | Scope | Hw-Address | [ 268.862611] cloud-init[533]: ci-info: +--------+------+----------------------------------------+-----------------+--------+-------------------+ [ 268.879394] cloud-init[533]: ci-info: | enp1s0 | True | 10.0.0.15 | 255.255.255.192 | global | fa:16:3e:bb:91:35 | [ 268.909649] cloud-init[533]: ci-info: | enp1s0 | True | fd60:1406:b51:0:f816:3eff:febb:9135/64 | . | global | fa:16:3e:bb:91:35 | [ 268.926517] cloud-init[533]: ci-info: | enp1s0 | True | fe80::f816:3eff:febb:9135/64 | . | link | fa:16:3e:bb:91:35 | [ 268.944076] cloud-init[533]: ci-info: | lo | True | 127.0.0.1 | 255.0.0.0 | host | . | [ 268.973753] cloud-init[533]: ci-info: | lo | True | ::1/128 | . | host | . | [ 268.979713] cloud-init[533]: ci-info: +--------+------+----------------------------------------+-----------------+--------+-------------------+</textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div class="boardComment"> <div class="boardCommentDetails"> <a href="https://launchpad.net/~freyes" class="sprite person">Felipe Reyes (freyes)</a> <time title="2023-07-20 20:55:07 UTC" datetime="2023-07-20T20:55:07.459689+00:00">on 2023-07-20</time> </div> <div class="boardCommentActivity"> <table class="bug-activity"> <tr> <td style="text-align: right;"> <b>description</b>: </td> <td> updated </td> </tr> <tr> <td colspan="2">Changed in charm-nova-compute: </td> </tr> <tr> <td style="text-align: right;"> <b>status</b>: </td> <td> Triaged → Invalid </td> </tr> <tr> <td colspan="2">Changed in nova: </td> </tr> <tr> <td style="text-align: right;"> <b>assignee</b>: </td> <td> nobody → Felipe Reyes (freyes) </td> </tr> </table> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/11" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~janitor" class="sprite person-inactive">Launchpad Janitor (janitor)</a> wrote <time itemprop="commentTime" datetime="2023-07-25T07:53:27.293687+00:00" title="2023-07-25 07:53:27 UTC">on 2023-07-25</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/11"> #11</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>Status changed to 'Confirmed' because the bug affects multiple users.</p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">Status changed to 'Confirmed' because the bug affects multiple users.</textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> <div class="boardCommentActivity"> <table class="bug-activity"> <tr> <td colspan="2">Changed in nova (Ubuntu): </td> </tr> <tr> <td style="text-align: right;"> <b>status</b>: </td> <td> New → Confirmed </td> </tr> </table> </div> </div> <div class="boardComment"> <div class="boardCommentDetails"> <a href="https://launchpad.net/~hudson-openstack" class="sprite person">OpenStack Infra (hudson-openstack)</a> <time title="2023-08-09 12:18:58 UTC" datetime="2023-08-09T12:18:58.045906+00:00">on 2023-08-09</time> </div> <div class="boardCommentActivity"> <table class="bug-activity"> <tr> <td colspan="2">Changed in nova: </td> </tr> <tr> <td style="text-align: right;"> <b>status</b>: </td> <td> New → In Progress </td> </tr> </table> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/12" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~axino" class="sprite person">Junien F (axino)</a> wrote <time itemprop="commentTime" datetime="2023-10-03T19:18:07.462935+00:00" title="2023-10-03 19:18:07 UTC">on 2023-10-03</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/12"> #12</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>Update : we installed a patched version of nova packages provided by @freyes (via a PPA) on PS6, and we're able to successfully create RISC-V instances after some image manipulation.</p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">Update : we installed a patched version of nova packages provided by @freyes (via a PPA) on PS6, and we're able to successfully create RISC-V instances after some image manipulation.</textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/13" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~ken-vandine" class="sprite person">Ken VanDine (ken-vandine)</a> wrote <time itemprop="commentTime" datetime="2024-07-12T07:58:28.923839+00:00" title="2024-07-12 07:58:28 UTC">on 2024-07-12</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/13"> #13</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p>What's the next step to be able to take advantage of this for risc-v builds? This is currently blocking getting the gnome snaps built for risc-v.</p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">What's the next step to be able to take advantage of this for risc-v builds? This is currently blocking getting the gnome snaps built for risc-v.</textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div xmlns="http://www.w3.org/1999/xhtml" itemscope="" itemtype="http://schema.org/UserComments" class="boardComment editable-message " data-baseurl="/charm-nova-compute/+bug/2023211/comments/14" data-i-can-edit="False"> <div class="boardCommentDetails"> <div class="message-revision-container"> <div class="message-revision-container-header"> <span>Revision history for this message</span> <img src="/+icing/build/overlay/assets/skins/sam/images/close.gif" class="message-revision-close" /> </div> <script type="text/template"> <div class='message-revision-item'> <div class='message-revision-title'> <a class="sprite remove action-icon message-revision-del-btn"> Remove </a> <a class="js-action"> Revision #{revision}, created at {date_created_display} </a> </div> <div class='message-revision-body'>{content}</div> </div> </script> <div class="message-revision-list"></div> </div> <table> <tbody> <tr> <td> <a href="https://launchpad.net/~xypron" class="sprite person">Heinrich Schuchardt (xypron)</a> wrote <time itemprop="commentTime" datetime="2024-07-12T09:03:43.578415+00:00" title="2024-07-12 09:03:43 UTC">on 2024-07-12</time><span class="editable-message-last-edit-date">: </span> </td> <td> </td> <td> </td> <td class="bug-comment-index"> <a itemprop="url" href="/charm-nova-compute/+bug/2023211/comments/14"> #14</a> </td> </tr> </tbody> </table> </div> <div class="boardCommentBody"> <div class="editable-message-body"> <div class="comment-text editable-message-text" itemprop="commentText"><p><a rel="nofollow" href="https://launchpadlibrarian.net/738964327/buildlog_snap_ubuntu_jammy_riscv64_gnome-42-2204-sdk_BUILDING.txt.gz">https:/<wbr />/launchpadlibra<wbr />rian.net/<wbr />738964327/<wbr />buildlog_<wbr />snap_ubuntu_<wbr />jammy_riscv64_<wbr />gnome-42-<wbr />2204-sdk_<wbr />BUILDING.<wbr />txt.gz</a><br /> shows an error<br /> websocket: close 1006 (abnormal closure): unexpected EOF</p> <p>This occurred in the build phase while building gtk4.</p> <p>We know that the network proxy invalidates the access token after a few hours. Does gtk4 building require internet, e.g. for downloading according to subproject/*.wrap?</p></div> </div> <div class="editable-message-form" style="display: none"> <textarea style="width: 100%" rows="10">https://launchpadlibrarian.net/738964327/buildlog_snap_ubuntu_jammy_riscv64_gnome-42-2204-sdk_BUILDING.txt.gz shows an error websocket: close 1006 (abnormal closure): unexpected EOF This occurred in the build phase while building gtk4. We know that the network proxy invalidates the access token after a few hours. Does gtk4 building require internet, e.g. for downloading according to subproject/*.wrap? </textarea> <input type="button" value="Update" class="editable-message-update-btn" /> <input type="button" value="Cancel" class="editable-message-cancel-btn" /> </div> </div> </div> <div style="float: right;"> <a class="menu-link-activitylog" href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+activity">See full activity log</a> </div> <div class="clearfix"></div> <div align="center" id="add-comment-login-first"> To post a comment you must <a href="+login?comments=all">log in</a>. </div> </div><!-- class="top-portlet" --> </div><!--- id="maincontentsub"--> <div> <div id="duplicate-form-container"></div> <div id="privacy-form-container"></div> </div> </div> </div><!-- yui-b --> </div><!-- yui-main --> <div id="side-portlets" class="yui-b side"> <div id="involvement" class="portlet"> <ul class="involvement"> <li class="single"> <a class="sprite bugs" href="/charm-nova-compute/+filebug"> Report a bug </a> </li> </ul> </div> <div id="privacy" class="first portlet public"> <div id="privacy-text"> <span id="information-type-summary" class="sprite public">This report contains <strong id="information-type">Public</strong> information </span> <div id="information-type-description" style="padding-top: 5px">Everyone can see this information. </div> </div> </div> <div id="portlet-actions" class="portlet vertical"> <ul id="duplicate-actions"> </ul> <ul id="lock-status-actions"> </ul> </div> <div class="portlet vertical" id="portlet-subscription"> <div class="section"> <div id="current_user_subscription" class="False"> <span>You are</span> <a class="menu-link-subscription sprite modify edit" href="/charm-nova-compute/+bug/2023211/+subscribe"> not directly subscribed to this bug's notifications. </a> </div> <div id="sub-unsub-spinner">Subscribing...</div> <ul> <li><a class="menu-link-editsubscriptions sprite modify edit" href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+subscriptions" title="View and change your subscriptions to this bug">Edit bug mail</a></li> </ul> </div> <script type="text/javascript"> LPJS.use('io-base', 'node', 'lp.bugs.bugtask_index.portlets.subscription', function(Y) { Y.on('domready', function() { Y.lp.bugs.bugtask_index.portlets.subscription.initialize(); }); }); </script> </div> <div class="portlet vertical" id="portlet-subscribers"> <h2>Other bug subscribers</h2> <div> <div><a class="menu-link-addsubscriber sprite add" href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+addsubscriber" title="Launchpad will email that person whenever this bugs changes">Subscribe someone else</a></div> </div> <div id="other-bug-subscribers"></div> </div> <div class="portlet" id="portlet-attachments"> <h2>Bug attachments</h2> <ul> <li class="download-attachment"> <a href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+attachment/5678472/+files/riscv64-qemu-lgw01-001.xml" class="sprite download-icon">virsh dumpxml</a> <a class="sprite edit action-icon" title="Change attachment details" href="/charm-nova-compute/+bug/2023211/+attachment/5678472">Edit</a> </li> <li class="download-attachment"> <a href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+attachment/5681715/+files/riscv64.diff" class="sprite download-icon">riscv64.diff</a> <a class="sprite edit action-icon" title="Change attachment details" href="/charm-nova-compute/+bug/2023211/+attachment/5681715">Edit</a> </li> <li class="download-attachment"> <a href="https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+attachment/5687468/+files/riscv64-test-vm-generated-by-nova.xml" class="sprite download-icon">riscv64-test-vm-generated-by-nova.xml</a> <a class="sprite edit action-icon" title="Change attachment details" href="/charm-nova-compute/+bug/2023211/+attachment/5687468">Edit</a> </li> </ul> <ul> <li> <a class="sprite add" href="/charm-nova-compute/+bug/2023211/+addcomment">Add attachment</a> </li> </ul> </div> <div class="portlet" id="portlet-watches"> <h2>Remote bug watches</h2> <ul> </ul> <p>Bug watches keep track of this bug in other bug trackers.</p> </div> </div><!-- yui-b side --> </div><!-- yui-t4 --> <div id="footer" class="footer"> <div class="lp-arcana"> <div class="lp-branding"> <a href="https://launchpad.net/"><img src="/@@/launchpad-footer-logo.svg" alt="Launchpad" width="65" height="18" /></a> • <a href="https://launchpad.net/+tour">Take the tour</a> • <a href="https://help.launchpad.net/">Read the guide</a> <form id="globalsearch" method="get" accept-charset="UTF-8" action="https://launchpad.net/+search"> <input type="search" id="search-text" name="field.text" /> <input type="image" src="/@@/search" style="vertical-align:5%" alt="Search Launchpad" /> </form> </div> </div> <div class="colophon"> © 2004 <a href="http://canonical.com/">Canonical Ltd.</a> • <a href="https://launchpad.net/legal">Terms of use</a> • <a href="https://www.ubuntu.com/legal/dataprivacy">Data privacy</a> • <a href="/feedback">Contact Launchpad Support</a> • <a href="http://blog.launchpad.net/">Blog</a> • <a href="https://canonical.com/careers">Careers</a> • <a href="https://ubuntu.social/@launchpadstatus">System status</a> <span id="lp-version"> • 22ade00 (<a href="https://dev.launchpad.net/">Get the code!</a>) </span> </div> </div> </div><!-- yui-d0--> <script id="json-cache-script">LP.cache = {"related_features": {}, "bug": {"self_link": "https://bugs.launchpad.net/api/devel/bugs/2023211", "web_link": "https://bugs.launchpad.net/bugs/2023211", "resource_type_link": "https://bugs.launchpad.net/api/devel/#bug", "id": 2023211, "private": false, "information_type": "Public", "name": null, "title": "Run emulated riscv64 VMs on amd64", "description": "[Impact]\n\nSince the OpenStack Yoga release is possible to run emulated architectures ( https://docs.openstack.org/nova/latest/admin/hw-emulation-architecture.html ), although riscv64 is not in the list of supported architectures.\n\nIn the Launchpad build farm, we run a cluster of riscv64 virtual machines that deal with building riscv64 artifacts, including .debs for Ubuntu itself. We don't currently have hypervisor-capable riscv64 hardware to run these on, so we're using qemu system emulation on commodity amd64 hardware. This works OK, but we currently do this in manually-configured libvirt instances; we'd much rather be able to do it on our internal OpenStack clouds.\n\n[Test Case]\n\n\u00a0\u00a0$ wget http://cloud-images.ubuntu.com/server/releases/jammy/release-20220420/ubuntu-22.04-server-cloudimg-riscv64.img\n\u00a0\u00a0$ openstack image create --disk-format qcow2 --file ~cjwatson/ubuntu-22.04-server-cloudimg-riscv64.img --private --property architecture=riscv64 --property item_name=disk1.img --property os_distro=ubuntu --property os_version=22.04 cjwatson-riscv64-test\n\u00a0\u00a0$ openstack image set --property hw_emulation_architecture=riscv64 cjwatson-riscv64-test\n\u00a0\u00a0$ openstack image set --property hw_machine_type=virt cjwatson-riscv64-test\n\u00a0\u00a0$ openstack server create --image cjwatson-riscv64-test --flavor vbuilder --network vbuilder_staging_test_net cjwatson-riscv64-test\n\nExpected result: the created instance reaches to ACTIVE state.\n\nActual result: the \"openstack server create\" command fails with the following error message:\n\u00a0\u00a0Invalid image metadata. Error: Architecture name 'riscv64' is not valid (HTTP 400) (Request-ID: req-023932ea-7c90-4be3-89b8-6bd19718919a)\n\nThis causes me to think that, even if I've left out some property or other (e.g. firmware), basic things like the riscv64 architecture name being valid aren't currently in place. But it's certainly possible I've got something wrong here. If there's a known way to make this work, could it please be documented?\n\nI've attached `virsh dumpxml` output from one of the manual libvirt instances we use at present, in case it's useful.", "owner_link": "https://bugs.launchpad.net/api/devel/~cjwatson", "bug_tasks_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/bug_tasks", "duplicate_of_link": null, "date_created": "2023-06-07T15:35:28.537101+00:00", "activity_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/activity", "subscriptions_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/subscriptions", "date_last_updated": "2024-07-12T09:03:44.891372+00:00", "who_made_private_link": null, "date_made_private": null, "heat": 20, "bug_watches_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/bug_watches", "cves_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/cves", "vulnerabilities_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/vulnerabilities", "duplicates_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/duplicates", "attachments_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/attachments", "security_related": false, "latest_patch_uploaded": null, "tags": [], "date_last_message": "2024-07-12T09:03:43.578415+00:00", "number_of_duplicates": 0, "message_count": 15, "users_affected_count": 2, "users_unaffected_count": 0, "users_affected_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/users_affected", "users_unaffected_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/users_unaffected", "users_affected_count_with_dupes": 2, "other_users_affected_count_with_dupes": 2, "users_affected_with_dupes_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/users_affected_with_dupes", "messages_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/messages", "lock_status": "Unlocked", "lock_reason": null, "linked_branches_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/linked_branches", "linked_merge_proposals_collection_link": "https://bugs.launchpad.net/api/devel/bugs/2023211/linked_merge_proposals", "http_etag": "\"8d757e5b6493acf58a6101795a717b651358cbb9-2663b88beac7c65ab890a453e21673bc7df87ef4\""}, "subscribers_portlet_url_data": {"web_link": "https://bugs.launchpad.net/bugs/2023211", "self_link": "https://bugs.launchpad.net/api/devel/bugs/2023211"}, "total_comments_and_activity": 30, "initial_comment_batch_offset": 41, "first visible_recent_comment": -26, "bugtask_data": {"3054559": {"id": 3054559, "row_id": "tasksummary3054559", "form_row_id": "task3054559", "bugtask_path": "/nova/+bug/2023211", "prefix": "nova", "targetname": "OpenStack Compute (nova)", "bug_title": "Run emulated riscv64 VMs on amd64", "assignee_value": "freyes", "assignee_is_team": false, "assignee_vocabulary": "AllUserTeamsParticipation", "assignee_vocabulary_filters": [], "hide_assignee_team_selection": true, "user_can_unassign": false, "user_can_delete": false, "delete_link": "https://bugs.launchpad.net/nova/+bug/2023211/+delete", "target_is_product": true, "status_widget_items": [{"name": "In Progress", "value": "In Progress", "description": "The assigned person is working on it.\n", "description_css_class": "choice-description", "style": "", "help": "", "disabled": false, "css_class": "statusINPROGRESS"}], "status_value": "In Progress", "importance_widget_items": "[]", "importance_value": "Undecided", "milestone_widget_items": "[]", "milestone_value": null, "user_can_edit_assignee": false, "user_can_edit_milestone": false, "user_can_edit_status": false, "user_can_edit_importance": false}, "3032581": {"id": 3032581, "row_id": "tasksummary3032581", "form_row_id": "task3032581", "bugtask_path": "/charm-nova-compute/+bug/2023211", "prefix": "charm-nova-compute", "targetname": "OpenStack Nova Compute Charm", "bug_title": "Run emulated riscv64 VMs on amd64", "assignee_value": null, "assignee_is_team": null, "assignee_vocabulary": "AllUserTeamsParticipation", "assignee_vocabulary_filters": [], "hide_assignee_team_selection": true, "user_can_unassign": false, "user_can_delete": false, "delete_link": "https://bugs.launchpad.net/charm-nova-compute/+bug/2023211/+delete", "target_is_product": true, "status_widget_items": [{"name": "Invalid", "value": "Invalid", "description": "Not a bug. May be a support request or spam.\n", "description_css_class": "choice-description", "style": "", "help": "", "disabled": false, "css_class": "statusINVALID"}], "status_value": "Invalid", "importance_widget_items": "[]", "importance_value": "Undecided", "milestone_widget_items": "[]", "milestone_value": null, "user_can_edit_assignee": false, "user_can_edit_milestone": false, "user_can_edit_status": false, "user_can_edit_importance": false}, "3054558": {"id": 3054558, "row_id": "tasksummary3054558", "form_row_id": "task3054558", "bugtask_path": "/ubuntu/+source/nova/+bug/2023211", "prefix": "ubuntu_nova", "targetname": "nova (Ubuntu)", "bug_title": "Run emulated riscv64 VMs on amd64", "assignee_value": null, "assignee_is_team": null, "assignee_vocabulary": "AllUserTeamsParticipation", "assignee_vocabulary_filters": [], "hide_assignee_team_selection": true, "user_can_unassign": false, "user_can_delete": false, "delete_link": "https://bugs.launchpad.net/ubuntu/+source/nova/+bug/2023211/+delete", "target_is_product": false, "status_widget_items": [{"name": "Confirmed", "value": "Confirmed", "description": "Verified by someone other than the reporter.\n", "description_css_class": "choice-description", "style": "", "help": "", "disabled": false, "css_class": "statusCONFIRMED"}], "status_value": "Confirmed", "importance_widget_items": "[]", "importance_value": "Undecided", "milestone_widget_items": "[]", "milestone_value": null, "user_can_edit_assignee": false, "user_can_edit_milestone": false, "user_can_edit_status": false, "user_can_edit_importance": false}}, "information_type_data": {"PUBLIC": {"value": "PUBLIC", "description": "Everyone can see this information.\n", "name": "Public", "order": 0, "is_private": false, "description_css_class": "choice-description"}, "PUBLICSECURITY": {"value": "PUBLICSECURITY", "description": "Everyone can see this security related information.\n", "name": "Public Security", "order": 1, "is_private": false, "description_css_class": "choice-description"}, "PRIVATESECURITY": {"value": "PRIVATESECURITY", "description": "Only the security group can see this information.\n ", "name": "Private Security", "order": 2, "is_private": true, "description_css_class": "choice-description"}, "USERDATA": {"value": "USERDATA", "description": "Only shared with users permitted to see private user information.\n", "name": "Private", "order": 3, "is_private": true, "description_css_class": "choice-description"}}, "bug_is_private": false, "context": {"self_link": "https://bugs.launchpad.net/api/devel/charm-nova-compute/+bug/2023211", "web_link": "https://bugs.launchpad.net/charm-nova-compute/+bug/2023211", "resource_type_link": "https://bugs.launchpad.net/api/devel/#bug_task", "bug_link": "https://bugs.launchpad.net/api/devel/bugs/2023211", "milestone_link": null, "status": "Invalid", "status_explanation": null, "importance": "Undecided", "importance_explanation": null, "assignee_link": null, "bug_target_display_name": "OpenStack Nova Compute Charm", "bug_target_name": "charm-nova-compute", "bug_watch_link": null, "date_assigned": null, "date_created": "2023-06-07T15:35:28.537101+00:00", "date_confirmed": null, "date_incomplete": null, "date_in_progress": null, "date_closed": "2023-07-20T20:55:20.477376+00:00", "date_left_new": "2023-06-24T04:19:49.028781+00:00", "date_triaged": null, "date_fix_committed": null, "date_fix_released": null, "date_left_closed": null, "owner_link": "https://bugs.launchpad.net/api/devel/~cjwatson", "target_link": "https://bugs.launchpad.net/api/devel/charm-nova-compute", "title": "Bug #2023211 in OpenStack Nova Compute Charm: \"Run emulated riscv64 VMs on amd64\"", "related_tasks_collection_link": "https://bugs.launchpad.net/api/devel/charm-nova-compute/+bug/2023211/related_tasks", "is_complete": true, "http_etag": "\"ba3372585601064b4aeb9692a60959bddfdcec0d-3723b198c650f14418b85e017029233510c2f0f4\""}};</script> </body> <!-- Facet name: bugs Page type: main_side Has global search: True Has application tabs: True Has side portlets: True At least 54 queries/external actions issued in 0.38 seconds Features: {'profiling.enabled': None, 'hard_timeout': '9000', 'app.mainsite_only.canonical_url': None, 'js.yui_version': None, 'app.maintenance_message': None, 'bugs.affected_count_includes_dupes.disabled': None, 'baselayout.careers_link.disabled': None, 'visible_render_time': None} r22ade00 --> </html>