Skip to content
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

[SR-14528] Arm32/linux Performance regression #56880

Closed
hpux735 opened this issue Apr 26, 2021 · 5 comments
Closed

[SR-14528] Arm32/linux Performance regression #56880

hpux735 opened this issue Apr 26, 2021 · 5 comments

Comments

@hpux735
Copy link
Contributor

@hpux735 hpux735 commented Apr 26, 2021

Previous ID SR-14528
Radar None
Original Reporter @hpux735
Type Bug
Status Closed
Resolution Cannot Reproduce
Environment

Swift 5.3 on Arm32/linux with kernel 4.9 and 5.9.

Additional Detail from JIRA
Votes 1
Component/s Compiler, Standard Library
Labels Bug
Assignee @colemancda
Priority Medium

md5: cbcee298a1647106fe92626d16e134ab

Issue Description:

@Catfish-Man asked me to make a bug about this performance regression we're seeing between Swift 5.1 (we have had 5.1 deployed in production for quite some time) and Swift 5.3 (we just got it cross-compiling our binaries via Yocto/Bitbake).

It's a little hard to pin-down the cause. At first I thought it was strictly `futex` related, but I started a longer-running daemon and let it finish loading (where a lot of retain/release activity is) and those calls settled down. However, the performance issue remained.

I have several time profiles from `perf` available if desired, but they'll need to be used with a rootfs image containing the debug symbols (we have a link to this available, but won't share it on a public forum).

I have @colemancda assigned on our team to work on this bug full-time, but we're not really swift compiler engineers, so I'm sure he'll need some pointers to be maximally helpful

@typesanitizer
Copy link

@typesanitizer typesanitizer commented Apr 26, 2021

Could you file a bug report through feedbackassistant.apple.com with the perf time profiles and the rootfs image link attached? That seems like it would be helpful in reproducing and measuring things.

@hpux735
Copy link
Contributor Author

@hpux735 hpux735 commented Apr 26, 2021

Ok, that's complete. I'm not sure how to link it here in a sensible way. The title of the report is:

`Performance regression between Swift 5.1 Swift 5.3 on Arm32`

@hpux735
Copy link
Contributor Author

@hpux735 hpux735 commented May 12, 2021

Here is a test tool we wrote for characterizing different factors that impact the regression. We're working on buttoning-up the readme now https://github.com/colemancda/SR-14528

@colemancda
Copy link
Contributor

@colemancda colemancda commented Feb 18, 2022

We have been able to build Swift 5.5.3 with Yocto and Buildroot without the performance penalty. It seems that Yocto was injecting some build settings that caused the underlying issue. The issue was never observed when cross compiling the Swift stdlib with Buildroot.

@colemancda
Copy link
Contributor

@colemancda colemancda commented Feb 18, 2022

No longer reproducible on Swift 5.5.3

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants