Re: dziwne nowe klawiatury

Autor: Radosław Sokół <Radoslaw.Sokol_at_polsl.pl>
Data: Tue 27 Nov 2007 - 12:21:46 MET
Message-ID: <figukb$qqa$1@polsl.pl>
Content-Type: text/plain; charset=ISO-8859-2; format=flowed

gotar pisze:
>> A co niby szkodzi, że przerwanie dwóch urządzeń zostanie
>> zgłoszone tą samą linią?
>
> To, że do procesorów przypisujesz właśnie linię przerwania:
> /proc/irq/*/smp_affinity
> więc 2 urządzenia na tej samej lini == dwa urządzenia, których
> przerwania obsługiwane są tym samym procesorem/rdzeniem/wirtualną
> jednostką HT, co z kolei prowadzić może do przeciążenia danego rdzenia
> (softIRQ) przy niewykorzystaniu drugiego.

Tylko do samego przyjęcia przerwania. Obsługa leci już na
*dowolnym* procesorze. W Linuksie (chodzi mi o najnowsze
jądra 2.6) jest to, o ile się nie mylę, podobnie jak w
Windows: procedura obsługi przerwania ma działać jak naj-
krócej, odbierając tylko dane od urządzenia i zlecając
dalsze ich przetwarzanie asynchronicznej procedurze
wykonywanej już na zupełnie dowolnym procesorze/rdzeniu.

Zresztą domyślnie przerwania też chyba są przypisywanie
na zmianę rdzeniom, więc system będzie sam równoważył
obciążenie.

> Nie na pierwszym wolnym - właśnie o tym mówię. To IRQ balance w kernelu
> stosuje politykę round-robin, ale softIRQ (procedury obsługi przerwania)

AFAIK to jest starsza metoda, teraz obsługa leci już na
zwykłych kolejkach "worker queue", uruchamianych w ramach
zwykłych wątków jądra obsługiwanych standardowym schedu-
lerem. Owszem, rdzeń na którym przyjęto przerwanie może
być preferowany ze względu na wydajność, ale niekoniecznie
musi zostać wybrany.

> Hm, wydaje mi się, że jest dokładnie odwrotnie - to normalne przerwanie
> jest mapowane na MSI przez mostek PCI-Express (oraz PCI-X):

W PCI-Express *nie ma* osobnej linii przerwania. Tylko MSI
jest dopuszczalne. Mostek konwertuje MSI dla kart, które
tego chcą, na klasyczny sygnał przerwania.

> I tu właśnie moje pytanie - czy rzeczywiście MSI powoduje większe
> opóźnienia niż APIC?

Z jednej strony pewnie minimalnie tak (ale nie mam 100%
pewności) -- bo zamiast zwykłej zmiany stanu linii trzeba
przejąć na chwilę magistralę i wysłać pakiet danych. Trwa
to parę cykli.

Z drugiej strony jednak MSI zapewnia *od razu* identyfi-
kację nie tylko konkretnej karty, ale też konkretnego
urządzenia, a nawet konkretnego *bloku* karty. W efekcie
przy MSI odpada cała identyfikacja przerwania po stronie
mostków i systemu operacyjnego.

MSI niestety nie jest jeszcze dzisiaj poprawnie obsługi-
wane przez wszystkie mostki, ale powoli się to zmienia.
O ile mi wiadomo Vista już preferuje MSI nad zwykłe
przerwania.

-- 
|""""""""""""""""""""""""""""""""""""""""""""""""""""""""""|
| Radosław Sokół  |  http://www.grush.one.pl/              |
|                 |  Administrator, Politechnika Śląska    |
\................... Microsoft MVP ......................../
Received on Tue Nov 27 12:25:05 2007

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Tue 27 Nov 2007 - 12:51:22 MET