Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Jul 2020 19:07:39 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        John-Mark Gurney <jmg@funkthat.com>
Cc:        FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: CFT: major update to if_ure (patch did not apply cleanly for head -r363510) (example PowerMac problem?)
Message-ID:  <B3042C56-23BB-4C18-AE44-BE22986F51B7@yahoo.com>
In-Reply-To: <20200728014444.GY4213@funkthat.com>
References:  <D5A3AECA-96C8-4E16-8795-B590ED9D82E3.ref@yahoo.com> <D5A3AECA-96C8-4E16-8795-B590ED9D82E3@yahoo.com> <20200727012035.GS4213@funkthat.com> <F5CFD6E1-787B-4416-B666-86847166D99F@yahoo.com> <C2C302F7-7F36-450D-AF91-858008CBC5FA@yahoo.com> <78CB1756-28D7-4442-934D-9C4D2B37EC67@yahoo.com> <20200728014444.GY4213@funkthat.com>

next in thread | previous in thread | raw e-mail | index | archive | help


On 2020-Jul-27, at 18:44, John-Mark Gurney <jmg at funkthat.com> wrote:

> Mark Millard wrote this message on Mon, Jul 27, 2020 at 17:15 -0700:
>> On 2020-Jul-27, at 16:43, Mark Millard <marklmi at yahoo.com> wrote:
>>=20
>>> On 2020-Jul-26, at 18:20, John-Mark Gurney <jmg at funkthat.com> =
wrote:
>>>=20
>>>> Mark Millard wrote this message on Sat, Jul 25, 2020 at 19:13 =
-0700:
>>>>> For reference for what applying the patch
>>>>> reported (see Hunk #14):
>>>>=20
>>>> Ok, updated it to be relative to r363583...
>>>>=20
>>>> I had made a white spcae commit to if_ure.c, but hadn't made the
>>>> patch relative to it after that commit.. should work now..
>>>=20
>>> I updated an old PowerMac G5 (2 sockets/2 cores each) to
>>> head -r363590 with the update patch and tjen plugged in the
>>> USB EtherNet device. The result (extracted from dmesg -a)
>>> was:
>>>=20
>>> usb_alloc_device: set address 2 failed (USB_ERR_TIMEOUT, ignored)
>>> usbd_setup_device_desc: getting device descriptor at addr 2 failed, =
USB_ERR_TIMEOUT
>>> usbd_req_re_enumerate: addr=3D2, set address failed! =
(USB_ERR_TIMEOUT, ignored)
>>> usbd_setup_device_desc: getting device descriptor at addr 2 failed, =
USB_ERR_TIMEOUT
>>> usbd_req_re_enumerate: addr=3D2, set address failed! =
(USB_ERR_TIMEOUT, ignored)
>>> usbd_setup_device_desc: getting device descriptor at addr 2 failed, =
USB_ERR_TIMEOUT
>>> usbd_req_re_enumerate: addr=3D2, set address failed! =
(USB_ERR_TIMEOUT, ignored)
>>> usbd_setup_device_desc: getting device descriptor at addr 2 failed, =
USB_ERR_TIMEOUT
>>> usbd_req_re_enumerate: addr=3D2, set address failed! =
(USB_ERR_TIMEOUT, ignored)
>>> usbd_setup_device_desc: getting device descriptor at addr 2 failed, =
USB_ERR_TIMEOUT
>>> ugen2.2: <Unknown > at usbus2 (disconnected)
>>> uhub_reattach_port: could not allocate new device
>>>=20
>>> Unfortunately, I'd not tried a PowerMac with the type of
>>> device before the update. I do not know if the above is
>>> new behavior or not.
>>>=20
>>> The PowerMac is big-endian, which is what got me to think
>>> about trying it there. The PowerMac is also 64-bit running
>>> a 64-bit FreeBSD. Its USB is 2.0.
>>>=20
>>> (It also has 2 GigaBit EtherNet ports of its own so I'm not
>>> likely to use a USB device outside special testing.)
>>>=20
>>=20
>> I tried what normally shows as an axge0, but
>> trying on the PowerMac G5. It got the same sort
>> of messages as above. The problem does not seem
>> to be tied to your patch.
>>=20
>> It does prevent my testing the patch on the G5.
>=20
> Yeah, I was going to say that the above messages are before any of
> may changes get run, so it's unlikely a problem w/ my patch...
> If the USB device can't get an address on the bus, then it can't
> even ask what type of device it is to load the driver.
>=20
> Thanks for trying though, maybe someone on the -powerpc list knows
> of a fix for that.
>=20

Turns out that having:

hw.usb.xhci.use_polling=3D1

in /boot/loader.conf allowed the old PowerMac context to
get:

ugen2.2: <Realtek USB 10/100/1000 LAN> at usbus2
ure0 numa-domain 0 on uhub2
ure0: <Realtek USB 10/100/1000 LAN, class 0/0, rev 2.10/30.00, addr 2> =
on usbus2
miibus2: <MII bus> numa-domain 0 on ure0
rgephy0: <RTL8251/8153 1000BASE-T media interface> PHY 0 on miibus2
rgephy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, =
1000baseT-FDX, 1000baseT-FDX-master, auto
ue0: <USB Ethernet> on ure0
ue0: Ethernet address: ###
ue0: link state changed to DOWN

and:

ue0: flags=3D8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu =
1500
	=
options=3D68009b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,LINKSTA=
TE,RXCSUM_IPV6,TXCSUM_IPV6>
	ether ###
	inet 192.168.1.149 netmask 0xffffff00 broadcast 192.168.1.255
	media: Ethernet autoselect (1000baseT <full-duplex>)
	status: active
	nd6 options=3D29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>

So, with that context, . . .
(the two directions are widely mismatched)

# iperf3 -c 192.168.1.120 -B 192.168.1.149 --get-server-output
Connecting to host 192.168.1.120, port 5201
[  5] local 192.168.1.149 port 31020 connected to 192.168.1.120 port =
5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   113 MBytes   949 Mbits/sec   12    564 KBytes  =
    =20
[  5]   1.00-2.00   sec   112 MBytes   941 Mbits/sec   98    549 KBytes  =
    =20
[  5]   2.00-3.00   sec   113 MBytes   944 Mbits/sec   94   1.06 MBytes  =
    =20
[  5]   3.00-4.00   sec   112 MBytes   942 Mbits/sec   96    719 KBytes  =
    =20
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec   98    883 KBytes  =
    =20
[  5]   5.00-6.00   sec   112 MBytes   941 Mbits/sec   93    439 KBytes  =
    =20
[  5]   6.00-7.00   sec   112 MBytes   942 Mbits/sec   93    221 KBytes  =
    =20
[  5]   7.00-8.00   sec   112 MBytes   941 Mbits/sec   96    419 KBytes  =
    =20
[  5]   8.00-9.00   sec   112 MBytes   941 Mbits/sec   94    632 KBytes  =
    =20
[  5]   9.00-10.00  sec   112 MBytes   941 Mbits/sec   97    175 KBytes  =
    =20
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  1.10 GBytes   942 Mbits/sec  871             =
sender
[  5]   0.00-10.62  sec  1.10 GBytes   887 Mbits/sec                  =
receiver

Server output:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.149, port 45853
[  5] local 192.168.1.120 port 5201 connected to 192.168.1.149 port =
31020
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  42.8 MBytes   359 Mbits/sec                 =20
[  5]   1.00-2.00   sec   112 MBytes   941 Mbits/sec                 =20
[  5]   2.00-3.00   sec   112 MBytes   941 Mbits/sec                 =20
[  5]   3.00-4.00   sec   112 MBytes   941 Mbits/sec                 =20
[  5]   4.00-5.00   sec   112 MBytes   941 Mbits/sec                 =20
[  5]   5.00-6.00   sec   112 MBytes   941 Mbits/sec                 =20
[  5]   6.00-7.00   sec   112 MBytes   941 Mbits/sec                 =20
[  5]   7.00-8.00   sec   112 MBytes   942 Mbits/sec                 =20
[  5]   8.00-9.00   sec   112 MBytes   941 Mbits/sec                 =20
[  5]   9.00-10.00  sec   112 MBytes   941 Mbits/sec                 =20
[  5]  10.00-10.62  sec  69.8 MBytes   941 Mbits/sec                 =20
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.62  sec  1.10 GBytes   887 Mbits/sec                  =
receiver


iperf Done.

# iperf3 -R -c 192.168.1.120 -B 192.168.1.149 --get-server-output
Connecting to host 192.168.1.120, port 5201
Reverse mode, remote host 192.168.1.120 is sending
[  5] local 192.168.1.149 port 33527 connected to 192.168.1.120 port =
5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec  14.2 MBytes   119 Mbits/sec                 =20
[  5]   1.00-2.00   sec  14.0 MBytes   118 Mbits/sec                 =20
[  5]   2.00-3.00   sec  13.9 MBytes   117 Mbits/sec                 =20
[  5]   3.00-4.00   sec  14.0 MBytes   118 Mbits/sec                 =20
[  5]   4.00-5.00   sec  14.1 MBytes   118 Mbits/sec                 =20
[  5]   5.00-6.00   sec  14.0 MBytes   118 Mbits/sec                 =20
[  5]   6.00-7.00   sec  14.0 MBytes   117 Mbits/sec                 =20
[  5]   7.00-8.00   sec  14.0 MBytes   118 Mbits/sec                 =20
[  5]   8.00-9.00   sec  14.0 MBytes   117 Mbits/sec                 =20
[  5]   9.00-10.00  sec  14.1 MBytes   118 Mbits/sec                 =20
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.86  sec   140 MBytes   109 Mbits/sec  13654             =
sender
[  5]   0.00-10.00  sec   140 MBytes   118 Mbits/sec                  =
receiver

Server output:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.149, port 51685
[  5] local 192.168.1.120 port 5201 connected to 192.168.1.149 port =
33527
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  2.21 MBytes  18.5 Mbits/sec  176   25.8 KBytes  =
    =20
[  5]   1.00-2.00   sec  14.1 MBytes   118 Mbits/sec  1386   25.9 KBytes =
     =20
[  5]   2.00-3.00   sec  14.0 MBytes   118 Mbits/sec  1376   25.9 KBytes =
     =20
[  5]   3.00-4.00   sec  14.0 MBytes   117 Mbits/sec  1397   20.2 KBytes =
     =20
[  5]   4.00-5.00   sec  14.0 MBytes   118 Mbits/sec  1339   25.8 KBytes =
     =20
[  5]   5.00-6.00   sec  14.0 MBytes   118 Mbits/sec  1357   27.3 KBytes =
     =20
[  5]   6.00-7.00   sec  14.0 MBytes   118 Mbits/sec  1326   34.5 KBytes =
     =20
[  5]   7.00-8.00   sec  14.0 MBytes   117 Mbits/sec  1388   17.2 KBytes =
     =20
[  5]   8.00-9.00   sec  14.0 MBytes   118 Mbits/sec  1376   24.5 KBytes =
     =20
[  5]   9.00-10.00  sec  14.0 MBytes   117 Mbits/sec  1386   25.8 KBytes =
     =20
[  5]  10.00-10.86  sec  12.1 MBytes   118 Mbits/sec  1147   21.6 KBytes =
     =20
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.86  sec   140 MBytes   109 Mbits/sec  13654             =
sender


iperf Done.

Very asymmetric: send relatively fast, receive relatively slow.

I've not tried hw.usb.xhci.use_polling=3D1 in any other context. So,
for all I know, the results of using such could be expected.

=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B3042C56-23BB-4C18-AE44-BE22986F51B7>