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

Need to test Node on intel cpu that has no avx feature. #704

Closed
shigeki opened this issue Apr 28, 2017 · 15 comments
Closed

Need to test Node on intel cpu that has no avx feature. #704

shigeki opened this issue Apr 28, 2017 · 15 comments

Comments

@shigeki
Copy link

shigeki commented Apr 28, 2017

Through the investigation of nodejs/node#12691 , Node seems to have sha256 hash computation failure on Intel CPU that has no avx feature.

This is a list of such CPU.

  • Intel Pentium J4205
  • Intel Celeron J3455
  • Intel Celeron J3355
  • Intel Pentium N4200
  • Intel Celeron N3350
  • Intel Celeron N3450
  • Intel Atom x7-E3950
  • Intel Atom x5-E3940
  • Intel Atom x5-E3930

Unfortunately, I do not have the one and cannot make further investigation of the issue.
Is there any chance to have a machine that has above cpu?

@bnoordhuis
Copy link
Member

Any Intel CPU without AVX or just Skylake and above? I have an Ivy Bridge system that I'm reasonably sure has no AVX I could use to investigate. Is nodejs/node#12691 (comment) the test case to try?

@shigeki
Copy link
Author

shigeki commented May 1, 2017

The issue was only confirmed on Intel Celeron N3350.

I guess that it depends on the product name such as Celeron or Atom rather than the micro architecture name such as Skylake or Ivy Bridge. But it is worth while testing it other cpu if it does not support AVX.

https://en.wikipedia.org/wiki/List_of_Intel_Celeron_microprocessors#.22Apollo_Lake.22_.2814_nm.29_2 shows that they do support up to SSE4.2 not AVX. Usually low-end note books or note pads have Celeron or Atom cpu wiht Windows. We have to look for someone who can build and test Node on such machines.

@santigimeno
Copy link
Member

@shigeki I have access to a Intel(R) Celeron(R) M processor 1.00GHz that apparently has no AVX support. From the output of cpuid: AVX: advanced vector extensions = false. Would this work for you? If that's the case, what code should I run?

@shigeki
Copy link
Author

shigeki commented May 1, 2017

@santigimeno That's great! Could you try to run a sample code of nodejs/node#12691 (comment) at first?

Edit: Any version of Node is okay.

@santigimeno
Copy link
Member

@shigeki tested with v7.9.0 and v4.7.0 and output looks fine:

sha1:  2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
sha256:  b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
sha384:  fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd

@shigeki
Copy link
Author

shigeki commented May 1, 2017

@santigimeno Thanks, but it is sad for me that we cannot reproduce the issue. Do you run it on Windows?

@santigimeno
Copy link
Member

No, its running a linux

@shigeki
Copy link
Author

shigeki commented May 1, 2017

@santigimeno If possible, can you run the test it on Windows?

@santigimeno
Copy link
Member

@shigeki unfortunately that's not going to be possible. I think I have another old box with a different processor that doesn't support AVX and that I could probably run Windows on. I'll report back if I can work out something.

@shigeki
Copy link
Author

shigeki commented May 1, 2017

@santigimeno Thanks. The result that the testing on Linux is good is great help for me.

@refack
Copy link
Contributor

refack commented May 1, 2017

I have an old (7 year old) machine with a Celeron. I'll give it a try...

@santigimeno
Copy link
Member

I have tested on a Core 2 Duo T7250 that doesn't support AVX with nodejs v4.8.2 (I couldn't install anything newer as it's running Windows Vista) and the results are the same:

sha1:  2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
sha256:  b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
sha384:  fdbd8e75a67f29f701a4e040385e2e23986303ea10239211af907fcbb83578b3e417cb71ce646efd0819dd8c088de1bd

@jbergstroem
Copy link
Member

For build infra purposes; can we emulate it by skipping flags and running qemu?

@shigeki
Copy link
Author

shigeki commented May 1, 2017

@santigimeno Thanks for testing.

For summarizing the current results, it shows that

model release date features OS test result
Intel Celeron N3350 Aug 30, 2016 SSE-SSE4, AES-NI, SHA extension Win NG
Intel Celeron N3350 Aug 30, 2016 SSE-SSE4, AES-NI, SHA extension Win OK (with disabling to use all AVXs in OpenSSL)
Intel Core i7-6700K Aug 5, 2015 SSE-SSE4, AES-NI, AVX, AVX2 Win10 OK
Intel Core 2 Duo T7250 Sep 5, 2007 SSE-SSESE3 Win Vista OK
Intel(R) Celeron(R) M processor 1.00GHz unknown unknown Linux OK

It has a possibility that SHA extension on Windows causes the issue.

@shigeki
Copy link
Author

shigeki commented May 3, 2017

It was confirmed that the issue is caused by building openssl with masm (Microsoft Assembler).
Thanks for your corporation for testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants