|
Kernel Traffic Latest | Archives | People | Topics |
Wine Latest | Archives | People | Topics |
GNUe Latest | Archives | People | Topics |
| Czech |
| Home | News | RSS Feeds | Mailing Lists | Authors Info | Mirrors | Stalled Traffic |
Table Of Contents
| 1. | 24 Oct 2001 - 2 Nov 2001 | (42 posts) | Nardzędzie do debugowania pamięci |
| 2. | 31 Oct 2001 - 5 Nov 2001 | (34 posts) | Linus i Alan ujawniają swoje przyszłe plany (Łał!) |
| 3. | 31 Oct 2001 - 3 Nov 2001 | (17 posts) | Kod VM Andrei działa lepiej niż Rika |
| 4. | 1 Nov 2001 - 2 Nov 2001 | (5 posts) | Solaris korzysta z Linuksa |
| 5. | 1 Nov 2001 - 2 Nov 2001 | (5 posts) | Porównanie podsystemów pamięci wirtualnej w 2.2 i 2.4 |
| 6. | 2 Nov 2001 - 8 Nov 2001 | (8 posts) | Bootmem dla 2.5 |
| 7. | 3 Nov 2001 - 4 Nov 2001 | (4 posts) | Stan obsługi framebuffera dla Matroksa G550 |
| 8. | 3 Nov 2001 - 8 Nov 2001 | (16 posts) | Szybsze tworzenie i usuwanie plików w ext2 |
| 9. | 4 Nov 2001 - 5 Nov 2001 | (9 posts) | Testowanie dodawanych rozszerzeń |
| 10. | 6 Nov 2001 - 7 Nov 2001 | (6 posts) | Stan ext3 |
Mailing List Stats For This Week
We looked at 1672 posts in 7953K.
There were 603 different contributors. 266 posted more than once. 193 posted last week too.
The top posters of the week were:
1. Nardzędzie do debugowania pamięci
24 Oct 2001 - 2 Nov 2001 (42 posts) Archive Link: "xmm2 - narzędzie do graficznej prezentacji list aktywnych i nieaktywnych stron w pamięci Linuksa"
People: Zlatko Calusic
Zlatko Calusic ogłosił nową wersję xmm2, narzędzia do graficznej prezentacji list aktywnych i nieaktywnych stron z kodu MM. Dodał:
Ponieważ w MM w jądrach Linusa znikły listy niekaktywnych brudnych/czystych stron na rzecz jednej listy nieaktywnych stron, program musiał być poprawiony tak, aby to obsługiwać.
Cały czas możecie używać starszej wersji dla jąder <= 2.4.9 i/lub jąder Alana (-ac), które cały czas używają starszego podsystemu VM Rika.
Była długa dyskusja na temat problemu, który Zlatko widział w VM w drzewie Linusa Torvaldsa. Linus, Andrea Arcangeli (autor kodu) i inni zajęli się tym problemem, ale okazało się, że system Zlatko używał złych parametrów dla hdparma. Nie było dyskusji o xmm2.
2. Linus i Alan ujawniają swoje przyszłe plany (Łał!)
31 Oct 2001 - 5 Nov 2001 (34 posts) Archive Link: "2.4.14-pre6"
People: Linus Torvalds, Michael Peddemors, Alan Cox
Linus Torvalds ogłosił nowe jądro 2.4.14-pre6 mówiąc: "Niesamowite, nie dostałem _żadnego_ zgłoszenia błędu, że w pre5 zapomniałem zmienić numer wersji. Zwykle jest to ulubiony błąd... Czyżby wszyscy tu spali?" Dodał:
MM uspokoiło się, ale OOM killer nie działał. W tej chwili działa i używa tak prostych heurystyk, że to aż wstyd.
I wątpię, aby komuś udało się naruszyć owe heurystyki OOM -- nie uaktywaniając ich, gdy potrzeba, bądź uaktywniając zbyt wcześnie. Zostaniecie nagrodzeni uściskiem dłoni prezesa jeśli się to Wam uda i powiecie mi jak (,,Uścisk dłoni prezesa''? Tak, jestem tandeciarzem. Ale to nic nowego.)
_Naprawdę_ jestem ciekaw, czy przy jakimkolwiek obciążeniu VM można zaobserwować złe zachowanie. Jeśli macie jakieś zastrzeżenia do VM, to teraz jest pora na ich ujawnienie. W innym przypadku, uważam, że jest gotów.
Michael Peddemors zasugerował: "Pozwólmy, aby cykl testów trwał nieco dłużej, zanim dokonamy następnych zmian... Pozwólmy programistom być na bieżąco..." Linus odpowiedział:
Mój nie-taki-znowu-przebiegły plan przewiduje w tej chwili znalezienie dużych problemów, wypuszczenie rozsądnego 2.4.14 i chwilowe zatrzymanie połączone z odmową włączania nowych rzeczy.
Dalej, 2.4.15 byłby miejscem, gdzie zacznę 2.5.x, i gdzie Alan zacznie robić, co tylko mu się podoba z 2.4.x. Włączając w to, oczywiście, odwrócenie wszystkich moich i Andrei zmian w VM ;)
Osobiście jestem przekonany, że w moim drzewie dokonują się dobre rzeczy odnośnie VM, ale Alan _będzie_ opiekunem, a ja nie zamierzam wpływać na jego decyzje. Ostatnią rzeczą, którą chciałbym robić, jest bycie mikrozarządzającym krawaciarzem.
(2.5.x z pewnością będzie używać nowego VM i wierzę, że nowy VM jest lepszy. Sądzę, że Alan w końcu ujrzy światełko, ale w tym samym miejscu przyznaję, że Alan miał rację odnośnie kwestii stabilności w ciągu ostatniego miesiąca, czy dwóch ;)
Kilka osób spytało, czy ext3 będzie włączone w 2.4.14, ale Michael Peddemors powiedział: "Mimo, że wiele osób, tak jak ja, chciałoby mieć ext3 w jądrze, to NIE W TEJ WERSJI proszę... Nie włączaj niczego innego, zanim to, co mamy nie zacznie działać... Poczekaj do 2.4.15 :)"
Na zupełnie innym forum, Alan Cox napisał w swoim Dzienniku Advogato:
Ludzie zastanawiają się nad postępami prac nad stabilnym jądrem 2.4. Różne dziwaczne plotki z Byte spowodowały całą lawinę dyskusji i plotek. W tej chwili wszyscy zainteresowani są zgodni, że należy przedstawić jakiś plan działania, aby te plotki rozwiać.
Linus wkrótce wypuści 2.4.14 i przypuszczalnie wersją 2.4.15 zakończy prace nad stabilnością VM i innymi takimi rzeczami. W tym momencie rozpocznie się rozwój drzewa 2.5. Jest wiele spraw zaplanowanych na 2.5. Nie jest ani możliwe, ani sensowne wrzucać je wszystkie do 2.5.0. Jednym z zadań jest wykonanie wszystkich zmian we właściwej kolejności.
Marcelo Tosatti będzie głównym opiekunem stabilnego drzewa 2.4. Nie jest to taka duża zmiana, jak mogłoby się wydawać z zewnątrz. Opieka nad stabilnym jądrem była i jest pracą grupową. Marcelo i wiele innych osób czynnie brało udział w stabilizacji jąder 2.2 i 2.4. Będę służył mu radą, gdy tylko mnie o to poprosi oraz będę pracował nad podsyłaniem mu odpowiednich fragmentów z drzewa -ac.
Nie zniknę ze sceny, ale być może będę trochę mniej widoczny. Jest wiele różnych projektów związanych z jądrem Linuksa, nad którymi pracuję, a także będe spędzał więcej czasu na zaspokajaniu potrzeb klientów Red Hata. Sądzę, że spędzanie większej ilości czasu z klientami pomoże ustalić kierunek, w którym 2.5 powinno się rozwijać.
David Weinehall znakomicie się spisał przy 2.0.39, gdy przejął 2.0 ode mnie. Jestem przekonany, że Marcelo da sobie radę z 2.4.
(podziękowania dla Christophe Barbé za odnośnik do Advogato.)
3. Kod VM Andrei działa lepiej niż Rika
31 Oct 2001 - 3 Nov 2001 (17 posts) Archive Link: "graficzne porównianie swapu w vm aa i rika"
People: Ed Sweetman, Rik van Riel
Ed Sweetman (znany na liście jako 'safemode') zgłosił:
We wcześniejszej wiadomości pokazałem, jak łatwo i powtarzalnie zablokować mój vm, ale od tego czasu zostało to już w jakiś sposób poprawione. Powtórzyłem test i wziąłem vmstat 1 z obu jąder, które badałem: 2.4.14-pre6-preempt i 2.4.13-ac5-preempt. Uruchomiłem oba vmstaty w tym samym momencie (około 4 sekund przed rozpoczęciem testów). To, co zrobiłem, to uruchomienie kghostview na pliku postscriptowym dostępnym tu: http://safemode.homeip.net/test.ps. Zajmuje 224K. kmail był już wcześniej załadowany w obu testach, więc kdeinit był już w pamięci, tak jak i inne biblioteki. Gdy kghostwiew zaczął odpowiadać, odczekałem kilka sekund (ponownie około 5) i zamknąłem aplikację.
Żadna inna interakcja nie była dokonywana, ani żaden inny program nie działał podczas wykonywania testu. Mam 771580 KB RAM-u oraz 290740 KB swapu.
Teraz objaśnię wykresy. Niebieski to vm AA. Czerwony to vm Rika. vm Rika zakończył pracę po 66 sekundach. vm Andrei zakończył pracę po 52 sekundach. Żaden z nich nie dotknął swapa.
Tu jest wykres http://safemode.homeip.net/vm_swapcomparison.png. Zajmuje około 4.6K.
Gdy popatrzycie na wykres, przedstawia się on następująco. Po lewej stronie jest 0 sekund, po prawej stronie jest 66 sekund. na dole jest 0KB, na górze jest 290740KB.
A tu są oryginalne wyniki wygenerowane przez vmstat. Są dostępne pod adresem: http://safemode.homeip.net/aa_vmstat i http://safemode.homeip.net/rik_vmstat
Szczegółową interpretację wyników i wykresów zostawię tym, którzy dokładnie znają kod.
Dodam jedynie, że podczas przeprowadzania testu, cały komputer po kilka razy przestawał odpowiadać na dłuższy okres czasu i to przy obu jądrach. Nie był wygenerowany żaden OOM.
Aby wyjaśnić lepsze działanie jądra Linusa, Rik van Riel (autor VM z jąder Alana) powiedział: "Sądzę, że to dlatego, iż w teście safemode wyczerpuje się miejsce w swapie. Mój VM działa lepiej, gdy pozostaje dużo dostępnego miejsca w swapie, ale jego działanie pogarsza się znacznie w (rzadkich) przypadkach, gdy brakuje swapu. Skrajne warunki testowe zawsze dają ciekawe wyniki ;)" . Ale Ed odparł:
Sądzę, że odpowiedź na pytanie, dlaczego jądro AA pobiło jądro rika, nie ma nic do tego, ile swapu używa rik, czy ile swapu zostało z powrotem umieszczone w pamięci. Chodzi raczej o to, jak rik wybiera to, co swapować. Mówiąc dokładniej, algorym wykorzystywany przez rika do zabawy z pamięcią zużywa zdecydowanie za dużo czasu procesora i zostawia go zbyt mało dla właściwego procesu. W odróżnieniu od tego, kod AA, który mniej obciąża cpu, pozwala programowi naprawdę działać i dlatego, pomimo popełniania błedów przy decyzjach, co wyswapować, proces kończy się dużo szybciej niż w przypadku inteligentnego kodu Rika.
Niestety, ostatnie kolumny z wyniku działania vmstat na aa jakimś cudem zniknęły podczas kopiowania z buforu terminala do pliku. To oznacza, że będę musiał wykonać to wszystko jeszcze raz tak, aby dostać porównywalne wyniki zyżycia cpu w stosunku do vm rika. Ale w tej chwili sądzę, że wykres vm rika jest wystarczający. I jest kilka danych w wyniku vmstat AA, które także wskazują na niższe zużycie procesora niż u rika. O WIELE.
Nałożyłem wykorzystanie procesora przez jądro Rika na wykresy so i si, aby to zobrazować. Na dole obciążenie jest 0%, na górze -- 100%.
http://safemode.homeip.net/sys_so.png
Możemy zauważyć, że po każdym większym zapisie następuje duże zużycie procesora. To jest poważne użycie i to jest powód, dla którego VM rika przegrywa wyścig, nawet jeśli swapowało w tę i z powrotem właściwsze rzeczy niż VM AA.
http://safemode.homeip.net/sys_si.png
Oczywiście po każdym większym zapisie w vm Rika następuje mniejszy odczyt. To się dzieje dokładnie przy taktach cpu, więc być może to jest przyczyną wysokiego zużycia cpu, przy okazji określania, gdzie jest strona. Nie wiem dostatecznie wiele, co się dzieje w kodzie, aby stwierdzić, czy VM po zapisie bądź odczycie wykonuje coś, co mogłoby wykorzystywać całą moc procesora. Po bliższym przyjrzeniu się zjawisku, skłaniam się ku stanowisku, że problemy powoduje jakiś błędny kod działający na granicy swap -> ram.
To jest przykład na to, dlaczego prosta architektura vm może być lepsza niż złożona. Mniej czasu procesora zużytego na operacje w jądrze oznacza więcej czasu procesora dla programu, i czasami czas zaszczędzony na małym zapotrzebowaniu na procesor, daje o wiele więcej niż czas stracony na poprawianiu błędów przy decyzjach, które strony przemieszczać pomiędzy swapem i pamięcią RAM.
Być może mylę się co do przyczyny zużycia procesora przez jądro, ale wyniki, które uzyskałem przy vmstacie na AA, są znacznie lepsze niż te w jądrze Rika. To i fakt, że vm Rika wydaje się robić prawidłowe rzeczy, podczas gdy w kodzie Andrei przechodzi się do porządku dziennego nad pomyłkami, a poprawiając te pomyłki Rik traci, wskazują na to, że mam rację wskazując na zużycie procesora przez vm, jako na główny problem w VM Rika.
Rik odpowiedział:
Zauważ, że to jest bardzo prawdopodobny efekt uboczny sytuacji, gdy brakuje swapu, ponieważ wiele ,,oczywistych kandydatów'' do umieszczenia w swapie, nie może być tam umieszczonych, co oznacza, że trzeba przejrzeć więcej stron zanim nie znajdziemy czegoś, co już zostało umieszczone w swapie.
Zanim wyciągniesz wnioski takie, jak przedstawiłeś powyżej, proszę przetestuj to jeszcze raz z większą ilością swapu.
Ed odpowiedział, że przeprowadzi następny test po pracy, ale nie ma żadnych wątpliwości, że kod napisany przez Rika zużywa więcej swapu niż kod z jądra Linusa (napisany przez Andreę Arcangeli) wykonujący tę samą czynność. Rik odpowiedział:
Uhhh ... to nic innego niż klasyczna równowaga pomiędzy szybkością a rozmiarem.
Fakt, że przy moim VM przestrzeń swap pozostaje zarezerwowana przez program przy swapowaniu oznacza, że jeśli strona nie jest oznaczona jako brudna, możemy ją po prostu wyrzucić bez ponownego zapisywania na dysk.
W sytuacjach, gdy jest dostępne wystarczająco dużo swapu, to powinno dawać zysk (i zazwyczaj dawało duży zysk).
VM Andrei zawsze zwalnia przestrzeń swapu przy swapowaniu, więc nawet jeśli proces w ogóle nic nie zapisze do swojej pamięci, dane muszą zostać ponownie zapisane na dysk.
Jedynie w podbramkowej sytacji, gdy mojemu VM brakuje miejsca w swapie, a VM Andrei ma jeszcze trochę swapu, będziesz miał sytuację, gdy taktyka stosowana przez VM Andrei ma przewagę, ale sądzę, że jest to bardzo rzadka sytuacja.
Ed dodał więcej swapu i ponownie wykonał testy, i ponownie okazało się, że jądro Linusa działało szybciej, i tak naprawdę -- lepiej. Koniec Wątku (tm)
4. Solaris korzysta z Linuksa
1 Nov 2001 - 2 Nov 2001 (5 posts) Archive Link: "Kod z ~2.4.4 wędruje do Solarisa 9 Alpha?"
People: Mike Fedyk, Danek Duvall, Chris Ricker
Mike Fedyk, na wykresie historii UNIXa, zauważył linię prowadzącą od Linuksa do Solarisa 9 Alpha. Zapytał: "Czy ktoś wie, którą część kodu skopiowali, i czy tworzą teraz solarisa zgodnie z GPL?" . Danek Duvall rozważał: "To może być po prostu dołączenie różnych pakietów ,,freeware'' -- takich jak powłoki, gzip, apache, samba, i tak dalej; niekoniecznie kodu jądra. Każda z tych paczek zawiera również pełny kod źródłowy, więc powinni być zgodni z GPL, jeżeli taką licencję mają te pakiety."
Mike został ochrzaniony poza listą i odpowiedział Dankowi: "Nie chciałem rozpocząć kolejnego wątku z wyzwiskami (o co zostałem przez kogoś posądzony), po prostu wydało mi się to interesujące i nie pamiętam nic z kernel traffic (które wtedy czytałem) ani z lkml (które czytam ostatnio)... więc pomyślałem, że ktoś tutaj będzie wiedział więcej." Chris Ricker odpowiedział techniczną terminologią:
Solaris 9/ia32 zawiera oprogramowanie lxrun (dołączone do Solarisa 8, którego Sun, z jakiegoś durnego powodu, tak lubi), które implementuje ABI z Linuksa/ia32 na Solarisie/ia32. Jest to coś podobnego do warstwy kompatybilności z Linuksem, którą posiadają teraz wszystkie systemy *BSD.
Solaris 9 zarówno na platformie Intel, jak i na Sparc, implementuje więcej Linuksowych (a tak naprawdę GNU glibcowych) API. Przyświeca temu idea, iż aplikacje Linuksowe wystarczy teraz tylko przekompilować, aby uruchomić je na Solarisie (zakładając, że są dobrze napisane i nie mają do rozwiązania zagadnień typu 32-/64-bitowość, czy kolejność bitów w bajcie), bez konieczności ich portowania.
Wydaje mi się, że te dwie właściwości są odbiciem tej linii. Kradzież kodu nie miała miejsca, a Solaris zdecydowanie nie jest zgodny z GPL.
5. Porównanie podsystemów pamięci wirtualnej w 2.2 i 2.4
1 Nov 2001 - 2 Nov 2001 (5 posts) Archive Link: "Systemy VM Linuksa 2.2 i 2.4 zanalizowane"
People: Derek Glidden
Derek Glidden zgłosił:
Śledzę sprawy związane z VM w 2.4 od wczesnych czasów tej serii. Jako ,,silny użytkownik'' i ktoś, kto używa Linuksa w pracy, stabilność jądra interesuje mnie niezmiernie. Wreszcie miałem już dość prób interpretowania danych z różnych źródeł na temat wydajności systemów VM w 2.4, oraz porównywania jednych i drugich rozwiązań. Poczyniłem więc swoje własne testy na jądrach 2.4.12-ac6, 2.4.13 oraz 2.2.19 i spisałem ich wyniki:
,,Analiza trzech systemów VM w jądrach Linuksa''
http://www.nks.net/linux-vm.html
Najkrótszym podsumowaniem jest: tak, systemy VM w jądrach 2.4 wciąż mają kilka błędów, które należy rozwiązać, ale ogólnie są tak znacząco lepsze od tych z serii 2.2, iż nie można ich tak naprawdę porównywać.
Jednak, konkluzja ,,znacząco lepsze'' stosuje sie do niektórych mocno ,,stresujących'' sytuacji, kiedy VM z 2.2 zawodzi na całej linii, a ta z 2.4 przełyka obciążenie praktycznie bez szwanku.
W ogólnych odczuciach zwykłego użytkownika, 2.2 wciąż sprawuje się lepiej ze względu na interaktywną reakcję przy różnych obciążeniach, mimo iż 2.4 jest tak naprawdę szybsze przy wykonywaniu danych zadań.
Rikowi van Rielowi spodobał się ten dokument, był też zadowolony, iż Derek poświęcił czas i nad tym popracował. Nie było więcej dyskusji na ten temat.
6. Bootmem dla 2.5
2 Nov 2001 - 8 Nov 2001 (8 posts) Archive Link: "[RFC] bootmem dla 2.5"
People: William Irwin, Robert Love
William Irwin ogłosił:
Parę osób wyraziło życzenie zastąpienia alokatora bazującego na bitmapach bootmem, takim, który bezpośrednio śledzi zakresy. Napisałem taki zamiennik, by uporać się z niektórymi sytuacjami, które mnie spotykały.
Następująca łata dotyczy zużycia tylko pamięci proporcjonalnej do liczby oddzielnych fragmentów pamięci, śledząc dostępną pamięć i rozdrobnienie adresów aż do miejsca inicjalizacji struktur danych dla każdej strony, a potem używając drzewa segmentów w celu obsługi efektywnego wyszukiwania na tych rzadko spotykanych maszynach, na których jest to problem. Testy pokazują, że łata wydaje się oszczędzać między 8KB i 2MB na i386 PC w porównaniu do opartego na bitmapie alokatora bootmem.
Następująca łata była testowana na sprzęcie i386 PC, IA64 Lions i IBM IA64 NUMA, z rzadką pamięcią i debugowana bez pomocy analizatorów logicznych lub specjalnych sond. Chciałbym podziękować testerom z #kernelnewbies (retluk i asalib) i moim współpracownikom za ich pomoc w wykonaniu tej pracy, oraz Tony'emu Luckowi i Jackowi Steinerowi za ich towarzyszenie przy dostosowywaniu istniejącego bootmem.
Teraz jestem szczególnie zainteresowany oceną projektu oraz wynikami szerszych testów.
Robert Love był pod wrażeniem i odpowiedział: " Łata bez problemu działa na 2.4.13-ac7. Wolna pamięć zwiększyła się o około 100K: zarówno free, jak i dmesg potwierdzają 384292k vs 384196k. Dotyczy to P3-733 na i815 z 384MB. Bardzo ładnie." Dodał także, "Zauważ, że łata oraz UP-APIC nie działają razem. Krótkie poszukiwanie błędu wraz z Williamem pozwoliło znaleźć przyczynę. APIC naprawdę wpływa na bootmem. Powyższe zachodzi zatem oczywiście z wyłączonym CONFIG_X86_UP_APIC. " William był wzruszony, że Robert przetestował łatę i obiecał zbadać problem. Kilka dni później wysłał kolejną wiadomość na listę, pisząc, że udało mu się powtórzyć błąd; i wysłał nową łatkę. Robert wypróbował tę łatę, zgłaszając, "Żadnego problemu na żadnym z systemów -- nie ma w sumie różnicy, oprócz zysku na całkowitej pamięci systemu. Najważniejsze jednakże jest to, że nowy projekt jest całkiem przyjemny. :>"
7. Stan obsługi framebuffera dla Matroksa G550
3 Nov 2001 - 4 Nov 2001 (4 posts) Archive Link: "Wsparcie dla framebuffera dla Matroksa G550?"
People: Petr Vandrovec, Alan Cox
Jordan Breeding spytał, czy była lub kiedykolwiek będzie w jądrze, obsługa framebuffera Matroksa G550. Dave Jones odpowiedział, że Petr Vandrovec wysłał całkiem dobrą łatę na listę linuxfb-devel parę tygodni temu; Petr także odpowiedział Jordanowi, mówiąc: " W piątek wysłałem łaty Alanowi. Nie wiem, czy zostaną zaaplikowane. Jednak, aby używać G550 musisz ściągnąć matroxset z ftp://platan.vc.cvut.cz/pub/linux/matrox-latest, jako że jeśli dołączasz do karty monitor VGA, na 90% używasz drugiego wyjścia." Alan Cox potwiedził, "Są one w roboczym drzewie i trafią do następnego -ac. " Koniec wątku (tm)
8. Szybsze tworzenie i usuwanie plików w ext2
3 Nov 2001 - 8 Nov 2001 (16 posts) Archive Link: "Indeks katalogów ext2, uaktualnienie"
People: Daniel Phillips, Christian Laursen
Daniel Phillips zgłosił nową wersję swojej łaty, która pozwala na szybsze tworzenie i kasowanie plików. Dostępny jest wykres wydajności. Ostrzegł, że kod ten powinien być używany jedynie na maszynach testowych i napisał:
To uaktualnienie głównie poprawia błąd, który pojawiał się z prawdopodobieństwem jeden do miliona w nietestowanym przypadku. Ten błąd objawiał się tym, że rm -rf usuwało wszystkie pliki z wyjątkiem jednego, w katalogu zawierającym milion plików. Mam nadzieję, że jest to ostatnia nieprzetestowana możliwość i gdyby nie ona, łata byłaba już stabilna.
Nie spodziewałem się, że highmem będzie dobrze działać i nie działało. Jest na mojej liście rzeczy do zrobienia, ale narazie higmem musi być wyłączone, bo w przeciwnym wypadku dostajesz oopsa przy starcie.
Wyprodukowałem także wyrzucanie informacji dx_show_buckets, żeby móc śledzić błędy i pokazać całe drzewo indeksowe zamiast jednego poziomu. Funkcja ta służy teraz jako zwarte podsumowanie struktury drzewa indeksu i, o czym można się samemu przekonać, jest prosta.
Wykonałem trochę dodatkowych testów, włączając w to testy wydajnościowe na prawdziwych maszynach i stwierdziłem, że wszystko działa w miarę dobrze dla około 2 milionów plików, w czasie około 50 mikrosekund na jedno utworzenie pliku i 300 mikrosekund na skasowanie (1 GHz PIII). Przy 4 milionach plików robi się troszkę gruszkowato, ale wierzę, że to nie przez łatę indeksującą, tylko przez rd. Wszystko się udaje, ale wymaga wykładniczo więcej czasu przy 98% bezczynności procesora i przekładaniu bloków w zakresie 300 sekund. Spojrzę na to później.
Niespodziewanie trafiłem na złe zachowanie mm w 2.4.13. Wydaje się, że icache jest zbyt surowo dławione, co powoduje, że wydajność usuwania jest niższa niż powinna być. Zauważyłem też, że czasem, pracując na uml (2.4.13), nie mogę stworzyć miliona plików testowych w dostępnej pamięci (bez oom). Doświadczenie podpowiada mi, że takie problemy nie powstają z winy umla, ale raczej z winy fragmentu jądra zarządzającego pamięcią. Być może nie dotyczy to najnowszych jąder pre, ale wydaje się, że jest jeszcze sporo możliwości na poprawienie stabilności mm.
Łatka jest dostępna pod adresem:
Christian Laursen wypróbował łatę po raz pierwszy w życiu, nie testował poprzednich wersji, a tym razem zgłosił:
Muszę przyznać, że pierwsze wrażenie jest rzeczywiście bardzo dobre.
Wziąłem rzeczywisty katalog, którego normalnie używam (folder MH zawierający około 115000 plików) i zrobiłem w nim 'du -s'.
Bez łaty zabrało to trochę więcej niż 20 minut.
Z łatą zmieściło się w mniej niż 20 sekundach. (I było to w uml)
Ale dodał, "Jednakże, gdy przypadkowo unicestwiłem uml, został mi system plików, którego nie chciał dotknąć fsck, bo miał nieobsługiwane cechy. Nawet najnowsza wersja tak robi. " Spytał, czy jest jakaś łata, która to naprawia, a Daniel odpowiedział:
Ted Ts'o zgłosił się na ochotnika do zrobienia tego, ale ja nawaliłem, bo nie wspomogłem go właściwą dokumentacją, więc jest to jeszcze nie zrobione.
Jednakże jest dość łatwo to obejść, wystarczy wykomentować część łaty, która ustawia flagę incompact. Wtedy poindeksowane katalogi magicznie zamienią się z powrotem w normalne przy następnym pisaniu do nich (byłoby dobrze dać taką opcję do testów na używanych katalogach :-)
9. Testowanie dodawanych rozszerzeń
4 Nov 2001 - 5 Nov 2001 (9 posts) Archive Link: "Testowanie nowości w 2.4.x przed wypuszczaniem?"
People: Ted Deppner, Dan Kegel
Dan Kegel stwierdził, że jest pewny, iż Alan Cox poddaje swoje jądra testom wydajnościowym znacznie częściej niż Linus Torvalds. Zasugerował Linusowi przejęcie testów od Alana i testowanie przed wypuszczaniem jego wersji. Ted Deppner odpowiedział: "Lepiej by było, jeśli wszyscy (włączając w to Ciebie i mnie) ostro testowali jądra pre i finalne." W późniejszej wiadomości dodał: "Linus i inni mówili kiedyś, że używanie jądra przez WAS jest najbardziej pożądanym testowaniem... Zatem najlepiej będzie, jeśli zainstalujesz jądro i będziesz go normalnie używał, do czego tylko jesteś przyzwyczajony." W pewnym momencie Dan napisał:
Nie mówię, że Linus powinien wykonywać testy.
To dobrze, że Linus prosi innych o testowanie, jak to zrobił na http://marc.theaimsgroup.com/?l=linux-kernel&m=100451768023436&w=2
Byłoby nawet lepiej, gdyby Linus ogłosił, że odmówi nazwania jądra finalnym jeśli będzie jakikolwiek aktualny raport o błędzie w nim, pojawiający się w czasie ustalonych testów wydajnościowych.
A byłoby *jeszcze lepiej*, jeśli do wykonywania testów wydajnościowych jąder, które mają zostać wypuszczone, używane by było http://osdl.org/stp/, w przyjemny, zautomatyzowany sposób na maszynach 1, 4, 8 i 16 procesorowych.
Prawie nic z tego nie wymaga żadnej pracy od Linusa. Wszystko, co Linus musi zrobić, to powiedzieć ,,Jądra 2.4.x będą przechodziły testy wydajności przed wypuszczeniem'' i wybrać kogoś do przepuszczania tych jąder przez STP OSDLa w odpowiednim czasie.
10. Stan ext3
6 Nov 2001 - 7 Nov 2001 (6 posts) Archive Link: "ext3-0.9.15 dla linuksa 2.4.14"
People: Andrew Morton
Andrew Morton ogłosił:
Szczegóły na temat możliwości ściągnięcia oraz dokumentacja znajdują się pod adresem:
http://www.uow.edu.au/~andrewm/linux/ext3/
Zmiany w stosunku do ext3-0.9.13 (które było łatą na linuksa 2.4.13):
Przez długi czas łata ext3 używała semafora z głównego jądra, by zapobiec równoległemu zestronicowaniu i obcinaniu tego samego pliku. Tak było, by zapobiec przeplotowi, w którym zadanie zestronicowujące budziłoby się po obcięciu i tworzyłoby stronę w tablicy stron procesu, która miałaby dołączone bufory. To prowadzi do BUG() w kodzie wymieniającym, próbującym wymienić tę stronę.
Ten semafor został usunięty. Zmieniono kod wymiany tak, że strony takie są wykrywane i ignorowane.
To jest niewiarygodnie niejasna i trudna do rozwiązania sytuacja. Przypadek testowy, który zwykł ją wywoływać, nie jest w stanie dalej tego robić. Jeśli więc ktoś zobaczy informację "try_to_swap_out: page has buffers!", proszę głośno krzyczeć.
Nie ma planów usunięcia tego semafora z jąder -ac, chyba że Alan będzie tego chciał.
Steven N. Hirsch zgłosił, że miał okazję widzieć tysiące trudnych do rozwiązania problemów Andrew, ale nie sądził, że były to problemy z ext3. Andrew spytał o więcej szczegółów na temat systemu Stevena i jego konfiguracji, ale nie było więcej dyskusji na ten temat.
Sharon And Joy
Kernel Traffic is grateful to be developed on a computer donated by Professor Greg Benson and Professor Allan Cruse in the Department of Computer Science at the University of San Francisco. This is the same department that invented FlashMob Computing. Kernel Traffic is hosted by the generous folks at kernel.org. All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0. |