[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Potential spiped 1.6.2 release -- please test



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