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
 

Kernel Traffic #147 For 24 Dec 2001

By Zack Brown

Translated By:  Paweł Kot  and  Tomasz Torcz

Table Of Contents

Mailing List Stats For This Week

We looked at 1200 posts in 5176K.

There were 435 different contributors. 207 posted more than once. 158 posted last week too.

The top posters of the week were:

1. Podsystem VM: Saga trwa

10 Dec 2001 - 13 Dec 2001 (43 posts) Archive Link: "Re: 2.4.16 & OOM killer spieprzone (fwd)"

People: Marcelo TosattiRik van RielAndrea ArcangeliAndrew MortonDaniel PhillipsHenning P. Schmiedehausen

Marcelo Tosatti poprosił Andreę Arcangeli, aby uważał na wszelkie pojawiające się problemy z VM, dodając: "Tylko upewnij się, że przysyłając mi poprawki czegokolwiek, wysyłasz po _jednym_ problemie i łatkę, która naprawia właśnie _ten_ problem. " W trakcie dyskusji Rik van Riel dodał:

Andrea, wygląda na to, że seria -aa jest nie tylko do spraw VM. Jeśli chcesz włączyć to, co zrobiłeś dobrze, do jądra Marcelo, proszę, zrób to w sposób ,,jedna łatka z wyjaśnieniem na problem''.

Jeśli nie będziesz tak robił, wezmę moją piłę łańcuchową i wytnę wszystkie jednorazowe rzeczy z jądra, aby pozbyć się z 2.4 najgorszych przypadków. Nawet jeśli będzie to oznaczało możliwość usunięcia miłych rzeczy, nad którymi pracujesz.

Andrea odpowiedział: " może nie czynią one Świętego Grala z szybkości swapowania i zalewów zapisów na dysk, to tylko drobne poprawki wydajności, ale nie otrzymałem ani jednego zgłoszenia błędu dotyczącego ,,stabilności''." Dodał: "Wg mnie, 2.4.15aa1 i 2.4.17pre?aa? są stabilne jak skała i nadają się do środowiska produkcyjnego. Wciąż będę wykonywał pomiary prędkości i dokonywał zmian niewpływających na stabilność, ale rdzeń jest już skończony." Andrew Morton odpisał: "Na skutek Twojej łatki czas potrzebny na rozpakowanie źródeł jądra zwiększył się o 75%. To dość duża drobna poprawka." Gdzie indziej rzekł: "Poprawki błędów znajdujące się w -aa nie są zbytnio przydatne. W kodzie VM brakuje komentarzy, i nikt, poza Tobą, nie rozumie, co on robi. To błąd, nie sądzisz?" Na to Andrea:

Brak dokumentacji nie jest błędem, kropka. Również nie jest prawdą, że jestem jedyną osobą rozumiejącą kod. Np. Linus rozumie go w całości, jestem tego pewien na 100%.

Abstrahując od tego, zrobiłem z tuzin slajdów obrazujących VM wraz ze schematami, na wypadek, gdyby komuś łatwiej było zrozumieć slajdy niż kod.

Wierzę, że slajdy są przydatne do zrozumienia koncepcji, ale jeśli chcesz zmienić choćby linijkę kodu - slajdy czy nie, musisz przeczytać kod. Wszyscy narzekają na brak dokumentacji. Niesłusznie. Nie było dokumentacji, która pozwalałaby na hakowanie poprzedniego kodu VM. Ciekawi mnie, ile z osób zadowolonych z poprzedniej dokumentacji było czynnymi deweloperami. Poza niektórymi zwodniczymi komentarzami w bieżącym kodzie, które jeszcze nie zostały uaktualnione, nie sądzę, żeby sytuacja z dokumentacją była gorsza niż poprzednio.

Rik odpowiedział: "Bez dokumentacji możesz wiedzieć tylko, co kod robi, nigdy się nie dowiesz co ma robić lub dlaczego. To niesamowicie utrudnia naprawianie problemów, zwłaszcza w momencie, gdy ludzie nie mogą się zgodzić, co dany kod ma robić." Andrea zreplikował:

Interesuje mnie tylko ,,co kod robi'' i ,,jakie są wyniki i zgłoszenia błędów''. Wszystko inne jest spekulacją i nie troszczę się o to.

Jak powiedziałem, napisałem trochę dokumentacji do VM na potrzeby mojego ostatniego referatu na jedno z największych wydarzeń linuksowych we Włoszech. Wyjaśnia ona podstawowe koncepcje. Powinna się ukazać na ich stronie, jak tylko znajdę czas na wysłanie slajdów. Podeślę tu adres, jak tylko pojawią się na stronie. Pozwoli to osobom nie będącym programistami VM zrozumieć logikę algorytmów VM, ale zrozumienie tych slajdów jest odległe od zdobycia umiejętności do hakowania VM.

_Całkowicie_ zgadzam się z Linusem, że ,,prawdziwy świat jest zdominowany przez szczegóły implementacji''. Myślałem w ten sposób jeszcze przed przeczytaniem jego ostatnich emaili na linux-kernel (jednakże całkowicie nie zgadzam się z losowym charakterem ewolucji i innymi wiadomościami nie-na-temat z tego wątku :).

Dla programistów, prawdziwą wolnością jest kod, nie dokumentacja, a kod tam jest. I wydaje mi się, że bieżący kod jest łatwiejszy do zrozumienia (ok, jestem stronniczy, ale wciąż wydaje mi się, że jest łatwiej).

Daniel Phillips odrzekł: "Biorąc pod uwagę liczbę zażaleń, nie jest wystarczająco łatwy. Z osobistego doświadczenia wiem, że dekodowanie Twojego vm jest na mojej liście ,,rzeczy, które mógłbym zrobić, gdybym nie miał mnóstwa innych rzeczy do zrobienia''. Na razie tylko Linus, Marcelo, Andrew i może Rik wykazali trochę zaangażowania. Miałbyś o wiele więcej pomocników, gdybyś nadał choć trochę wyższy priorytet dokumentacji." Zasugerował także, aby Andrea wystawił swoje slajdy na WWW, zamiast czekać. Andrea przychylił się do prośby i dał odnośnik tutaj.

Gdzie indziej, Henning P. Schmiedehausen był poruszony brakiem zainteresowania Andrei dokumentacją, a zwłaszcza nieuznawaniem jej braku za błąd. Powiedział: "Nie jestem również szczęśliwy z powodu zastosowania przez Ciebie magicznych numerów. Nadal więc działam na solidnym 2.2.19, dopóki nic się nie zmieni (albo póki Rik nie straci cierpliwości)." Rik odpowiedział: "Straciłem cierpliwość, zabieram moją gałąź z głownego drzewa. http://linuxvm.bkbits.net/." Alan Cox ponarzekał na użycie BitKeepera, więc Rik umieścił łatki na http://surriel.com/patches/.

2. Dygresja historyczna

12 Dec 2001 - 13 Dec 2001 (9 posts) Archive Link: "Skąd pochodzi ,,vmlinuz''?"

People: Jesse Pollard

Pozsar Balazs zapytał, skąd się wzięła nazwa ,,vmlinuz''. Jesse Pollard wyjaśnił:

To częściowo historyczne:

Na oryginalnym PDP-11 jądro przechowywane było w pliku /unix (było to w okolicach późnych lat '70).

Kiedy dodano podsystem pamięci wirtualnej, zmieniono nazwę na /vmunix (wczesne lata '80, o ile pamiętam), aby zaznaczyć różnicę między systemami, które mogły uruchamiać obie wersje (w połowie lat '80 miałem Motorolę 68020, która wciąż używała /unix, gdyż VM był jeszcze niedokończony).

Dochodzimy do Linuksa, gdzie dodana została kompresja. Ponieważ nazwa UNIX (we wszystkich postaciach) była chroniona przez prawa autorskie i nie mogła zostać użyta, jądro zostało nazwane linux, a wraz z postępem, vmlinux, a ponieważ pliki skompresowane mają rozszerzenie Z lub gz - vmlinuz.

3. Nadchodzi 2.4.17

13 Dec 2001 - 17 Dec 2001 (24 posts) Archive Link: "Linux 2.4.17-rc1"

People: Marcelo TosattiRichard Gooch

Marcelo Tosatti ogłosił:

Właśnie wrzuciłem 2.4.17-rc1 na ftp.kernel.org... Prawdopodobnie teraz roznosi się na serwery lustrzane.

Hmm, chciałbym, aby ludzie z problemem ,,niezwalnialnej'' pamięci buforowej/podręcznej potwierdzili, czy 2.4.17-rc1 działa poprawnie.

Zmiany, który powinny rozwiązać problem, powinny też uczynić 2.4 mniej chętnym do swapowania.

Daniel Phillips spytał, czy pojawi się -rc2, a wiele osób zaczęło rozstrząsać różne problemy, wciąż czekające na naprawienie. Marcelo odpowiedział Danielowi: "Tak, będzie. Otrzymałem kilka zgłoszeń o błędach w reiserfs (czekam na poprawkę do -rc2), i oczekuję na łatkę Richarda, rozwiązującą problemy z devfs. Chciałbym je przetestować przed 2.4.17." Richard Gooch powiedział, że ma łatkę devfs, ale oczekuje na zgłoszenia o błędach od testerów. Dodał: "Jestem całkiem przekonany, że moja obecna łatka jest postępem, nawet jeśli nie naprawia wszystkiego." Marcelo odpowiedział: "Ok, jak tylko dostaniesz odpowiedzi od tych ludzi, wyślij mi łatkę, lub powiedz, że jest do niczego :)"

4. Niektórzy deweloperzy niezadowoleni z Linusa

15 Dec 2001 - 18 Dec 2001 (11 posts) Archive Link: "Problemy z kontrolerem IDE PDC20265"

People: Andre HedrickRene RebeJeff GarzikBenjamin LaHaise

W czasie polowania na błędy, gdy już taki znaleziono, Andre Hedrick napisał z goryczą: "Cóż, obwiniaj tych, którzy nie chcą przyjąć kodu umożliwiającego Ci rozwiązanie problemu. Linus jest winnym numer 1." Rene Rebe odpisał: " Może za rządów Marcelo to się zmieni..." . Ale Jeff Garzik zaoponował:

Linus w tej chwili przyjmuje niektóre łatki, innych nie ... co z tego? Parę moich łatek, wyizolowanych i jasno niezwiązanych z bio (WE/WY urządzeń blokowych) i sterowniki mochela, znalazły się w jądrze. Inne zostały odrzucone.

Widzę wiele osób (nie tylko Ciebie, Andre) rozpaczających nad odrzuconymi łatkami, kiedy dla mnie jest jasne, że tylko niektóre rzeczy, w specyficznych obszarach, zostaną zaaplikowane. Jeśli chodzi o Ciebie, Andre, łatki Jena zostały odłożone dla 2.5.x na jakiś czas, więc jest uderzająco oczywiste, że Linus nie weźmie Twoich łatek IDE, dopóki podsystem bio nie będzie ukończony i czysty, ponieważ Twoje łatki jasno zależą od zmian w bio.

Nie wierzę, że łatki zostały odrzucone dlatego, że były Twoje, czy bcrla, czy czyjekolwiek.

Cierpliwość jest cnotą ;-). Mamy przed sobą długą serię rozwojową, a jesteśmy dopiero na pre-łatkach do PIERWSZEGO wydania z serii 2.5.x.

Odnosząc się do długości cyklu rozwojowego, Benjamin LaHaise zauważył: "Nie ma powodów przemawiających przeciw sześciomiesięcznemu cyklowi rozwojowemu, za to wiele jest za. Jeśli ludzie nie zamierzają przeglądać łatek w jakimś sensownym czasie, powinni mówić innym, kiedy jest odpowiedni czas, aby przysłać je ponownie. Pomimo fiaska z VM w 2.4 (które nadal jest zabałaganione i wali się przy dużych obciążeniach), spowodowanego dużą liczbą łatek posuwających się w losowych kierunkach, mam nadzieję, że niektóre z poważniejszych problemów zostaną naprawione. Chociaż, tak naprawdą, nie zanosi się na to." Gdzieś tam, Gunther Mayer zaproponował łatkę rozwiązującą problem, od którego cała dyskusja się zaczęła, ale Andre parsknął: "Zdaję sobie sprawę z wagi tej łatki dla Ciebie i dla Linusa, i zgadzam się, że jest potrzebna. Jednak jego stosunek do laptopów jest w /dev/null, w przeciwnym razie przyjąłby łatkę dawno temu i miałby już poprawną infrastrukturę dla wywołań APM na miejscu."

5. Krótka dyskusja na temat filozofii rozwoju jądra przez Linusa

16 Dec 2001 - 18 Dec 2001 (14 posts) Archive Link: "2.5.1 - kwestie związane z bio..."

People: Linus TorvaldsAndre HedrickTroy BenjegerdesLarry McVoyRik van Riel

Linus Torvalds ogłosił:

Właśnie ukończyłem 2.5.1, ale cały czas skupiam się na kwestiach bio, więc nie wysyłajcie mi innych łat, o ile nie są to poprawki poważnych błędów w pozostałych rejonach jądra.

2.5.1 jest przypuszczalnie dobrym etapem pośrednim -- wiele sterowników urządzeń blokowych powinno działać już poprawnie, ale wiele więcej jeszcze nie. Jednakże łaty pre stawały się coraz większe, więc zdecydowałem, że opublikuję 2.5.1, zamiast czekać na więcej szczegółów.

Co do innych rzeczy -- zauważcie oddzielenie sterowników dla nowych i starych układów tulipa: jeśli macie stary układ tulipa -- 2104x (w przeciwieństwie do nowszych układów -- 2114x) -- normalny sterownik tulipa nie zadziała. Nie bądźcie tym faktem zdziwieni, tylko wybierzcie CONFIG_DE2104X.

Andre Hedrick odpisał:

uzgodnijmy więc kilka spraw: nie chcesz żadnych łatek, które opisują zasady rejestracji sterowników do ,,domen poprawności''. Nie chcesz również żadnych łatek naprawiających większe rzeczy. Np. wychodzenie z Interrupt Service Request, aby wykonać czynności związane z BH. Zauważmy, że nie możemy wciąż tych problemów obchodzić oraz, że rozwiązaniem jest wyrwanie chwasta i napisanie tego od nowa.

W tej chwili waga ,,domen poprawności'' sterowników urządzeń blokowych/przechowujących dane staje się wewnętrzną rozgrywką z warstwą VM poprzez partycję lub plik wymiany.

Dopóki nie możesz sprawdzić, czy nowe WE/WY urządzeń blokowych jest poprawne na poziomie transportu danych, gdzie żądania danych są zmieniane na rzeczywistą komunikację z dyskiem, nie masz żadnej pewności, tylko ślepy traf. Nie będziesz miał również żadnych szans na sprawdzenie, czy uszkodzenia zachodzą na poziomie warstwy systemu plików, czy pamięci. Aby im zapobiec musisz wyłączyć wszelki możliwy SWAP - na partycjach i w plikach.

Ponieważ nie ma sposobu na sprawdzenie poprawności sterowników, a wiele osób uważa, że nie jest ważnym przeprowadzanie takich testów, w jaki sposób chcesz zapewnić jakiegokolwiek użytkownika, że jego dane są bezpieczne? W tej chwili sprawiasz wrażenie osoby nie troszczącej się o integralność danych, a odmowa przyznania się do tego pogłębi to wrażenie.

Pamiętam całą żółć wylaną nad uszkodzeniami systemu plików w przeszłości, a Ty teraz otrzymujesz idealny sterownik i sposób na uwierzytelnienie transportu danych, i zgniatasz ideę w zarodku, bezpośrednio, czy też pośrednio. Miałem plany zrobienia tego samego uwierzytelnienia dla SCSI, aby być w zgodności z SPI 4, ale w sytuacji całkowitego odrzucenia izolacji warstw dla testów regresyjnych, nie wydaje mi się to praktyczne. Tak twierdzę, gdyż w obliczu odrzucenia prostego przypadku, nie widzę sposobu na wprowadzenie kiedykolwiek bardziej skomplikowanych projektów.

Więc wyświadcz nam wszystkim przysługę -- odpowiedz i wyjaśnij swoje stanowisko nt. tej delikatnej sprawy. Jestem pewien, że wszyscy chętnie usłyszą Twoją opinię nt. potrzeby lub braku testowalnej warstwy transportu danych z dysku twardego.

Założę się, że nazwiesz to ,,bezużytecznym nadęciem''.

Na trzeci akapit wypowiedzi Andre, Troy Benjegerdes odpowiedział:

Tłumaczenie: Andre wziął udział w zbyt wielu spotkaniach ATA i nie może myśleć inaczej niż w slangu pracownika przemysłu pamięci masowych ;)

Mam za sobą jedynie 6 miesięcy partycypowania w tym przemyśle, ale sądzę, że mówi on o zasadach inżynierii dźwięku.

Pierwsza z nich mówi, że jeśli próbujemy znaleźć problem w skomplikowanym systemie, powinniśmy wyizolować system spod wpływu innych systemów. A jeśli próbujemy zapobiec występowaniu nowych problemów, powinniśmy wypróbowywać i testować każdy z elementów złożonego systemu w procesie postępującym.

Andre skupia się tutaj na warstwie WE/WY urządzeń blokowych, pownieważ jest to obszar, na którym się zna. Sądzę, że wskazuje na symptomy problemów, które mogą wystąpić w każdym pieprzonym rejonie jądra.

NAPRAWDĘ powinniśmy mieć jakąś logiczną strategię testowania różnych elementów, aby określić, czy są one warte włączenia do oficjalnego jądra i wyłapać wcześniej błędy. Tak, gdy dostatecznie dużo par oczu będzie się przyglądać, błedy zaczną znikać, ale wkładając trochę wysiłku w stworzenie systemu do testów, będziemy mogli zmniejszyć obciążenie najważniejszych ludzi pracujących nad jądrem, zdejmując im z karku przedzieranie się przez bezużyteczne zgłoszenia błędów, ponieważ użytkownik nie wiedział dostatecznie dużo o debugowaniu.

Musimy mieć jakiś sposób na oddzielanie poszczególnych podsystemów i katalog ,,testów regresyjnych'', które będą sprawdzać, czy nowe zmiany nie spowodowały błedów w jakichś podsystemach. Nie spodziewam się, że te testy regresyjne wyłapią wszelkie możliwe pomyłki, ale *SPODZIEWAM* się, że będziemy w stanie wyłapać każdy błąd, który wcześniej popełniliśmy. W ten sposób opiekunowie jądra będą musieli patrzeć na opis problemu jedynie raz, a potem jedynie napisać test, który wyłapie ten błąd, zamiast oglądać ten sam błąd z punktu widzenia 300 różnych użytkowników.

Na pierwszy akapit wypowiedzi Troya, Linus odparł z uśmiechem: "Wiemy ;)" Natomiast na drugi akapit odrzekł:

Nie. Zasady inżynierii oprogramowania muzycznego to zaprojektować dobry interfejs i dostosować do niego kod niskiego poziomu.

Andre patrzy na to z innej strony -- pisze i mówi o kodzie niskopoziomowym i myśli, że to powinno wpływać na to, jak działają wyższe warstwy.

Larry McVoy zestawił pierwszy akapit wypowiedzi Linusa z jego wcześniejszą wypowiedzią: ,,_Ja_ twierdzę, że ludzie, którzy sądzą, że ,,projektujesz'' oprogramowanie, bardzo upraszczają zagadnienie i nie bardzo zdają sobie sprawę, w jaki sposób sami działają.'' Larry spytał: "Więc, jak to w końcu jest?" Rik van Riel zażartował: "Zdecydowanie to drugie, ponieważ Linus zawsze miał tendencję do upraszczania spraw. Ej, czekaj, to jest niezgodne z oboma zdaniami ;)" Ale Linus odpowiedział Larry'emu: "Czy możesz się cofnąć i _przeczytać_ wypowiedzi? W szczególności te, dotyczące mikroskopijności i makroskopijności." Ale Larry odparł:

Przeczytałem je, po czym przeczytałem je ponownie, i w końcu przeczytałem je po raz trzeci. Jeśli chcesz, zrobię streszczenie Twoich wypowiedzi tak, abyś mógł przeczytać, co napisałeś i przemyśleć to. Linus, możesz kręcić na wszystkie strony, ale Twoje wypowiedzi były jasne: chcesz, aby było tak i tak. Nie sądzę, że to przyznasz, nikt nie lubi wyjść na głupka, więc dajmy temu spokój.

Chciałbym, abyś w końcu napisał, co, Twoim zdaniem, jest dobrym sposobem podejścia do problemów systemowych. Wyszedłeś od ,,projekt jest dobry'', doszedłeś do ,,projekt jest zły'', ale nie chcę Ci nic ujmować, tylko dowiedzieć się, co myślisz. Gdy już to *przemyślisz*, a nie jedynie napiszesz coś tam na kolanie.

Nie ja jedyny tak myślę. Ponieważ to Ty podejmujesz ostateczną decyzję, co zostanie włączone do jądra, wiele osób na tym świecie chciałoby wiedzieć, jak robić rzeczy ,,poprawnie'' z Twojego punktu widzenia.

I przemyślana wypowiedź, jak spowodować zmianę w jądrze Linuksa, byłaby dobrze odebrana.

Nie było odpowiedzi.

6. Deweloperzy są nieszczęśliwi z powodu Linusa

17 Dec 2001 - 18 Dec 2001 (7 posts) Archive Link: "W jądrach 2.4.x nie działają limity"

People: Andrew MortonAlan CoxRik van Riel

Ktoś zgłosił, że limity dla procesów użytkownika wydają się nie działać poprawnie w jądrach 2.4. Andrew Morton przyznał się do spowodowania tego problemu i powiedział, że nie zdawał sobie sprawy, że zmiany, których dokonał będą miały taki efekt. Powiedział: "Nie miałem oczywistych powodów, aby zmienić UID na roota -- nie wydawało się to dobrym pomysłem, aby wątki jądra działały z UID-ami nie-roota. Ale teraz mamy powód -- statystyki dla procesów." Powiedział, że przygotuje łatę na to. Alan Cox również odpowiedział na oryginalne pytanie, mówiąc, że istnieją odpowiednie poprawki, ale "Linus je odrzucał. Teraz mamy Marcelo, jako opiekuna 2.4.x i przypilnuję ich zaaplikowania. 2.5.x, bez wątpienia, pozostanie niepełnosprawne przez jakiś czas." Rik van Riel wesoło zażartował: "Przypuszczam, że to jedna z rzeczy do zapamiętania, gdy marcelo przejmie 2.6 ;)" Alan odparł poważnie: "Nie to miałem na myśli -- statystyki procesów nie należą do spraw związawnych z WE/WY urządzeń blokowych." Koniec wątku.

 

 

 

 

 

 

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.

Mirror provided by HKMirror. Sponsored by Porno Verzameling and webcamsex