Pracuję z podwójnym systemem Cortex-A9 i próbowałem dokładnie zrozumieć, dlaczego funkcje spinlock muszą używać DMB. Wydaje się, że dopóki bufor łączący się zostanie przepłukany, wartość blokady powinna trafić do L1 na rdzeniu odblokowującym, a SCU powinien unieważnić lub zaktualizować wartość w L1 drugiego rdzenia. To wystarczy, aby zachować spójność i bezpieczne blokowanie w prawo? I czy STREX nie pomija tak czy inaczej bufora magazynu łączącego, co oznacza, że nie potrzebujemy nawet takiego koloru, aby ?Czy spinlocki naprawdę potrzebują DMB?
DMB wydaje się być czymś tępym młotkiem, zwłaszcza, że domyślnie do domeny systemu, który prawdopodobnie oznacza napisać całą drogę do pamięci głównej, które mogą być kosztowne.
Czy DMB są w blokadach jako obejście dla sterowników, które nie używają smp_mb poprawnie?
Obecnie widzę, na podstawie liczników wydajności, około 5% z moich cykli systemowych znikających w straganach spowodowanych przez DMB.
To może być całkowicie błędny komentarz, ponieważ nie mam dużego doświadczenia w tak niskim poziomie działania, ale z pewnością blokada jest używana do ochrony innych lokalizacji pamięci przed dostępem wielokrotnym (te, które mogą nie być w tym samym strona pamięci podręcznej), więc mimo że sama spinlock może być spójna, nadal potrzebujesz barierę pamięci, aby upewnić się, że dostęp do innych pamięci jest spójny między pamięciami podręcznymi. – Mike
OK Rozumiem, co masz na myśli, ale czy ta logika dotyczy funkcji blokady, a także odblokowania? Blokada nie musi czekać na zakończenie dostępu do sekcji krytycznych. –
W odblokowaniu oczekuję pełnej bariery pamięci przed odblokowaniem, aby wszelkie zmiany, które nastąpiły w sekcji krytycznej, zostały usunięte przed zaktualizowaniem flagi blokady, a wszelkie operacje odczytu, które wystąpiły podczas sekcji krytycznej, zostały zakończone przed flaga blokady jest zaktualizowana.Nawet poza problemami z buforowaniem, myślę, że bariery pamięci są ważne, aby powiedzieć procesorowi, jaki rodzaj porządkowania instrukcji jest dozwolony w przeszłości w różnych punktach programu. – Mike