On Fri, Dec 10, 2021 at 09:38:18PM -0800, Graham Percival wrote: > On Sat, Dec 11, 2021 at 01:16:43AM +0200, Peter Pentchev wrote: > > > Both patches look suitable, but I'd like to take a look at replacing > > > vdupq_laneq_u32 in non-aarch64. > > After looking into it, it's possible; however, I lack an arm32 system with the > cryptographic extensions, so I can't test it. > > > So... would it be too lazy of me to ask for somebody who knows what > > they're doing to provide at least a patch for testing? > > We're going with your solution of "disable it on arm32", albeit with slightly > different code: > https://github.com/Tarsnap/spiped/pull/339 > > > (I can test it in a chroot on a porterbox without having to upload a whole > > new package) > > Hmm, do you know if any such machines are arm32 with cryptographic extensions? > $ grep aes /pro/cpuinfo Not the three porterboxes that I have access to, no. Their /proc/cpuinfo looks like (only the first processor entry): [roam@abel ~/deb/spiped]$ sed -ne '/processor.*1/q; p;' /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 2 (v7l) BogoMIPS : 50.00 Features : half thumb fastmult vfp edsp thumbee vfpv3 tls idiva idivt vfpd32 lpae CPU implementer : 0x56 CPU architecture: 7 CPU variant : 0x2 CPU part : 0x584 CPU revision : 2 [roam@amdahl ~/deb/spiped]$ sed -ne '/processor.*1/q; p;' /proc/cpuinfo processor : 0 BogoMIPS : 100.00 Features : fp asimd evtstrm cpuid CPU implementer : 0x50 CPU architecture: 8 CPU variant : 0x0 CPU part : 0x000 CPU revision : 1 [roam@harris ~]$ sed -ne '/processor.*1/ { q; }; p;' /proc/cpuinfo processor : 0 model name : ARMv7 Processor rev 5 (v7l) BogoMIPS : 66.66 Features : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpd32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x2 CPU part : 0xc08 CPU revision : 5 Hardware : Freescale i.MX53 (Device Tree Support) Revision : 0000 Serial : 0000000000000000 [roam@harris ~]$ FTR, the ARM AES support compiles and seems to run fine on the amdahl aarch64 host. I could ask some of the people working on the ARM port whether it might be possible for me to temporarily get access to other machines. > We're not going to rush to get arm32 + aes working for the spiped 1.6.2 > release, but I'd be happy to collaborate on enabling this for the following > version of spiped, if you can test them. > > The same applies to the GNU/Hurg SO_REUSEADDR thing. Unless it's a trivial > fix (or the problem exists on other operating systems), it's probably not > going to happen before 1.6.2, but I'm happy to work on that afterwards. For the record, the attached patch fixes the two problems on the GNU/Hurd - they are both related to Unix-domain (AF_LOCAL) sockets. It seems that the Hurd pflocal translator does not fully implement everything one might want to do via the BSD sockets API; some of that may be seen in IRC logs, such as the first entry (2013-09-19) at https://www.gnu.org/software/hurd/hurd/translator/pflocal.html - somebody asks specifically about SO_REUSEADDR and the answer is "is that of interest at all?" There is a fuller log at http://richtlijn.be/~larstiq/hurd/hurd-2013-09-19 but it seems that this particular conversation was not continued. So about this particular Hurd patch... TBH, I would completely understand if you do not feel like accepting it; there would be no problem for me to carry it as a Debian-specific patch in the Debian package or even, if you are strongly opposed to that (some upstream developers are, for various reasons, some of them valid), I could just leave things as they are. FTR, this is not a case of "it has compiled/worked before and it does not work now"; I don't think I remember ever being able to successfuly compile and run spiped on the Hurd for various other reasons. FWIW, I have not included this patch in a Debian package upload yet. G'luck, Peter -- Peter Pentchev roam@ringlet.net roam@debian.org pp@storpool.com PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint 2EE7 A7A5 17FC 124C F115 C354 651E EFB0 2527 DF13
Description: Fix two AF_UNIX issues specific to the Hurd. setsockopt(SO_REUSEADDR) and shutdown(SHUT_WR) may not be applicable for Unix-domain sockets. Forwarded: no Author: Peter Pentchev <roam@ringlet.net> Last-Update: 2021-12-11 Index: b/libcperciva/util/sock.c =================================================================== --- a/libcperciva/util/sock.c +++ b/libcperciva/util/sock.c @@ -310,10 +310,12 @@ sock_listener(const struct sock_addr * s goto err0; } - /* Set SO_REUSEADDR. */ + /* Set SO_REUSEADDR if available. */ if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val))) { - warnp("setsockopt(SO_REUSEADDR)"); - goto err1; + if (errno != ENOPROTOOPT || sa->ai_family != AF_LOCAL) { + warnp("setsockopt(SO_REUSEADDR)"); + goto err1; + } } /* Bind the socket. */ Index: b/spipe/pushbits.c =================================================================== --- a/spipe/pushbits.c +++ b/spipe/pushbits.c @@ -30,7 +30,11 @@ workthread_cleanup(void * cookie) * since it might, indeed, not be a socket. */ if (shutdown(P->out, SHUT_WR)) { - if (errno != ENOTSOCK) { + if (errno != ENOTSOCK +#ifdef EMIG_BAD_ID + && errno != EMIG_BAD_ID +#endif + ) { warnp("Error shutting down socket"); exit(1); }
Attachment:
signature.asc
Description: PGP signature