-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
IBM Z (aka SystemZ / SysZ / s390x) architecture support #1446
Comments
What arch does IBM Z exactly have?
…________________________________
From: Ilya Leoshkevich ***@***.***>
Sent: Thursday, September 30, 2021 3:30:18 PM
To: unicorn-engine/unicorn ***@***.***>
Cc: Subscribed ***@***.***>
Subject: [unicorn-engine/unicorn] IBM Z (aka SystemZ / SysZ / s390x) architecture support (#1446)
Hi,
I was wondering what would it take to support IBM Z in unicorn-engine?
QEMU 2.1.2 seems to have sufficient support for it, so I assume the main missing things are these?
* UC_* defines
* machine definition
* hooks
* build system support
Also, based on #1438<#1438>, do I get it right that such contribution would have to wait until unicorn 2 is out, or would it make sense to also do this for 1.x?
Best regards,
Ilya
―
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub<#1446>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AHJULO4QHAW5GKHCEQCJFZDUERQ6VANCNFSM5FCLCOTA>.
|
The arch is called z/Architecture, it has a CISC instruction set. |
Unfortunately, even with unicorn2, the s390 is not a supported target. You may make contributions afterward. |
You could contribute now ;) |
@wtdcode Would you mind reopening this? We plan to post a BountySource bounty, and this requires having an open upstream issue. |
Of course, would you add support for the architecture? |
@wtdcode Thanks! Yes, even though it's not going to be me personally - we plan to offer a bounty for this feature on https://www.bountysource.com. |
Looks interesting. I might hunt your bounty if it looks attractive. |
Enablement seems include some or all of the following mentioned by Ilya privately:
We can break the project and issues into individual components, and we can decide which features we wish to prioritize. |
It is the easiest part.
This part takes time and lots of tests & hacks to make every Unicorn features works properly. But I don't have both proper hardware & software to test for correctness and I lack enough spare time.
These two parts are typically equivalent.
This file is auto-generated.
|
Access to Linux on Z VPS is available through the LinuxONE Community Cloud hosted at Marist. |
Can we bring this discussion to email? Just email me & wtdcode, thanks.
|
This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 15 days. |
Someone is working on this? |
If not, I will. |
Yes, our team is working on it.
…On Sat, Jan 1, 2022, 07:17 David Miller ***@***.***> wrote:
If not, I will.
—
Reply to this email directly, view it on GitHub
<#1446 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABNQNYG7DMVDV52XFKGHMPDUTY2X5ANCNFSM5FCLCOTA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you commented.Message ID:
***@***.***>
|
It is almost done. See #1521 for details. |
@wtdcode I've given 5bb40c5 a try, looks quite promising! A few things:
Edit: one more thing:
|
Fixed in the latest commit.
Sorry I misunderstood. It is fixed already.
I believe it has been fixed here 6fabf30 and has been merged into s390x branch.
It has been fixed in a recent commit. I have sync-ed s390x branch with dev just now. |
Thanks, all of these issues are gone in 980eae7 (I had to regenerate bindings, but that's very minor). I found a new one though:
The following helped (not sure why we need to cache all that,
Edit: apparently in upstream qemu it is performance-intensive. Maybe a better solution would be to have a couple fields in |
Fixed. The |
Thanks! I found yet another corner case: we need to do something along the lines of
otherwise in some cases (e.g. |
Yes, you are right. cc might be lost if we don't save them at the end of emulation. |
Just a quick update from my side - things are looking quite good, I haven't seen any further Unicorn-specific bugs, but I bumped into a few QEMU problems: https://lists.gnu.org/archive/html/qemu-devel/2022-01/msg02488.html. I think these can be backported to Unicorn2 separately once the fixes are accepted upstream? |
Yes, feel free to send PR to backport it, or anything you feel necessary
from upstream.
…On Wed, Jan 12, 2022, 12:55 Ilya Leoshkevich ***@***.***> wrote:
Just a quick update from my side - things are looking quite good, I
haven't seen any further Unicorn-specific bugs, but I bumped into a few
QEMU problems:
https://lists.gnu.org/archive/html/qemu-devel/2022-01/msg02488.html. I
think these can be backported to Unicorn2 separately once the fixes are
accepted upstream?
—
Reply to this email directly, view it on GitHub
<#1446 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABNQNYHIAJJMZUZIZ3YZH5TUVUCVRANCNFSM5FCLCOTA>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
You are receiving this because you commented.Message ID:
***@***.***>
|
Yes, we can backport that patch once it gets reviewed & merged. |
I haven't bumped into any further issues when doing constructive work with the s390x branch, so I'm ok with merging it. However, note that fuzzing (iii-i@2b11031) finds a segfault quite quickly:
The problematic input is:
|
If @iii-i is satisfied that the implementation is complete, it's fine with me. |
@iii-i I'm integrating Unicorn2 into Google oss-fuzz here: google/oss-fuzz#6562 and I added support for s390x just now. Once that PR and #1521 get merged, we will receive regular fuzzing reports from Google. Therefore, maybe we can merge #1521 firstly? |
Absolutely, please go ahead. |
Close due to #1521 merged. |
s390 support was implemented in Unicorn2: unicorn-engine/unicorn#1446 Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
s390 support was implemented in Unicorn2: unicorn-engine/unicorn#1446 Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
s390 support was implemented in Unicorn2: unicorn-engine/unicorn#1446 Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
s390 support was implemented in Unicorn2: unicorn-engine/unicorn#1446 Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
s390 support was implemented in Unicorn2: unicorn-engine/unicorn#1446 Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
s390 support was implemented in Unicorn2: unicorn-engine/unicorn#1446 Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
s390 support was implemented in Unicorn2: unicorn-engine/unicorn#1446 Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Hi,
I was wondering what would it take to support IBM Z in unicorn-engine?
QEMU 2.1.2 seems to have sufficient support for it, so I assume the main missing things are these?
Also, based on #1438, do I get it right that such contribution would have to wait until unicorn 2 is out, or would it make sense to also do this for 1.x?
Best regards,
Ilya
The text was updated successfully, but these errors were encountered: