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