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 Sun Apr 13 19:23:04 2008
To archiwum zostało wygenerowane przez hypermail 2.1.8 : Sun 13 Apr 2008 - 19:51:28 MET DST