RFE: enable s390x and ppc64le in Travis#215
Conversation
|
@drakenclimber once the Travis runs complete you'll see we have some test failures/errors that we need to hunt down on ppc64le and s390x. |
|
I'm wondering if we're getting bitten by issue #193. These failures are for |
|
Looks like I can reproduce the s390 failures on the s390 VM that @cpaelzer pointed me at earlier. I'll see what I can find. |
Great, thank you. |
|
s390x is failing on the following tests: 36-sim-ipc_syscalls, 37-sim-ipc_syscalls_be, and 53-sim-binary_tree. I'll focus on tests 36 and 37 in this post. On my s390x VM, the running kernel is listed below. (I haven't yet tried to update it to a newer version. The VM has very limited networking and throughput; building the kernel on it would be painful. Perhaps I can cross-compile on another machine.) Tests 36 and 37 are failing on my VM because libseccomp is using positive syscall numbers for |
|
Test 53-sim-binary_tree is failing because the test specifies explicit native syscalls, |
Look at what we did in commit bf747eb, specifically the changes in |
As long as we've got coverage in tests 36 and 37 I think this is the smart move. Thanks for debugging this @drakenclimber. |
|
I have the tests passing on both s390x and ppc64le: Here's what I did:
|
Thanks for getting that fixed, want to put together two patches for this and submit a PR? We can at least get s390/s390x enabled.
Ooof. While I'm glad you got it working, I'd like a better explanation of what is going on here. Do we need to treat the various PPC ABIs like x86, s390, etc. and support multiplexed/direct-wired socket/ipc syscalls? It looks like the current upstream kernel has direct-wired socket syscalls, but I don't know if that was always the case. |
Bummer. A quick search through the Linux Kernel's git log revealed the commit below. It looks like we need to add ppc/ppc64/ppc64le to the list of ABIs that need to have the multiplex/direct-wired dance. @drakenclimber you up for this? I would also suggest checking on the IPC syscalls as well. |
Sure, but if someone has access to a PPC box, that would really be the best answer. Any changes I make will be an educated guess at best. :( |
Unfortunately I'm in the same boat. Perhaps ping the Freescale guys who contributed some of the ppc code to see if they can do some testing? |
|
@drakenclimber and @pcmoore I'm still following this thread loosley (thanks for all your efforts) and I have access to ppc64 boxes (I can openstack deploy what I need). So if you come up with a branch of some sort and a set of instructions & tests that I shall run against it I can give it a try. |
|
That's great @cpaelzer, thank you very much for the help. I'm sure @drakenclimber will be in touch when he has something ready to test. |
Thanks so much, @cpaelzer! Give me a few days and I should have a patchset and some instructions to send your way. |
|
I have added the multiplexing support to ppc and ppc64, but I'm still not sure what syscalls need to be munged. I tried wading through the kernel's ppc syscall.tbl but didn't find any enlightenment ;). I have a request out to IBM to see if I can get access on a PPC cloud VM, but I seem to be lost in bureaucracy at the moment. |
Unfortunately I think you can't really go by the current syscall tables as they have most likely all been updated to support the new direct-wired variants. I think you'll need to go back in time to look at historical kernels to see what ABI supported, e.g. what did the ppc/ppc64 ABI support back in Linux v3.5? NOTE: you don't need to go back further than Linux v3.5 as prior to that seccomp mode 2 did not exist. |
Thanks, that helps a lot. As you surmised, the current table was not helpful. I had started to wade back in time, but I didn't know how far to go, so it was stabbing in the dark. Knowing that v3.5 is roughly the right time frame helps immensely. Thanks! |
Heh, as far as libseccomp is concerned, the dawn of time was Linux v3.5 ;) |
As I think of it, that's not 100% correct. Speaking generally, yes, it all started with Linux v3.5, but when we are talking about specific ABIs/arches we need to consider when that ABI added SECCOMP_FILTER support. So you can start looking at Linux v3.5 but I would first check to see what Linux release added HAVE_ARCH_SECCOMP_FILTER support. |
|
For the various PowerPC ABIs it looks like support was first included in Linux v4.3: |
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
|
Thanks to @drakenclimber's latest s390x fixes it looks like s390x is now building correctly on Travis CI so I've merged the patch which enables that. Now we just have ppc64le left to fix. |
|
Closing this as the ppc64le support will be added as part of PR #229. |
Add the s390x and ppc64le architectures in the Travis CI builds. Hold this PR until the test errors have been resolved in Travis.