Path: csiph.com!goblin3!goblin.stu.neva.ru!panix!usenet.stanford.edu!not-for-mail From: Damien Zammit Newsgroups: gnu.hurd.bug Subject: Re: PCI arbiter crash on last qemu image Date: Sat, 22 Aug 2020 22:43:11 +1000 Lines: 93 Approved: bug-hurd@gnu.org Message-ID: References: <78d17df2-64dd-692e-4151-ad14e25a97d6@mailfence.com> <2f03cf83-9dff-1b92-a6e0-96ae20bfda49@zamaudio.com> <728b60a0-d226-5d36-ba76-82f1f6ce3101@zamaudio.com> <2559279e-72a6-a87a-ad0d-cbe71102f69e@zamaudio.com> NNTP-Posting-Host: lists.gnu.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: usenet.stanford.edu 1598100202 16099 209.51.188.17 (22 Aug 2020 12:43:22 GMT) X-Complaints-To: action@cs.stanford.edu To: jlledom@member.fsf.org, bug-hurd@gnu.org Envelope-to: bug-hurd@gnu.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zamaudio-com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:autocrypt:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=grQvtpSxVCn3l6BSTcypfCPbdWFvRicFSruFbuXbGNQ=; b=MstbaIjEajDWy15I0aQSBx5+NQA9OsyyAJbCLicH3B/XFS7pgrE4d7057FTiEHjcai GimcYlGTYYGZSUewRYNYKpgoyTlSjH/RrOKhGRoYGyoC58UZJyOCumTrkmcdHAf+Elua PJdaPXrtSN8NuhQN42JQlfHHyqHu9ewSGEMao04KNTo8ej6UKLjtWXghZTZmUBNkHnOc UGGbbYE04YU+1fdyXBztUsC89XUeLygydP3luWIlEFjfYyeopaWta4+rlojTvaHSQZ5K On8ZQcuheLdS81Q+87khL/ifbnr6jhRhNd9Y0QifnKmkoGvKJ6XtyqAh4bV/hOXHH7Ex iIjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:autocrypt:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=grQvtpSxVCn3l6BSTcypfCPbdWFvRicFSruFbuXbGNQ=; b=P1SwhvsH9mKK/r4PgI8Dpa2GWXSNNoEQrVj4Z9jDgjz2lPNdMdyAz6TrcurLvyiQZB FXo3C4qBSXdf7+LFbvWbwla1JO4Ozly3wC3p54+ljQ3oSWLhXnUPvh4hQVgkyfiRyUNU kB0D/tNh45aTXfDnSbfvUZgox5mxbK2kYn2lLhsX1w+97Ut21CCPsvjD0J+FiuyCJBB6 Mchdsmg842cX0Oqfi2/RIH0pA1CNZy4WBW/ee2YuVCQllnYtVs+CbdEv0nWc2HFUKhMm KS6q57oOKIrwH+Dh0W7oE711mHs+ljdMx8KsDu+0baTQMOZfoEDX/aIUx6ouPsjQxZdW //Jg== X-Gm-Message-State: AOAM5331fk5WbPJSaN2XFywIuXKjYt4nY+LlhOLTeAfqpvZ2cNLsyMX6 TIn/Av9GC6jejzwfJxJPReAHGw+AzUUhqA== X-Google-Smtp-Source: ABdhPJzFO+Es9ptPGnK0YRot1kzTPI+8H9EVHkOB609rbDwGd86G19pzr1xwoU29z2rv/DLN+6ePKw== X-Received: by 2002:a65:4808:: with SMTP id h8mr5464664pgs.113.1598100196194; Sat, 22 Aug 2020 05:43:16 -0700 (PDT) Autocrypt: addr=damien@zamaudio.com; prefer-encrypt=mutual; keydata= mQENBFKCKqwBCACxNliUKB4XUVDmLbY9bBx+XONng5jqnGz2Hheo/1vfdNtuigTaYBWML2ma lDAImfihvPpHS7eyISb7SuCrUZ84RV21wIf03IO9hqDumM0xE6GNxWosRvegjYKAiiGsN9gn 8F7tmeQEuDEqzt5HLnktOSwlrQ3CFk+aiqrYjYhTIduF1MQPgYarRjiiIJtSFoinfRTeHKW4 bgxIIYKvwa4C3McCqPHkTJbkHxITWnlnOuskxFszglDt9UiGtlbapBRvmFSe+9xOrjOkOJe/ 9riyZ04mpO/xADjOsDnXaT+OcQIiZgift+nQs1IP0HEIf2TK5c0Gfrqn1FLiU8gMk+zjABEB AAG0I0RhbWllbiBaYW1taXQgPGRhbWllbkB6YW1hdWRpby5jb20+iQE4BBMBAgAiBQJSgiqs AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRBXfBc5WF+pII7uB/9iMYVbS7AhnYJi DiCV9X6C27E4fYxA6/mGdy6MgjZ3kDAnBnBLYcbxtvcjMiCBiPNsyE//yQr12CyoyNqjh9BQ 4AXDdkhJZ6oW1HeP0Dqo+q1+uThlyXEMHC5qKxH2RWFnStmwR6qEr35By3LD8RQO5h7C2mpT VzzArYz5896qpqZizkPcVztbH4eymwQoZBCD0aF/76extAymQ8y7CxQueSrtDLedLKVPAANC msuaLNYaw5CdqkFo16iA0eBadjrrnTyX/FAnbnUKLbnVVE56gPLebz4ay9ZmQXJpLdjnHfkb m21z8IQ0K2ct5cZQRbA5ge27V87ts+OmutBlSk6zuQENBFKCKqwBCADLGxUiBOiRNXroZp1a PwgzXRAhrHDpp5qlXJ3vpqU6HAJYVc6Ozp65ADy2e6Du5GYi3KOmc+YITfLEIZ/CDrzz4IfZ whnoYd1kpMeTasq3wP44WOYzVx/1/Rmo9JlSOdaFi4TVlEX7qF4kUfWLqt0wSFYgPg/OpQeL uNO9e3GIL4hk5UtD633PMVjmjShO6H52TosckQ4jiNt5yUJun8ABkDxBbcfycMrLlAMUGydL S1WAz+/fp1P0VL2bmnsOif+ZO19EvN7JhohQEovfaZ3R7UCtcJm6ZfjH1e1Zw80HQtZ+MnTN 0PmCRydmWJzyDecBffoRVlhwes+ff6tx+9RVABEBAAGJAR8EGAECAAkFAlKCKqwCGwwACgkQ V3wXOVhfqSD5lAf/aAMTm5qknUBqfyE8Z6PuXa3hwcH1ZmkXYrm8u3V4SJUTz69iixihi/kI hzM63n6IpllQvxYjT6bvSH5KNzJYUlqdA3pLun0J+cNMda4VQXWUuLRtc2NyYJE0liyKRdm+ op65BkRqr6wP5Af2Wj9hfMrCn2eFaiYh9ymFmg2Ee4yfFdwU5BFiYNMPbx9mbf78Q4f4VSBG 1XO6Ob55JEbC/7UhbnPkEG18MrNLx1ea5YpaRbKPXVVSonKk8YVIzCJxcDcse4ZRZogSnrJF C+GZpY4WoQQ/5kWRmNFQbIw38KfJGf2BmLa4dr9Kl/Qg288nbo66HJxqv+pWaWwmaja5Sg== User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 In-Reply-To: Content-Language: en-US Received-SPF: none client-ip=2607:f8b0:4864:20::542; envelope-from=damien@zamaudio.com; helo=mail-pg1-x542.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: bug-hurd@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Bug reports for the GNU Hurd List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <2559279e-72a6-a87a-ad0d-cbe71102f69e@zamaudio.com> X-Mailman-Original-References: <78d17df2-64dd-692e-4151-ad14e25a97d6@mailfence.com> <2f03cf83-9dff-1b92-a6e0-96ae20bfda49@zamaudio.com> <728b60a0-d226-5d36-ba76-82f1f6ce3101@zamaudio.com> Xref: csiph.com gnu.hurd.bug:12061 On 22/8/20 8:38 pm, Joan Lledó wrote: > However, I think the problem here is the x86 backend, not the common > interface. If we take a look at all other backends we'll see that: > > 1.- Neither of them call its probe() from its create(). So it's the > client who must call pci_device_probe(), it's our arbiter who should do > it and it doesn't. OK, so we need to add this patch upstream: --- src/x86_pci.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/x86_pci.c b/src/x86_pci.c index ac598b1..1614729 100644 --- a/src/x86_pci.c +++ b/src/x86_pci.c @@ -814,10 +814,6 @@ pci_system_x86_scan_bus (uint8_t bus) d->base.device_class = reg >> 8; - err = pci_device_x86_probe (&d->base); - if (err) - return err; - pci_sys->devices = devices; pci_sys->num_devices++; -- 2.25.1 > 2.- Neither of them map memory from its probe(). So again it's the > client who must call either pci_device_map_range() or > pci_device_map_region(), and again it's our arbiter who is not doing it. And so my original patch for this part was correct: --- src/x86_pci.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/src/x86_pci.c b/src/x86_pci.c index 0d9f2e7..ac598b1 100644 --- a/src/x86_pci.c +++ b/src/x86_pci.c @@ -630,9 +630,6 @@ pci_device_x86_region_probe (struct pci_device *dev, int reg_num) if (err) return err; } - - /* Clear the map pointer */ - dev->regions[reg_num].memory = 0; } else if (dev->regions[reg_num].size > 0) { @@ -649,15 +646,11 @@ pci_device_x86_region_probe (struct pci_device *dev, int reg_num) if (err) return err; } - - /* Map the region in our space */ - if ( (err = map_dev_mem(&dev->regions[reg_num].memory, - dev->regions[reg_num].base_addr, - dev->regions[reg_num].size, - 1)) ) - return err; } + /* Clear the map pointer */ + dev->regions[reg_num].memory = 0; + return 0; } -- 2.25.1 > This is due to our transition from having a libpciaccess copy of x86 > backend embedded in the arbiter to use libpciaccess. When it was > embedded, I modified it to probe and map everything during the bus scan, > but the original code in libpciaccess[1] didn't do it. So we are not > using libpciaccess properly and we modified libpciaccess to fit us > instead of the other way around. I see now. Sorry, I think I added the probe() in create()! > Would you like to fix the backend and I fix the arbiter? Can you confirm I have it correct this time? If so I will alter my merge request upstream. Thanks, Damien