Założono, że na płycie głównej Intel x86-64
znajdują się 2 moduły DIMM. Wszystkie przeplatanie pamięci (bank i kanał) jest wyłączone.Bezpośrednie mapowanie pamięci na moduł DIMM
Próbuję zarezerwować fizyczną przestrzeń pamięci jednego z tych modułów DIMM z poziomu Linux kernel
(wersja 4.11.11
) i odsłonić fizyczną (zarezerwowaną) przestrzeń pamięci dla aplikacji. Moduły DIMM zostaną przeniesione do kanałów pamięci w postaci , a nie. Jak miałbym to zrobić? Jaki byłby ten proces? Jestem nowy w rozwoju jądra i mogę korzystać z pomocy.
co znalazłem do tej pory:
Aby zarezerwować pamięć z jądra Linux można określić parametr
memmap=nn[KMG]$ss[KMG]
rozruchowego. Ten parametr oznacza określoną pamięć jako zarezerwowany region pamięci od ss do ss + nn.mmap może być używany do rozpoczęcia odwzorowania pomiędzy przestrzeni adresowej procesu na adres pa do len bajtów z pamięci dla obiektu przedstawionego deskryptora Fildes przy przesunięciu się dla len bajtów.
Po pamięci jest zarezerwowana, jestem przy założeniu, że niektórzy kierowcy urządzenie znakowe jest potrzebne, aby odsłonić zarezerwowaną pamięć do aplikacji przestrzeni użytkownika? Myśli?
Aktualizacja
Należy również zauważyć, że DIMM, który musi być zarezerwowana będzie w jego własnym dedykowanym kanale pamięci i żaden bank lub przeplatanie kanału zostanie włączona.
Nie widzę, jak część DIMM pasuje do całego obrazu. W każdym razie, czy nie byłoby coś takiego jak '/ dev/mem'? Nie wiem, czy zarezerwowana pamięć zostanie zmapowana przez takie urządzenie. –
@MargaretBloom Co jest niejasnego w DIMM? Próbuję zarezerwować całą pamięć jednego z modułów DIMM z użycia przez jądro. Czy to jasne? '/ dev/mem' reprezentuje całą pamięć dostępną do wykorzystania przez jądro, a zatem niekoniecznie jest reprezentatywne dla tego, czego potrzebuję. – Jonathan
Można go odsłonić przez nową flagę dla 'mmap', tj. Zdefiniować' MAP_RESERVED_DIMM', jeśli w argumencie flagowym są jakieś nieużywane bity. HugeTLBFS to kolejny model: specjalny system plików, w którym można mapować pliki, aby uzyskać odwzorowania z czymś specjalnym na temat pamięci wewnętrznej. Nie jestem ekspertem od systemów wewnętrznych Linux (tylko zainteresowany amator), ale twój pomysł na urządzenie char lub blok też może działać. Zwłaszcza, jeśli planujesz mieć tylko jeden proces w przestrzeni użytkownika na raz, w przeciwnym razie, w jaki sposób pozwalasz im określić, które części są już zmapowane? –