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 [email protected] [email protected] [email protected]
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 <[email protected]> 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); }
signature.asc
Description: PGP signature
