Float-point fused Multiply-Add AArch64 vs LoongArch64

AA64: fmadd  d, n, m, a: d = a + n * m
LA64: fmadd  d, j, k, a: d = a + j * k

AA64: fmsub  d, n, m, a: d = a + (-n) * m
                         d = a - n * m
                         d = - (n * m - a)
LA64: fnmsub d, j, k, a: d = - (j * k - a)
                         d = a - j * k
                         d = a + (-j) * k

AA64: fnmadd d, n, m, a: d = (-a) + (-n) * m
                         d = - (n * m + a)
LA64: fnmadd d, j, k, a: d = - (j * k + a)
                         d = (-a) + (-n * m)

AA64: fnmsub d, n, m, a: d = (-a) + n * m
                         d = n * m - a
LA64: fmsub  d, j, k, a: d = j * k - a
                         d = (-a) + j * k

IP addr-label persistent by systemd

This is an example shows how to make IP address label persistent by systemd-networkd.

/etc/systemd/network/eth0.network :

[Match]
Name=eth0

[Network]
Address=192.168.0.1/24
Gateway=192.168.0.254
DNS=192.168.0.254

[IPv6AddressLabel]
Label=100
Prefix=2409::/16

[IPv6AddressLabel]
Label=100
Prefix=2606::/16

It’s successful if you can see labels that you configured :

$ ip addrl
prefix ::1/128 label 0 
prefix ::/96 label 3 
prefix ::ffff:0.0.0.0/96 label 4 
prefix 2001::/32 label 6 
prefix 2001:10::/28 label 7 
prefix 2606::/16 dev br0 label 100 
prefix 2409::/16 dev br0 label 100 
prefix 3ffe::/16 label 12 
prefix 2002::/16 label 2 
prefix fec0::/10 label 11 
prefix fc00::/7 label 5 
prefix ::/0 label 1

Hotspot stress diagnostic options

SafepointALot: Generate a lot of safepoints. This works with GuaranteedSafepointInterval.

HandshakeALot: Generate a lot of handshakes. This works with GuaranteedSafepointInterval.

DeoptimizeALot: Deoptimize at every exit from the runtime system.

ZombieALot: Create zombies (non-entrant) at exit from the runtime system.

WalkStackALot: Trace stack (no print) at every exit from the runtime system.

DeoptimizeObjectsALot: For testing purposes concurrent threads revert optimizations based on escape analysis at intervals given with DeoptimizeObjectsALotInterval=n. The thread count is given with DeoptimizeObjectsALotThreadCountSingle and DeoptimizeObjectsALotThreadCountAll.

DontYieldALot: Throw away obvious excess yield calls.

StringDeduplicationResizeALot: Force more frequent table resizing.

DeoptimizeNMethodBarriersALot: Make nmethod barriers deoptimise a lot.

Transparent proxy with nftables

This is an example of configuring transparent proxy(tproxy) with nftables. The tproxy application is hev-socks5-tproxy

Netfilter rules

DON’T FORGOT TO ADD UPSTREAM ADDRESS TO BYPASS IPSET!!
Or use nftables skuid/skgid match to exclude proxy process.

table inet mangle {
    set byp4 {
        typeof ip daddr
        flags interval
        elements = { 0.0.0.0/8, 10.0.0.0/8,
                 127.0.0.0/8, 169.254.0.0/16,
                 172.16.0.0/12, 192.0.0.0/24,
                 192.0.2.0/24, 192.88.99.0/24,
                 192.168.0.0/16, 198.18.0.0/15,
                 198.51.100.0/24, 203.0.113.0/24,
                 224.0.0.0/4, 240.0.0.0-255.255.255.255 }
    }

    set byp6 {
        typeof ip6 daddr
        flags interval
        elements = { ::,
                 ::1,
                 ::ffff:0:0:0/96,
                 64:ff9b::/96,
                 100::/64,
                 2001::/32,
                 2001:20::/28,
                 2001:db8::/32,
                 2002::/16,
                 fc00::/7,
                 fe80::/10,
                 ff00::-ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff }
    }

    chain prerouting {
        type filter hook prerouting priority mangle; policy accept;
        ip daddr @byp4 return
        ip6 daddr @byp6 return
        tcp dport { 0-65535 } tproxy to :1088 meta mark set 0x00000440 accept
        udp dport { 0-65535 } tproxy to :1088 meta mark set 0x00000440 accept
    }

    # Only for local mode
    chain output {
        type route hook output priority mangle; policy accept;
        ip daddr @byp4 return
        ip6 daddr @byp6 return
        tcp dport { 0-65535 } meta mark set 0x00000440
        udp dport { 0-65535 } meta mark set 0x00000440
    }
}

Routing rules

ip rule add fwmark 1088 table 100
ip route add local default dev lo table 100

ip -6 rule add fwmark 1088 table 100
ip -6 route add local default dev lo table 100

See also: https://github.com/heiher/hev-socks5-tproxy/blob/master/README.md

The nftables config file that bypass all IPv4 and IPv6 sets of China: https://gist.githubusercontent.com/heiher/fd001c69eda8d1f87bb66c3f44509c11/raw/nftables.conf