Re: Jak zhasnout světlo

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Sobota Srpen 25 10:58:22 CEST 2018


On Fri, 24 Aug 2018, Pavel Just wrote:

>>> Lsof také tvrdí, že s modulem tcm_qla2xxx je spojen pouze proces 
>>> [tcm_qla2xxx_fre].
>>
>> Lsof?
> Ano, použil jsem lsof, protože lsmod hlásil jedno použití, ale ne kernel 
> modulem.

Já jsem možná poněkud zpozdilý, že to nevím, ale jak se lsof-em zjišťují 
závislosti mezi moduly?

>> A propos: co má ten tcm_qla2xxx_fre v /proc/PID/stack?
> Výpis je z 4.18.5
> [<0>] rescuer_thread+0x2f7/0x340
> [<0>] kthread+0xf8/0x130
> [<0>] ret_from_fork+0x35/0x40
> [<0>] 0xffffffffffffffff

Takže je to dle předpokladu "uklízecí" vlákno té pracovní fronty, které 
existuje zcela mimo ten modul.

> Když načtu jen qla2xxx, tak ho lze odstranit. Pokud načtu tcm_qla2xxx a 
> nic dalšího neudělám, lze odstranit,

To je dobře.

> ale samotný insmod neznamená, že protistrana detekuje světlo. To se 
> stane až po spuštění /etc/init.d/rtslib-fb-targetctl případně spuštěním 
> dané service via systemd.

To znamená, že odstranění tcm_qla2xxx zablokuje až nějaká operace, ke 
které dojde v targetctl.

Osobně moc nevěřím tom, že to dělá tcm_qla2xxx_fre (to vlákno by se 
ostatně melo spustit ihned při načtení modulu -- je to pravda?).
Možná by se dalo načíst ty moduly, zapnout tracepoint na 
module_get/module_put, spustit targetctl a podívat se na výsledek.
A pak to zkusit vyčistit a zase se podívat.

> Abych byl zcela přesný. Zkoušel jsem to pouze na řadičích v módu 
> initiator, nikoliv target. V režimu initiator jsem rmmod-em získal 
> No_Light/Linkdown.

To je zajímavé, já jsem udělal to samé a po rmmod link rozhodně nespadnul. 
(ale jak jsem psal, byly to úplně jiné verze sw a hw).

> Z toho mi vyplývá, že bych měl být schopen zhasnout světlo nějakým
> příkazem, ale ten se mi zatím vygooglit nepodařilo :-(

Z toho, co jsem psal, Vám spíš mělo vyplynout, že si myslím, že to nejde.

Dle mého soudu link na FC ovládá firmware HBA a je otázka, zda navenek 
nabízí nějaké rozhraní pro jeho explicitní ovládání. Pokud ano, tak by se 
to nejspíš objevilo aspoň v příslušných proprietárních utilitách, tj. pro 
QLogic jejich scli, ale v dokumentaci k scli nic takového nevidím (naopak 
Emulexu něco jako zakázání/povolení portu nalézt lze).

Nahození linku se provede načtením a inicializací firmwaru, což se provede 
při načtení linuxového ovladače... ale obvykle to už předtím udělá BIOS po 
zapnutí stroje (např. kvůli tomu, aby bylo možno přes HBA nabootovat) a 
ovladač ho pak jen reinicializuje, což se právě asi projeví tím krátkým 
spadnutím a znovu nahozením, o kterém jsem psal.

Je možné, že na Vašem stroji to funguje nějak jinak.

-- 
Pavel Kankovsky aka Peak                      "Que sçay-je?"


Další informace o konferenci Linux