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