Neznámý číselný údaj v lsusb

Hamparle

  • ****
  • 360
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Neznámý číselný údaj v lsusb
« kdy: 17. 11. 2020, 15:45:53 »
Když si vypíšu lsusb -t

Kód: [Vybrat]
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M

/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 3: Dev 12, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 14, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 1: Dev 14, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
        |__ Port 2: Dev 13, If 0, Class=Human Interface Device, Driver=usbhid, 12M


Tak co přesně znamená číslo u hodnoty Driver končící p?
Znamená to počet portů (i těch nezapojených) v daném kořenovém nebo běžném rozbočovači?
Znamená to maximální počet zařízení ,které se dají na danou větev připojit?
Je maximální počet zařízení nějak omezen těmito čísly? (Konkrétně když budou huby zřetězené a každý bude mít jinou hodnotu), Pokud například hub první úrovně bude mít 2p  a připojím do něj  2 huby po 4p ,  budy fyzicky volných 8 portů?
« Poslední změna: 17. 11. 2020, 16:12:20 od Petr Krčmář »


RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:Neznámý číselný údaj v lsusb
« Odpověď #1 kdy: 17. 11. 2020, 16:55:39 »
Omg, jak neznamy? lsusb je opensource, tak se podivej odkud se cislo bere:
https://github.com/gregkh/usbutils/blob/master/lsusb-t.c#L142

Hamparle

  • ****
  • 360
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Význam usbbusnode->maxchild
« Odpověď #2 kdy: 17. 11. 2020, 17:53:06 »
Omg, jak neznamy?
Toho si nevšímej, to jsem nepsal já.

Ale když už jsi mě nasměroval, tak se zaptám jinak, co znamená usbbusnode->maxchild vlastnost? v kontextu úvodního vlákna?
« Poslední změna: 17. 11. 2020, 17:55:45 od Hamparle »

RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:Neznámý číselný údaj v lsusb
« Odpověď #3 kdy: 17. 11. 2020, 18:51:57 »
Pocet portu na nodu. USB je v tomto kontextu to same jako prodluzovacka/pes s N dirama. Takze pocet der na psovi.

Hamparle

  • ****
  • 360
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:Neznámý číselný údaj v lsusb
« Odpověď #4 kdy: 17. 11. 2020, 19:02:44 »
Haf! Takhle to stačí za odpověď. Zkusil jsem pohledat i na https://www.kernel.org/doc/html/v4.10/driver-api/usb.html , ale tam je strohé
Kód: [Vybrat]
maxchild
    number of ports if hub


Hamparle

  • ****
  • 360
  • junior developer ucho
    • Zobrazit profil
    • E-mail
Re:celková rychlost víceusb zařízení
« Odpověď #5 kdy: 19. 11. 2020, 18:48:51 »
No a to s tím souvisí: rychlost -- je na root hubu sdílená a nebo pro každé zařízení vyhrazená? ( TL DR: odpověď hledám jen pro Superspeed)

Co když zapojím více USB zařízení, která jsou teoreticky schopné přenášet 999 GB/s (a jsou 3.0,2.0 nebo 1.1).


Nejprv: mixovaný (1,2,3) transport  beží rozdělen po 2 linkách - superspeed a high speed. (Proto 1 fyzický hub se jeví že má rozbočovač pro 480 a  rozbčovač pro 5000)

S 1.1 to záleží jestli porty vedou do STT nebo MTT topologie (V případě Single všechna se musí vejít do 12Mbps celkem, v případě Multi se každý port  jede na 12 a "povýší" do HighSpeed  režimu celkově musí se jen vejít do 480)

S 2.0
údajně je 480 sdíleno pro    hub (a i root hub)

S 3.0 ???  Na stackoverflow jsem narazil na obě tvrzení, že 5Gbps je taky sdíleno pro celý (root)hub a druhé, že xHCI nově umí 5Gbps pro každé zařízení zvlášť (asi jen do ručitého limitu), že "z j backendu jednoho xHCI kontroleru" může vést víc než 1 USB 3.0 lajna a tedy že propustnost může překročit 5Gbps na tomto root hubu . Co tedy platí?
« Poslední změna: 19. 11. 2020, 18:51:34 od Hamparle »

RDa

  • *****
  • 2 465
    • Zobrazit profil
    • E-mail
Re:Neznámý číselný údaj v lsusb
« Odpověď #6 kdy: 19. 11. 2020, 23:23:02 »
To vsechno zalezi na implementaci konkretnich obvodu.
Mixovani rychlosti typicky neni mozne, protoze USB funguje na bazi dotazovani host controlleru.

Hamparle

  • ****
  • 360
  • junior developer ucho
    • Zobrazit profil
    • E-mail
rychlost více USB zařízení najednou ; pár faktů o USB
« Odpověď #7 kdy: 02. 12. 2020, 21:08:57 »
Tak výsledky jsou zajímavé:
Zkoušeny dva různé rozbočovače, oba se chovají stejně.

USB 3.0
Při připojení na porty desky sdílený limitr 5Gb/s neexistuje [což  taky nerní zřejmé], celkový limit jsem nenašel... 830 MB/s (binární),víc jsem netestoval
Při připojení do portů hubu sdílený limit 5Gb/s existuje [což je logické]

USB 2.0:
Při připojení na porty desky (root hub) sdílený limit 480Mbps pro sběrnici neexistuje [což nebylo zřejmé]... Netestoval jsem víc desek...
Při zapojení na porty hubu sdílený limit platí. [Což je logické]







PS:
kopírování z USB.3.0 nejde víc než 449 MB/s (dekadických)/ 430 (bin.). Záleží na BS(512-128M dá 445-450) ; bs=16m dá 412 MB/s a bs=1M dá pouhých  342MB/s. Píšu to jen kvůli tomu, že podle tohoto čísla se pak kouká, jestli propoustnost je na maximu To není špatné při uvážení 5Gbps - (8/10) - 500 MB/s (něco režie)

PS:  Víte když 2 dělají totéž, tak dohromady neudělají to...lik ? (neplatí na USB 2.0, tam se to sečte do 40 MB/s), ale v případě 3.0  je součet 311 MB/s (když jsou na jednom hubu)

PS: kdy se autoři linuxu dohodnou které jednotky platí? dd ukazuje v progressu/reportu zkopírováno, 6,45334 s, 205 MB/s, ale iostat -xmd 1 ukazuje 197,00  (nepomůže ani -x(h)d), což ukazuje v kilech místo megách (takže 1.024^1 místo 1.024^2, furt blbé), ale když dd ukazuje mega, tak chci obojí v megách
Hledal jsem v man dd,iostat, ale nenašel jsem přepínač pro změnu 1.000<->1.024


PS: výrobci jsou nepoučitelní, když dávají porty  s mezerou 3 mm vertikálně,  je jedno jestli to druhé je další USB nebo jiný port (v takovém případě to vadí i horizontálně)

« Poslední změna: 02. 12. 2020, 21:13:19 od Hamparle »