|
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. | 5 Mar 2002 - 20 Mar 2002 | (84 posts) | Stan obsługi 386 na Linuksie |
| 2. | 5 Mar 2002 - 14 Mar 2002 | (109 posts) | Niektórym deweloperom nie podoba się licencja BitKeepera |
| 3. | 12 Mar 2002 - 18 Mar 2002 | (15 posts) | Trochę pracy nad logowaniem zdarzeń |
| 4. | 13 Mar 2002 - 16 Mar 2002 | (30 posts) | 2.4 Przechodzi na BitKeepera; dyskusja na temat cech BitKeepera |
| 5. | 14 Mar 2002 - 19 Mar 2002 | (49 posts) | Konflikty przy ,,imitacji'' portu |
| 6. | 14 Mar 2002 - 18 Mar 2002 | (23 posts) | Dyskusja o cechach BitKeepera |
| 7. | 18 Mar 2002 | (2 posts) | 2.5.7; Urlop |
| 8. | 20 Mar 2002 | (1 post) | Dokumencacja do KGDB |
Mailing List Stats For This Week
We looked at 1976 posts in 8611K.
There were 500 different contributors. 241 posted more than once. 180 posted last week too.
The top posters of the week were:
1. Stan obsługi 386 na Linuksie
5 Mar 2002 - 20 Mar 2002 (84 posts) Archive Link: "[PATCH] Futeksy IV (Szybkie, lekkie semafory w przestrzeni użytkownika)"
People: H. Peter Anvin, Alan Cox, Linus Torvalds
Podczas dyskusji nad czymś zupełnie innym, Linus Torvalds i inni debatowali, w jaki sposób uporać się z indywidualizmem procesora 386 (nie wszystkich x86, szczególnie 386). W pewnym momencie H. Peter Anvin napisał:
Może nadszedł czas aby zaniechać wsparcia dla i386?
Wygląda na to, że wsparcie dla i386 było w pobliżu na zasadzie ,,dopóki nie będziemy mieli powodu, aby zrobić inaczej'', może to jest ten powód?
Z całą pewnością jest wystarczająco wiele małych i drażniących powodów... CMPXCHG, BSWAP i przede wszystkim WP...
Alan Cox odparł:
Zwykle nie ujawniają się one w normalnych sytuacjach. Bswap jest trywialne aż do bólu. Cmpxchg dotyczy tylko maszyn SMP. W tej chwili najgorsze jest cmpxchg8, jeżeli używasz bezpośredniego renderowania. I szczerze mówiąc, jeśli używasz infrastruktury bezpośredniego renderowania na 386, to i tak będzie to troszkę wolne 8)
Więc i tak nie jest to warte psucia ustawień dla 386. 386 SMP to już inna kwestia, ale, na szczęście, nie widziałem lunatyków robiących takie cuda na 386.
Na co Linus opowiedział:
Ponieważ jedyną osobą, która przychodzi mi do głowy, będącą na tyle szaloną, aby chociaż _próbować_ używać Linuksa na 386-SMP jesteś Ty, Alan, więc naprawdę ulżyło mi, gdy usłyszałem to od Ciebie ;)
I nie, nie jest to warte przerwania wsparcia dla i386. Po prostu opieka nad tym nie jest wystarczająco męcząca.
Zauważ, że przez _długi_ czas i386 mimo wszystko było ,,pasierbem'': ze względu na brak WP, jądro po prostu nie robi poprawnie wątkowanego MM na 386. Nigdy nie robiło i nigdy nie będzie.
Jednakże, znany ,,niepoprawny'' przypadek jest na tyle niejasny, że nie jest to nawet problem -- choć podejrzewam, iż znaczy to, że nie powinieneś pozwalać niezaufanym użytkownikom myszkować na maszynie i386, zawierającej jakiekolwiek ważne dane. Z pewnością mógłbym wymyślić exploity, które by zadziałały, przynajmniej w teorii (czy mają szansę zadziałać w praktyce -- tego nie wiem).
Używanie i386 na serwerach sieciowych nie sprawia oczywiście problemów. Po prostu nie używaj ich do farm CPU (nie to, żebym uważał że każdy tak robi -- potrzeba całkiem sporej farmy maszyn i386, aby dorównać nawet _jednemu_ PII ;)
2. Niektórym deweloperom nie podoba się licencja BitKeepera
5 Mar 2002 - 14 Mar 2002 (109 posts) Archive Link: "Petycja przeciwko oficjalnej akceptacji BitKeepera przez opiekunów Linuksa"
People: The Open Source Club at The Ohio State University, Andrew Morton, Rik van Riel, Alan Cox, Colin Walters, Zwane Mwaikambo, Alexander Viro, Dave Jones, Cort Dougan, Linus Torvalds, Larry McVoy
W BROKEN KCREF, napisałem, że część dyskusji o BitKeeperze, która była prowadzona poza listą, przeniosła się na nią. Wątek ten cały czas był na obecny linux-kernel, ale był ciągle aktywny, więc przesunął mi się do skrzynki pocztowej przewidzianej na następny tydzień. Ten wątek, który zobaczyłem wcześniej, wybił się z głównej gałęzi i zakończył się w momencie, w którym uznałem, że mogę go opisać.
W każdym razie stało się, a oto reszta tamtej dyskusji. Open Source Club z Ohio State University (ucieleśniony przez Michaela Benedicta, Colina Waltersa, Matta Curtina, Martina Jansche, Balbira Thomasa, Nicholasa Hurley'a, Ryana McCormacka i Shauna Rowlanda) napisał:
Nam, niżej podpisanym członkom oraz władzom Open Source Club na Ohio State University, nie podoba się promowanie nie-wolnego (http://www.mit.edu/afs/athena/user/x/i/xiphmont/Public/critique.html) oprogramowania, jakim jest BitKeeper, w celu rozwijania jądra Linuksa. Jądro Linuksa jest ważnym symbolem Open Source i Wolnego Oprogramowania dla wielu ludzi i projektem, w którym aktywnie uczestniczyło tysiące ludzi. Jest w porządku, jeśli niektórzy deweloperzy jądra wybierają BitKeepera i pracują z nim na własnych maszynach, ale oficjalne wprowadzanie nie-wolnego oprogramowania jako środka do pracy nad jądrem jest dużym krokiem wstecz dla Linuksa oraz dla społeczności Open Source i Free Software.
Jeśli główni opiekunowie Linuksa zaczną popierać używanie BitKeepera, to wywrą silną presję na tych mniej ważnych deweloperów, bo najprawdopodobniej będzie to łatwiejsze niż czytanie list zmian na stronach www lub pozyskiwanie najnowszych diffów z kernel.org.
Używanie systemu kontroli źródeł, który jest nie-wolny i ma zamknięte źródła, na potrzeby jądra, jest gorsze nawet od używania innych form nie-wolnego oprogramowania, takiego jak systemy analizy kodu, bo metadane związane z kontrolą wersji (numery wersji, gałęzie, komentarze na liście zmian itp.), będą trzymane w formacie definiowanym przez nie-wolne oprogramowanie. Te metadane są właściwie częścią Linuksa, bo ludzie będą chcieli ich używać podczas opowiadania o jądrze. Ci, którzy nie mogą (być może nie są wystarczająco regularnie podpięci do Internetu), albo nie chcą używać BitKeepera zostaną zostawieni na lodzie. Jedną z najważniejszych części Open Source, jak i Free Software, jest to, że my, czyli społeczność, mamy kontrolę. Ale przez używanie i popieranie BitKeepera stracimy część tej kontroli.
Podsumowując, proszę nie głosujcie za tym, by BitKeeper był używany przez społeczność. Wydaje się, że rozwijanie Linuksa jakoś działało do tej pory i możemy jeszcze trochę dłużej poczekać znaim Arch (http://www.regexps.com/#arch) lub Subversion (http://subversion.tigris.org) zostaną ukończone. Co więcej, dostępne są wolne systemy kontroli wersji, które są całkiem funkcjonalne, z pełnym zestawem opcji, takie jak PRCS (http://prcs.sourceforge.net) i CVS (http://www.cvshome.org). Szanujemy wolność opiekunów jądra, nie mamy nic przeciwko używaniu przez nich nie-wolnego oprogramowania dla własnych celów. Prosimy ich jednak o szacunek dla wolności społeczności, uwolnienia jej z pułapki nie-wolnego oprogramowania.
Andrew Morton odpowiedział:
Na ile to jest warte, wolę nie używać bitkeepera z przyczyn, które podaliście.
To jest mój wybór. Inni mogą zdecydować inaczej. Proszę tylko o to, by upewnili się, że ich wybór nie wpływa na moją możliwość przysłużenia się Linuksowi.
(W tym miejscu Andi Kleen rozpoczął podwątek, który znalazł się w zeszłotygodniowym odcinku.)
Randy Dunlap także odpowiedział Andrew przyznając mu rację. W innym miejscu Eric W. Biederman zasugerował, żeby ludzie protestujący przeciwko BitKeeperowi mogliby, zamiast pisania petycji, zrobić więcej w kierunku stworzenia jego wolnego następnika. Rik van Riel zgodził się z tym, pisząc: "wybór między nie-całkiem-wolnym narzędziem i brakiem użytcznego narzędzia jest prosty. " Pau Aliagas zaproponował wypróbowanie Arch, ale Rik nie odpowiedział. Gdzie indziej Alan Cox także odpowiedział grupie z Ohio, mówiąc:
Od samego początku Linus powtarzał, że nie zamierza nikogo zmuszać do używania bitkeepera. Koniec sprawy. Jeśli sądzisz, że jest wystarczająco wolny to go używaj, jeśli sądzisz, że nie (albo myślisz po prostu, że to gówniane oprogramowanie), to go nie używaj.
Jeśli to naprawdę aż tak cię obraża, że musisz przygotować petycję, to w trakcie zbierania podpisów napisz lepszy program i wypuść go na ulubionej licencji.
Colin odparł, że praca nad narzędziami zastępującymi BK trwa. Dodał: "W petycji nigdy nie wspomniano o ,,przymusie''. I nawet gdyby Linus (ani żaden z głównych opiekunów) zechcieli, to nie mogą nikogo *zmusić* do używania BitKeepera. Problemem jest tu silny nacisk na mniej ważnych deweloperów, oficjalne popieranie BK we wszystkich możliwych miejscach. Nam (tym, którzy podpisali petycję) i innym to się nie podoba." Zwane Mwaikambo odparł: "Praca już trwa? Świetnie! Nie zapomnijcie ogłosić kiedy produkt będzie gotowy do użycia w produkcji, do tej pory to będzie tylko sport i podskakiwania."
W innym miejscu, w trakcie dyskusji, Alexander Viro napisał:
niektórzy z nas są zainteresowani tworzeniem _DZIAŁAJĄCEGO_ oprogramowania. Preferujemy wolne; GPL jest zwykle akceptowalne; ale wszystko co nie jest nic warte, na ogół nie jest warte przez fatalny projekt i kod.
Hypokryzja (albo szaleństwo - sami wybierzcie) przemawia przez tych, którzy stanowczo twierdzą, że powinno się preferować politycznie poprawne narzędzia, nawet wtedy, gdy ewidentnie obsysają.
Jeśli czujesz, że największy problem polega na tym, że istnieje nie-wolne oprogramowanie, to masz do tego prawo. I problem. Moim, nie tak znowu skromnym, zdaniem, fakt, ze większość zarówno wolnych jak i nie-wolnych programów jest bez sensu, jest troszkę bardziej problematyczny. YMMV.
Dodał: "BTW, bitkeeper nie rozwiązuje moich problemów. To samo dotyczy CVS. Zatem nie używam żadnego. Jednak BK jest bliższy temu czego potrzebuję. Jeśli kiedykolwiek okaże się, że jest to to, co mi się naprawdę przyda, to będę tego używał i niech będę przeklęty, jeśli to ukryję. " A Dave Jones odparł:
Módlcie się za brata Viro. Postawiony twarzą w twarz z ogromnym zadaniem zsynchronizowania 6MB diffa z Linusem, zdecydowałem, że jest to właściwy czas na poświęcenie popołudnia (które zamieniło się w wieczór) na zobaczenie, czy z bk można to zrobić łatwiej.
Nie ma nic w bk, co sprawiłoby, że moje życie stałoby się trudniejsze, ale jest w nim potencjał, który może je zrobić *znacznie* łatwiejszym. I wydaje się, że Larry jest otwarty na sugestie, co niweluje mit, że jest to ,,zamknięte, komercyjne, blah''.
Dzielenie fragmentów może stać się niedługo jeszcze łatwiejsze, jeśli Larry i ja wymyślimy jakiś sposób na implementację niektórych moich perwersyjnych pomysłów pozmieniania csetów w coś bardziej elastycznego niż jest teraz.
Synchronizacja drzewa Linusa i mojego nie jest trudna, ale dzielenie wszystkiego na fragmenty zabiera czas. bk jest w połowie drogi do zautomatyzowania tego dla mnie. CVS i przyjaciele nie osiągneli nawet linii startu w tej kwestii.
Godziny spędzone z diff/grepdiff/filterdiff/vim w porównaniu z paroma kliknięciami przy użyciu bk citool.
Jeśli nie podoba ci się licencja, to w porządku. Nie używaj tego, ale przynajmniej daj innym możliwość posiadania własnego zdania zanim spróbujesz narzucać im _swoją_ opinię.
W innym miejscu, w zupełnie innym podwątku, Andrew powiedział:
Nie sądzę, by ktokolwiek krytykował możliwości bk albo jego niezawodność. Być może było parę mamrotań o wydajności. Wydaje się, że to fantastyczny fragment oprogramowania.
Ale nie o to chodzi! Nikt, powtórzmy nikt, nie jest zadowolony z kwestii licencjonowania. Dla niektórych ludzi codzienne korzyści przeważają nad filozoficznymi rozważaniami. Dla innych nie. To jest przedmiotem tej dyskusji.
Mogę wyróżnić tu dwie dyskutowane rzeczy:
Jądro jest wiodącym projektem free software. Inni ludzie nie chcą by do rozwijania jądra używano bitkeepera, bo może to osłabić ruch.
Osobiście nie sądzę żeby ,,ruch'' był na tyle słaby, by mogło nadejść jego zniszczenie. A systemy zarządzania wersjami są taką działką, w której wolne narzędzia są słabe. To jest jeden szczególny wyjątek i trudno przewidzieć jak coś złego może przez to nastąpić.
W innym miejscu także Cort Dougan napisał: "Przeniosłem drzewo PPC na BitKeepera i to się opłaca. Co noc robię uaktualnienia rsync i gołe stare łaty robione przez 'diff' w stosunku do drzewa Linusa. Zrobienie tego było szybkie i łatwe, działa mi to świetnie już prawie 2 lata. Naprawdę możesz ciągle brać łaty z ftp://ftp.kernel.org/pub/linux/kernel/people/cort/. Co wam się nie podoba w BK niezwiązanego z wyznawaniem licencji? Nie widzę, co jest tu do stracenia. To, co zyskują ludzie dostarczający łaty, jest tego warte. Zanim nie oddałem opieki nad drzewem PPC Paulowi, dałbym się zabić by przekonać Linusa do używania BK, by przekazywanie mu łat stało się łatwiejsze dla wszystkich zainteresowanych. Jeśli byłbym stale opiekunem, to moja odpowiedź ludziom, którzy walczą przeciw BK, ze względu na coś tak niepojmowalnego jak ,,odczucia'' odnośnie licencji, byłaby mniej łagodna Spędziłem wiele niepotrzebnych godzin na przygotowywaniu i dostarczaniu łat, BK pomaga tego uniknąć obecnej załodze."
Gdzieś indziej Linus Torvalds napisał:
Parę rzeczy:
Oczywiście nie wymagam od nikogo używania BK. Ułatwia mi to życie w kontaktach z niektórymi ludźmi (głównie tymi, którzy są opiekunami podsystemów i przesyłają mi wiele łat), ale jest wielu deweloperów, którzy NIE używają BK i to zupełnie nie powoduje zwolnienia tempa ich pracy.
Popatrzcie na przykład na łaty FS autorstwa Ala Viro: BK spowodował dotąd tylko, że Al stwierdził, że listy zmian są znacznie lepsze i załącza komentarze w poczcie elektronicznej.
Utrzymuję moje drzewo także w formie zwykłych łat, w sposób, w jaki zawsze to robiłem (dobra, obecny format jest odrobinę inny, ale to tylko kwestie syntaktyczne)
Jeśli Larry przejdzie na ciemną stronę (albo, jak niektórzy by powiedzieli, na ,,jeszcze ciemniejszą stronę'' ;), wszystko _nadal_ będzie w porządku. Dane nigdzie nie giną, on nie może tego po prostu zamknąć. Będziemy tylko musieli przekształcić je do nowego formatu.
Jeśli dojdzie do najgorszego i nikt nie poprawi CVS/subversion/czegokolwiek do tego czasu, to po prostu wrócę do starego sposobu pracu. Nic nie tracimy.
Jeśli członkowie społeczności otwartych SCM przebudzą się i zauważą, że obecnie otwarte systemy SCM nie są świetne, to _dobrze_. Ale to NIE jest wymówka dla używania ich już dziś. Przykro mi. Używam CVS-a w pracy i nigdy nie mógłbym używać go dla Linuksa. Przyjrzałem się subversion i to nie jest nawet zbliżone do tego co bym chciał.
Osobiście odmawiam używania gorszych narzędzi ze względu na ideologię. Posunę się nawet dalej i powiem, że tworzenie wymówek dla złych narzędzi ze względu na ideologię jest _głupie_, a ludzie którzy to robią myślą gonadami, nie mózgami.
W skrócie: nikt nie wymaga od innych używania BK. Jednak podoba się on wielu ludziom i usprawnia wiele rzeczy. Niektórzy nie są przekonani - David Miller właśnie go wypróbowywuje i nie ma o nim najlepszego zdania. Inni, używając BK, poczuli się jak ryby w wodzie.
Najbardziej produktywną rzeczą, którą niektórzy mogliby zrobić jest bramka BK->CVS, jeśli byłaby komuś potrzebna. Można się też nie przejmować i zignorować to, że niektórzy ludzie używają BK - nie potrzebujesz w sumie tego wiedzieć.
Larry McVoy odpowiedział, "Myśleliśmy o stworzeniu interfejsu CVS pserver do BK, tylko do czytania, który pozwoliłby conajmniej ułatwić wyciąganie danych w formie, którą lubią GPL-owi goście. Inni powinni móc to robić skryptem perlowym. Można spróbować też zrobić czytanie i pisanie, ale jest to znaczne trudniejsze, pomieszanie intencji między BK i CVS staje się bardziej widoczne w przypadku pisania i czytania."
3. Trochę pracy nad logowaniem zdarzeń
12 Mar 2002 - 18 Mar 2002 (15 posts) Archive Link: "[PATCH-RFC] Logowanie zdarzeń POSIX, jądro 2.5.6 & 2.4.18"
People: Larry Kessler, Brian Beattie
Larry Kessler ogłosił:
Ta łata, w połączeniu z biblioteką logowania zdarzeń i powiadamiania o zdarzeniach, dostarcza obszernego pakietu logowania zdarzeń, na podstawie projektu standardu POSIX 1003.25. Zajrzyjcie na http://evlog.sourceforge.net/ aby dowiedzieć się więcej i ściągnąć pliki.
Podsumowanie łaty na jądro:
Dostarczane są funkcje do:
Chciałbym, aby jasne było, to NIE ma zastąpić printk i sysloga, lecz współistnieć z nimi i dostarczać dodatkowych funkcji, niedostępnych przy printk/syslog, które są mocno pożądane na dużych serwerach i środowiskach Telecom (parę przykładów).
Dominik Kubla poczuł, że proponowana obsługa przepełnienia bufora może stwarzać problem z bezpieczeństwem; atakujący mógłby po prostu zapełnić bufor a następnie dokonać próby włamania, która nie zostałaby zalogowana. Larry odparł, "Słuszna uwaga, ale jeśli wielkość bufora jest odpowiednio dopasowana do ilości napływających zdarzeń, a demon logowania czyta zdarzenia z bufora jądra (jak zazwyczaj winno się dziać), zobaczyłbyś te zdarzenia." Dodał: " Motywacją takiego podejścia jest zwiększenie prawdopodobieństwa, że zdarzenia wskazujące na ,,główny powód'' zostałyby zalogowane, a nie nadpisane przez zalew drugorzędnych zdarzeń. Miej na uwadze, że jedynie zdarzenia pochodzące z jądra (lub jego modułów) są trzymane w tym buforze."
W innym miejscu, Bernd Eckenfels pomyślał, że łata Larry'ego byłaby całkiem przydatna, ale tylko wtedy, gdy byłaby substytutem dla netlink i print, a nie miała z nimi współistnieć. Poczuł, że dodawanie kolejnej struktury prowadziłoby do zaśmiecenia jądra. Ale Larry odparł, że niemożliwym byłoby zmuszenie każdego opiekuna do współpracy przy zamianie 41000 istniejących już w jądrze wywołań printk na jego funkcje piszące. Napisał: "Zamiast tego, chcemy dostarczyć rozbudowanych funkcji logowania dla nowych i zaktualizowanych sterowników urządzeń i reszty kodu jądra -- bardziej jako podejście ,,powolna migracja w czasie''. Dostarczyliśmy funkcję, która tworzy rekordy zdarzeń POSIX z printk-ów, aby Administratorzy Systemów, obsługa pola, deweloperzy testujący i odpluskwiający swój kod (wymieniam kilka przypadków) wciąż mogliby korzystać z zalet nowych narzędzi dostarczanych z biblioteką użytkownika (jest ich zbyt wiele, aby wymieniać; zobaczcie specyfikację na stronie), służących do obsługi komunikatów printk."
Dodał: "Oczywiście, nawet z lepszymi narzędziami wciąż mogą się znaleźć Ci, którzy chcą widzieć printk-i tylko w /var/log/messages. Zasugerowano również, aby zdarzenia w logu, które nie pochodziły od printk, powinny być również zapisane do /var/log/messages, właśnie z tego powodu." On i Bernd dyskutowali na ten temat w tę i z powrotem przez jakiś czas, aż w pewnym momencie Brian Beattie przerwał:
Zastanawiam się, czy troszeczkę inne podejście nie byłoby lepsze. Zamiast dodawania kolejnej funkcjonalności jądra, czy nie można byłoby zdefiniować formatu tekstu dla komunikatów i pewnych PROSTYCH makr, aby umożliwić printk generowanie pożądanych informacji?
Rozumiem standardy POSIX, ale nie są one nieomylną dietą komputerową i czasami są kompletnym głupstwem. Pomimo, iż dostarczają przemyślanych planów, nie są IMHO jakimś Świętym Graalem. Jeśli chodzi o głupie standardy, popatrzcie na ostatnie rzeczy na temat nazw dla K = 10^6 vs. K = 2^10.
Jeśli więc odrzuci się ścisłą zgodność z POSIX i skupi na dostarczaniu informacji, może uda się podać pewne wytyczne formatowania, wsparcie dla printk i jakieś narzędzia do analizy logów, aby dostarczyć 99% rozwiązanie.
Rzeczą, o której należy pamiętać jest to, że naprawdę trudną i ważną częścią logowania nie jest część, która może być ustalona prawnie, czy zautomatyzowana, tylko upewnianie się, iż właściwe zdarzenia są zgłaszane w odpowiedni sposób; i nie jest to jednorazowa robota. W tym przypadku, wolałbym raczej widzieć wysiłki skierowane ku racjonalizacji obecnych printk-ów i udoskonalaniu ich użycia, niż dodawaniu jakiejś nowej infrastruktury, która może równie dobrze ograniczać wydajność a nawet być bardziej podatna na utratę komunikatów, niż obecna metoda.
Larry zgodził się, że ważny był sceptycyzm wobec standardów, ale napisał: "W tym przypadku standard POSIX nie jest standardem, ale obecnie tylko projektem, a my (Linuksowy zespół logowania zdarzeń) byliśmy (i będziemy) bezpośrednio związani z jego pisaniem, edycją i (ewentualnie, mam nadzieję) adopcją jako standardu." Kontynuował, mówiąc iż pomysł Briana, może będący dobrym rozwiązaniem, a może nie; był interesujący. Napisał: "Prawdę mówiąc, dyskutowaliśmy, w jaki sposób wyciągnąć z printk więcej informacji, nie prosząc opiekunów jądra o używanie innego API. Szczególnie myśleliśmy o zmianie nazwy funkcji printk() i stworzeniu makra printk. W makrze tym zbierałbyś nazwę pliku źródłowego, numer linii i nazwę funkcji (i może jakieś inne użyteczne informacje), a potem wywoływał przemianowaną funkcję printk z oryginalnym komunikatem i dodatkowymi parametrami (dokładniej mówiąc, myśleliśmy o wywołaniu posix_log_write() z oryginalną wiadomością i dodatkowymi informacjami a następnie wywołaniu przemianowanej funkcji printk tylko z oryginalnym komunikatem)." W tym miejscu dyskusja wyczerpała się.
4. 2.4 Przechodzi na BitKeepera; dyskusja na temat cech BitKeepera
13 Mar 2002 - 16 Mar 2002 (30 posts) Archive Link: "Linux 2.4 i BitKeeper"
People: Marcelo Tosatti, Stephen Torri, Ben Greear, David Woodhouse, Linus Torvalds, Larry McVoy
Marcelo Tosatti ogłosił: "Zacząłem używać BitKeepera do zarządzania kodem Linuksa 2.4. Moje ostatnie drzewo można znaleźć pod adresem linux24.bkbits.net." Stephen Torri odparł sarkastycznie: "Nie było łatwo, krew się polała, ale można w końcu dotrzeć BitKeeperem do najnowszych i najlepszych. Super! Może powinienem regularnie dostarczać świeżej krwi. Pracuj dalej tak świetnie. Oczywiście doceniam twoją pracę. " Nie było na to odpowiedzi, ale w innym miejscu parę osób miało problemy ze ściągnięciem drzewa Marcelo. W pewnym miejscu Ben Greear napisał, że użył 'bk clone bk://linux24.bkbits.net/linux-2.4' w celu sklonowania drzewa i dodał: "Nie widzę jednak żadnych plików, jedynie katalogi. Wydaje się, że pliki są w katalogach SCCS, ale nie wiem jak zrobić, żeby pokazały się w normalnych miejscach." David Woodhouse odpowiedział:
Napisz ,,make config''. Make jest wystarczający sprytny by wydobyć dla ciebie Makefile z SCCS. Dodaj do Makefile brakujące zależności, tak by make ściągnęło rzeczy takie jak scripts/Configure zanim spróbuje je uruchomić, itd.
Trywialnym zadaniem jest otrzymanie wszystkich plików Config.in przez analizę arch/$(ARCH)/config.in.. ale musisz explicite wyciągnąć wszystkie katalogi include, bo nie wiemy jeszcze jak sobie z nimi dawać radę. Przy użyciu kbuild-2.4, make dep nie będzie działało zbyt dobrze, ale kbuild-2.5 powinno już sobie dawać radę ze wszystkim, prócz plików nagłówkowych.
Można także wcześniej to wyciągnąć przy użyciu bk -r co.
Larry McVoy spytał, czy komuś udało się użyć zaklęcia ,,make config'' w tej sytuacji, mowiąc, że to oszczędziłoby sporo miejsca i poprawiło wydajność, jeśli by działało. Ale Linus Torvalds odpowiedział:
Hej, _rozsądnym_ sposobem na zrobienie tego jest pozbycie się tych śmieciowych zależności SCCS we wszystkich narzędziach i przekształcenie roboczych zbiorów bk w prawdziwe drzewo plików!
Larry, twoja argumentacja, że są narzędzia, które są świadome istnienia SCCS nie trzyma się kupy. Dla każdego takiego narzędzia wymienię sto takich, które nie obsługują SCCS, a których nie zamierzasz naprawiać. Jedyny rozsądny sposób by _wszystko_ działało z bitkeeperem to taki, żeby trzymać drzewo w jednym miejscu, a pliki bitkeeperowe w innym.
Obecnie proste rzeczy, takie jak dopełnianie w linii poleceń, czy
find . -name '*.[chS]' | xargs grep xxxx
nie działają, bo nie znajdują plików, albo znajdują nie te (wewnętrzne pliki bitkeepera itp).
Wolałbym mieć osobne miejsce do pracy, to znaczy jeśli moje repozytorium jest pod ~/BK/repository/kernel/linux-2.5, to wyciągnięte drzewo pod ~/BK/repository/kernel/linux-2.5/workarea, a ja miałbym po prostu link symboliczny z ~/v2.5 do workarea (i nigdy nawet nie _widzieć_ plików BitKeepera, chyba że jest to potrzebne).
Żadnych gównianych ,,specjalnych narzędzi dla normalnych czynności''.
Kilka wiadomości później kontynuował:
Faktem jest, że połączenie katalogów związanych z kontrolą wersji i obszaru roboczego jest błędem projektu, jednym, który uwieczniony został przez BK ze względu na zapatrzenie Larry'ego na fakt, że ,,make'' oraz ,,patch'' wiedzą już jak działa SCCS.
(Wypada zauważyć, że ten błąd w projekcie jest jedną z przeszkód dla poprawiania baz danych BK. Ogranicza samodzielne działania w dłuższym okresie, dlatego probuję namówić Larry'ego na naprawienie tego).
Larry odpowiedział:
Ten ,,błąd w projekcie'' został zrobiony by mieć BK generującego czyste pliki SCCS i bym mógł testować, że robię to samo, co dobrze znane działające narzędzie -- ATT SCCS. Dzięki temu oszczędziłem sobie rok pracy projektowej. Sprawienie by pośrednie delty działały jest dla mnie trudne (mamy teraz Ricka, który więcej zapomniał o takich rzeczach niż ja kiedykolwiek będę wiedział, ale nie mieliśmy go gdy pisałem wstawki zapewniające zgodność z SCCS).
W tej chwili bardziej wierzę naszej implementacji niż tej ATT, bo nasza obsługuje niektóre przypadki, z którymi tamta nie daje sobie rady; mniej mi więc zależy na zgodności.
Wiemy, że możemy osiągnąć lepsze wyniki i istotnie zredukować fragmentację przez wciśnięcie wszystkich plików do jednego dużego, wiemy to już od długiego czasu. Zamierzamy to zrobić, wy zamierzacie to pokochać, bo jest mniej tuczące i smakuje fantastycznie. Tylko, że jest wiele rzeczy, które możemy zrobić zaraz, a to jest na naszej krótkiej liście, ale nie na samej górze. Gdy naciskasz nas byśmy zrobili jakieś poprawki, to pamiętaj, że nie ma nic za friko, staraj się stosować jakieś priorytety.
Zamierzam pogrzebać conajmniej w make i patch, by poznały nowy format i pracować w sposób, w jaki one teraz pracują. Zatem mogę mieć twoje ciastko i jednocześnie je zjeść. Jeśli nie uda mi się przekonać FSF by przyjęło te zmiany to je wprowadzimy, wprowadziliśmy już diff & patch, więc nie jest trudno zrobić alias make='bk make'.
5. Konflikty przy ,,imitacji'' portu
14 Mar 2002 - 19 Mar 2002 (49 posts) Archive Link: "Opóźnienie WE/WY, port 0x80 i kody BIOS POST"
People: Martin Wilck, Richard B. Johnson
Martin Wilck zgłosił:
BIOS na naszych maszynach (Phoenix) używa portu WE/WY 0x80 do przechowywania kodów POST, nie tylko podczas startu systemu, ale również dla komunikatów generowanych podczas operacji SMM (tryb zarządzania systemem, System Management Mode). Powiedziano mi, że inne BIOSy robią to samo.
Niestety, nie możemy przeczytać tych informacji, ponieważ Linux używa portu 80 jako ,,imitacji'' portu dla opóźnianych operacji. (outb_p i kumple, wygląda na to, że w kodzie jest, wpisanych na sztywno, więcej odwołań do portu 0x80).
Wydaje się, że problem jest tam od zawsze, tylko nikt go jeszcze nie zauważył (przynajmniej w naszej firmie). Czasami ludzie dziwili się dziwnymi kodami POST wyświetlanymi na panelu LCD, ale któżby się nimi przejmował, skoro maszyna wstała...
Czy zniewagą byłaby prośba o zmianę numeru tego portu, lub uczynienie go konfigurowalnym?
Richard B. Johnson odparł: "To jest 'N'-letnie pytanie. Czy znasz port, który na pewno występuje na maszynach klasy Intel/PC/AT? Jeśli tak, przedstaw łatę. Kilka lat temu proponowałem użycie 0x19h (DMA scratch register), ale z jakiegoś powodu to odstrzelono. Potem zaproponowałem 0x42 (PIT Misc register), które również zostało zaklasyfikowane jako ,,spoza limitu''. Zasugerowałem więc, aby outb do 0x80 zostało zmienione na inp, aby zaoszczędzić %eax na stosie. To również odrzucono. Więc, spróbuj czegoś... życzę szczęścia. "
Ktoś zaproponował zrobienie z tego opcji konfiguracyjnej, ale Martin Wilck
napisał, że wystarczyłoby #define i komentarz w kodzie, w jaki
sposób zmienić port dla danej konfiguracji. Później, Martin ogłosił:
ta łata daje możliwość globalnej konfiguracji użycia ,,imitacji'' portu 0x80 poprzez makro w (nowym) pliku asm-i386/iodelay.h. Chyba nikt nie chce widzieć tego w menu konfiguracyjnym.
Starałem się wychwycić wszystkie próby dostępu do portu 0x80, mimo to niektóre mogły mi uciec.
Myślę, że nawet jeśli nikt nie chce w najbliższej przyszłości używać czegokolwiek innego niż 0x80, to łata ta i tak jest przydatna, ponieważ przeszukiwanie drzewa pod kątem 0x80 wcale nie jest zabawne.
Z tą łatą, nasze diody sygnalizujące kody BIOS są stabilne.
Parę osób dyskutowało przez chwilę na temat implementacji.
6. Dyskusja o cechach BitKeepera
14 Mar 2002 - 18 Mar 2002 (23 posts) Archive Link: "Problemy z używaniem nowego repozytorium Linuksa-2.4 w bitkeeperze."
People: James Bottomley, Jeff Garzik, Larry McVoy, Christer Weinigel
James Bottomley zgłosił:
Jak ci z nas, którzy używali
http://gkernel.bitkeeper.net/marcelo-2.4
w celu rozwijania, zsynchronizują się z drzewem z kernel24.bkbits.net? Wydaje się, że zmiany w 2.4.18-pre8 i późniejsze mają różne ID łat w nowym drzewie; zatem jeśli bede próbował wykonać ,,pull'' z moim aktualnym repozytorium, to dostanę tony konfliktów, jeśli spróbuję uzyskać tylko zbiór łat, to dostanę błąd synchronizacji:
takepatch: can't find parent ID
jgarzik@mandrakesoft.com|ChangeSet|20020225230300|18879
in RESYNC/SCCS/s.ChangeSet
Myśl o wyróżnieniu wspólnego przodka i potem próbach nakładania pojedynczo kolejnych zmian i ręcznym dodawaniu list zmian, nie jest specjalnie pociągająca (Mam 3 repozytoria 2.4, niektóre z dodatkowymi 10 zbiorami zmian).
Jeff Garzik odpowiedział: "Wykonaj po prostu ,,bk pull'' na moim drzewie marcelo-2.4. Ponieważ, dokładnie tak jak drzewo Marcelo, jest ono oparte na oryginalnym drzewie linux-2.4, udało mi się połączyć moją linię 2.4 z jego." Ale James powiedział, że gdy próbował to zrobić to dostał wiele początkowych konfliktów związanych ze zmianą nazwy. Jeff odparł, "To normalne, musisz tylko zaakceptować zdalne zmiany dla wszystkich nowych plików i plików o zmienianych nazwach. BitKeeper nie obsługuje tego automatycznie dla wszystkich plików, musiałem więc zaznaczyć sobie odpowiednie odpowiedzi w innym okienku, a potem kliknąć myszką <wklej> około 300 razy... (~300 nowych plików)."
Larry'emu McVoyowi zrobiło się słabo i zaoferował się, że doda opcję umożliwiającą automatyczną akceptację. Dodał też, że podejrzewa, że mogą wystąpić pewne problemy. Zapytał, co tak naprawdę przydarzyło się Jeffowi. Jeff odpowiedział:
Zacząłem od repozytorium linux-2.4 Linusa i to samo zrobił Marcelo. Niezależnie od siebie wprowadzaliśmy łaty 2.4.ostatnie (włączając w to właściwe użycie renametool), które zawierają włączenia ia64 i mips, które to włączenia dodawały tony plików. Jeśli zrobisz ,,bk pull'' z drzewa Marcela linux-2.4 do mojego starego repozytorium marcelo-2.4, musisz powiedzieć BitKeeperowi, że naprawdę chcesz zaufać kopii Marcelo, a nie mojej, dla każdego z około 300 nowych plików, które zostały dodane między stworzeniem repozytorium linux-2.4 Linusa i dwa dni temu. Zatem zaznaczyłem ,,rl\ny\n'' w innym okienku i użyłem środkowego klawisza myszki... Zmiany nazw mogłyby być podobnie obsłużone, ale było ich tylko trochę, więc po prostu wpisałem ręcznie "r\ny\n" 10 czy 20 razy.
Ktoś może się kłócić, że do rozwiązywania konfliktów między dwoma nowymi plikami użyteczne byłyby polecenia ,,rla'' lub ,,lla'', które mówiłyby BitKeeperowi by akceptował zdalne (lub lokalne) dodane pliki w danym przypadku _oraz_ we wszystkich następnych przypadkach.
Ktoś może też argumentować, że BitKeepera trzeba wywrócić do góry nogami, bo nie wykrywa, że tworzone pliki lub pliki o zmienianych nazwach mają tę samą zawartość.
Larry odpowiedział na to, że Jeff i Marcelo niezależnie umieścili niektóre najnowsze łaty. Napisał:
W porządku, wiem już jaka jest główna przyczyna. Przyszedł czas na rozmowę o powtarzających się zmianach. Wiecie jak bardzo Linus nienawidzi błędnych zbiorów zmian w historii i nie chce ich tam? Cóż, ja nienawidzę duplikujących się zbiorów zmian i nie chcę ich. Jest ku temu wiele powodów. Jednym z nich jet to, że oznacza to, że revtool staje się znacznie mniej użyteczne przy debugowaniu. Jeśli próbujesz prześledzić zmianę, która spowodowała błąd, ale jest ona zaciemniona przed duplikującą się łatę, nie wiadomo na czym się stoi. Innym powodem jest tworzenie plików. Załóżmy, że ty i Marcelo obaj stworzyliście plik o nazwie ,,foo''. Wykonujesz ,,pull'', pojawia się konflikt plików, więc usuwasz jeden z dwóch plików. Tak naprawdę nie jest on usuwany, tylko przesuwany do BitKeeper/deleted. Czas mija i ty lub ktoś inny naprawia błędy we wcześniej połączonej kopii drzewa, a ty uaktualniasz ,,foo''. Potem ściągasz tę poprawkę, a ona z powodzeniem zostaje nałożona na *usuniętą* kopię pliku, jako że właściwy trop prowadzi przez i-węzły, a nie ścieżki. Świetnie, teraz możesz już zacząć łamać sobie głowę zastanawiając się gdzie się podziała poprawka.
Są rzeczy, które możemy zrobić w BK by sobie z tym poradzić, ale nie są łatwe i zajmą kilka miesięcy, tak mi się wydaje. Chciałbym sprawdzić, czy możecie to jakoś obejść unikając po prostu duplikujących się łat. Jeśli możecie, to tak róbcie, oszczędzicie sobie dużo zmartwień.
Jeśli zdarzy Ci się, że łaty się zduplikują, to najlepiej wziąć jedno lub drugie drzewo i potraktować je jako oficjalne, a potem dodawać po jednej zmiany, które są w nieoficjalnym drzewie i umieszczać je w oficjalnym. Potem wyrzucić to nieoficjalne. Mogę dorobić polecenie ,,bk portpatch'', które to zrobi, to juz mamy, wymaga tylko trochę uaktualnień pozwalających na wyłapanie komentarzy.
Naprawdę chcesz mnie posłuchać, próbuję odwieść Cię od zwalenia historii. Jeśli dostajesz takie 300 zmian nazw, to prawie zawsze jest powodowane przez duplikujące się łaty.
Jeff odparł:
Wiem dlaczego to się stało, głupota.
To był tylko przykład prawdziwego przykładu, który się naprawdę zdarzył, gdy BK dało dupy :)
Drzewo Marcelo w BK nie istniało gdy ja tworzyłem moje marcelo-2.4. Repozytorium marcelo-2.4 żyło przez chwilę i ludzie zaczęli go używać. Gdy pojawiło się ,,oficjalne'' drzewo BK, prowadzone przez Marcelo, ludzie naturalnie zapragnęli migrować do niego. Pojawiły się dwa sposoby na tę migrację: (1) wyeksportować wszystko do łat GNU, lub (2) kliknąć myszką 300 razy.
Zatem świadomość tego, że duplikujące się łaty są złe nie pomaga, przynajmniej w tym przypadku...
W jednej z kolejnych wiadomości kontynuował:
istotnym pytaniem byłoby, czy ten scenariusz może często występować. Nie wiem. Ale założę się, że -zobaczysz- go znowu w trakcie prac nad jądrem. Dlaczego? Wypróbowywujemy rozproszoną naturę systemu oferowanego przez BitKeepera. Obecnie system karze Joe na Alasce oraz Mikhaila w Rosji, jeśli niezależnie nałożą tę samą łatę GNU, a potem spróbują połączyć oba drzewa.
Widzisz o co mi chodzi? W szeroko rozproszonym systemie SCM dla projektów z otwartymi źródłami, szanse na to, że dwoje lub więcej ludzi przypadkiem niezależnie nałoży tę samą łatę, są -duże-.
Larry odpowiedział:
Prawdziwym problemem jest zestaw N diffów nakładanych i łączonych. W historii wersji pojawia się wtedy, że dane były umieszczane N razy.
Nie jestem pewien co z tym zrobić. Mogę obsługiwać przypadek duplikujących się i-węzłów lepiej, ale to nie będzie łatwe.
Możemy się zabawiać, gdy wykryjemy tę samą łatę umieszczoną kilka razy i odmawiac jej włączenia. Hmm. Hmm. Nie jestem pewien, że to pomoże.
Jeff napisał:
Moja propozycja na krótkoterminowe rozwiązanie, które będzie natychmiast użyteczne -- pozwolić w jakiś sposób na odpowiedź ,,zmiany lokalne mają pierwszeństwo w 100%'', lub ,,zmiany zdalne...'', jednym poleceniem. To było moje rozwiązanie, które myślę, że sporo ludzi może uznać za użyteczne, w chwili, gdy trafi im się sytuacja z duplikującymi się łatami.
W trakcie łączenia przy użyciu narzędzia z linią poleceń, prz włączaniu nowoutworzonego pliku, ,,rla'' powodowałoby, że wszystkie obecne konflikty pliku i wszystkie przyszłe konflikty związane z nowymi plikami, będą ,,wygrywane'' przez to, co jest po zdalnej stronie -- chodzi o stworzenie efektu wpisania ,,rl'' 300 razy. Zastosuj podobną logikę w przypadku zmian nazw plików. Sądzę, że komendą łączącą, której użyłem w 100% przypadków w trakcie tego łączenia, było ,,r''.
Jeśli spotka Cię przypadek zduplikowanych łat, tak jak się to tu zdarzyło, chcę zobaczyć, że ból został trochę zmniejszony :) Moim zdaniem możesz odsunąć trudny problem, jeśli ulepszysz interfejs użytkownika.
Christer Weinigel także zasugerował: " Jednym z wariantów mogłoby być automatyczne używanie zdalnych plików, tak długo, jak zawartość plików jest taka sama. Tym sposobem, jeśli nałożę lokalnie łatkę, a Marcello/Linux później nałożą tę samą łatkę i umieszczą ją w oficjalnym drzewie to mogę używać wersji oficjalnej. To prawdopodobnie obsłużyłoby większość konfliktów, które widziałem do tej pory. Jeśli jest jakiś ,,prawdziwy'' konflikt, to mogę dać sobie z nim radę ręcznie."
7. 2.5.7; Urlop
18 Mar 2002 (2 posts) Archive Link: "Linux 2.5.7"
People: Linus Torvalds
Linus ogłosił 2.5.7 i dodał: "UWAGA! Wyjeżdżam na urlop na dwa tygodnie i nie będę przez ten czas czytał poczty. Podczas mojej nieobecności omawiajcie proszę problemy i kwestie postępowania z łatami na linux-kernel z Davem Jonesem, Jeffem Garzikiem etc."
8. Dokumencacja do KGDB
20 Mar 2002 (1 post) Archive Link: "Announce: Dokumentacja analizy wątków z użyciem kgdb"
People: Amit S. Kale
Amit S. Kale ogłosił: "Dokumentacja na temat analizy wątków przy użyciu kgdb jest dostępna pod adresem http://kgdb.sourceforge.net/." Nie było odpowiedzi.
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. |