|
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. | 18 lip 2002 - 30 lip 2002 | (41 posts) | Źródła debaty wokół nazwy 'GNU/Linux' |
| 2. | 19 lip 2002 - 26 lip 2002 | (3 posts) | Połatany sterownik ACPI PCI do wersji jądra 2.4.19-rc2-ac2 |
| 3. | 19 lip 2002 - 25 lip 2002 | (2 posts) | Obsługa sondowania jądra |
| 4. | 22 lip 2002 - 26 lip 2002 | (17 posts) | Wokół problemów z APIC |
| 5. | 23 lip 2002 - 27 lip 2002 | (9 posts) | Planowane rozszerzenie interfejsu programistycznego Watchdog |
| 6. | 24 lip 2002 - 25 lip 2002 | (9 posts) | Kod obsługi stacji dyskietek od dłuższego czasu jest zepsuty w jądrach serii 2.5 |
| 7. | 24 lip 2002 - 25 lip 2002 | (4 posts) | Opieka nad agpgart |
| 8. | 24 lip 2002 - 25 lip 2002 | (2 posts) | Stan strony powiadamiania o problemach w 2.5 |
| 9. | 24 lip 2002 - 28 lip 2002 | (11 posts) | Nowy interfejs modułów |
| 10. | 24 lip 2002 - 25 lip 2002 | (10 posts) | Nieporozumienia wśród deweloperów przy poprawkach hotplugowych aic7xxx |
| 11. | 24 lip 2002 - 29 lip 2002 | (94 posts) | 2.5.28 opublikowane; Stan prac nad IrDA, IDE i SCSI; Filozofia rozwoju |
| 12. | 24 lip 2002 - 25 lip 2002 | (3 posts) | Wersja 'Restrykcyjnej alokacji pamięci' dla 2.5 |
| 13. | 24 lip 2002 - 31 lip 2002 | (18 posts) | Pliki nagłówkowe i binarny interfejs aplikacji jądra |
| 14. | 25 lip 2002 - 26 lip 2002 | (8 posts) | Aktualizacja LVM dla 2.4 |
| 15. | 25 Lip 2002 | (1 post) | Ogólny sterownik RTC |
| 16. | 25 lip 2002 - 28 lip 2002 | (9 posts) | TLS dla 2.5 |
| 17. | 25 lip 2002 | (1 post) | User-Mode-Linux 2.5.28 wydany |
| 18. | 26 lip 2002 - 27 lip 2002 | (7 posts) | Poszukiwana pomoc dla Linux Weekly News |
| 19. | 26 lip 2002 - 27 lip 2002 | (4 posts) | Wsparcie dla SiS IDE ATA 133 w jądrach 2.4 |
| 20. | 26 lip 2002 - 27 lip 2002 | (9 posts) | Obsługa wielu dysków SCSI w 2.4 i 2.5 |
| 21. | 28 lip 2002 | (1 post) | Aktualizacja devfs |
| 22. | 29 lip 2002 | (1 post) | Nowy sterownik PC-Speakera |
| 23. | 29 lip 2002 - 31 lip 2002 | (7 posts) | Stan /proc/pci |
| 24. | 29 lip 02 0 | (1 post) | Obsługa HP Diva w 2.5.29 |
| 25. | 29 lip 2002 - 30 lip 2002 | (3 posts) | Opieka nad 64-Bitowym PowerPC |
| 26. | 29 lip 2002 | (1 post) | Opieka nad Sparc32 |
| 27. | 30 lip 2002 - 31 lip 2002 | (5 posts) | Dokumentacja do BitKeepera |
| 28. | 31 lip 2002 | (1 post) | Modutils 2.4.19 |
| 29. | 31 lip 2002 | (1 post) | Stan drzewa -dj |
| 30. | 31 lip 2002 | (2 posts) | 2.4.19-rc4 wydane |
| 31. | 31 lip 2002 | (1 post) | Uaktualnienie protokołu Stream Control Transmission |
Mailing List Stats For This Week
We looked at 1904 posts in 8822K.
There were 481 different contributors. 244 posted more than once. 171 posted last week too.
The top posters of the week were:
1. Źródła debaty wokół nazwy 'GNU/Linux'
18 lip 2002 - 30 lip 2002 (41 posts) Archive Link: "W porządku, poddaję się. Od czego wzięło się "i" w "iwęźle"?"
People: Kelsey Hudson, Rob Landley
W trakcie dyskusji Rob Landley wyznał, że jest przyczyną krucjaty Richarda Stallmana, który nalega, by nazywać Linuksa 'GNU/Linuksem'. Kelsey Hudson wcześniej zauważył: "Chociaż bardzo szanuję tego gościa za jego wkład w ruch open source, nie mogę przestać siebie pytać, dlaczego jest on tak dziecinny w drobnych sprawach jak ta." A Rob odpowiedział:
Hm, bo próbowałem jakoś mu wytłumaczyć marketing gdy pracowałem w IBM pod koniec 1998 roku? (za co chciałbym bardzo przeprosić całą społeczność. CHCIAŁEM dobrze...)
W porządku, czas się oczyścić. W tamtym czasie strona fsf w sieci miała całą sekcję pod tytułem ,,nie nazywaj systemu operacyjnego linux''. Napisałem więc do Stallmana, by zaprotestować. Linux był rozpoznawalną i umacniającą się marką systemu operacyjnego, podczas gdy projekt Gnu w szerszym środowisku postrzegano głównie jako producenta narzędzi, a nazwa ,,Hurd'' dla większości ludzi nic nie znaczyła (nie wiem, mogłaby być to gra, albo arkusz kalkulacyjny, albo wosk do podłóg). Walka skierowana przeciwko nazwie Linux była wyraźnie bezproduktywna z marketingowego punktu widzenia. Jeśli chcielibyśmy namawiać ludzi do używania ,,Linuksa'', to prawdopodobnie ci namawiani przynajmniej by on nim słyszeli. Mówienie ,,To nie jest Linux!'' spowodowałoby, że czuliby się zagubieni. Krucjata Stallmana skierowana przeciwko Linuksowi zmniejszała znaczenie jednego z większych dokonań wolnego oprogramowania.
POWODEM, dla którego on to robił, zgodnie z jego stroną w sieci, było to, że hurd zastąpi jądro Linux. Powiedziałem mu, że jeśli naprawdę chce traktować ,,Gnu Hurd'' jako następcę ,,Gnu Linux'', jak to napisano na jego stronie, to najpierw musi dołożyć GNU do Linuksa i posłużyć się skojarzeniem, takim jak ,,Nestle Cornflakes'', ,,Warka Strong'', albo ,,Turbo'' przed nazwą, które pozwoliło Borlandowi sprzedać różne typy kompilatorów jako jedną ich rodzinę (Turbo Basic, Turbo Pascal, Turbo C, Turbo C++. Albo Nestle Cornflakes, Warka Strong itp...)
Wymieniłem z nim trzy albo cztery listy i zgodził się, że przestanie zwalczać używanie słowa Linux, a w zamian będzie bardziej promował GNU i podkreśli ich osiągnięcia i zasługi dla Linuksa. Wtedy wydawało się, że to dobrze...
Chciałbym bardzo przeprosić całą społeczność. Zostałem zawalony pracą i zarzuciłem moją połowę tej rozmowy na miesiąc lub dwa, a wtedy cała sprawa z ,,GNU/Linux'' dostała się na nagłówki, to był dla mnie duży wstrząs. Zamieniło się to wszystko w strasznie osobistą rzecz, a marketingowy punkt widzenia, o który mi chodziło, został zaprzepaszczony; nie było żadnego produktu do promowania, oprócz samego Stallmana; strzeliłem do własnej bramki, efektywność pomysłu była żadna. W każdym razie napisałem do niego jeszcze raz i próbowałem jakoś przebrnąć przez niektóre problemy związane z jego pierwszym podejściem do marketingu, ale on akurat był zasypany listami i już przestał słuchać...
Byłem wtedy także wystarczająco naiwny, że nie zdawałem sobie sprawy, że nisza marketingowa, którą mu wskazałem, była już zapełniona przez dystrybucje: Red Hat Linux, Slackware Linux, itp. Ostatnią dystrybucją, której używałem w tamtej chwili było SLS :) Tak naprawdę to myślałem, że FSF próbuje wypuścić dystrybucję Linuksa. (W sumie to zajmowali się -- Debianem -- ale projekty się rozeszły i Debian odciął się od nich w kwestiach politycznych. (Sporo projektów wydaje się to robić...) Sądzę, że strona FSF była trochę przeterminowana, gdy próbowałem wrócić do Linuksa po długiej dygresji w postaci OS/2 i Javy. Jakkolwiek Debian wciąż jest w pewien sposób związany z FSF i jako taki jest jedyną dystrybucją Linuksa, która na tyle przejmuje się Stallmanem, że wstawiła sobie GNU/ do oficjalnej nazwy. I próbuje uruchomić Hurda. Tak naprawdę, to chyba właśnie strona debiana skierowała mnie wtedy z powrotem na gnu.org...)
Teraz już wiecie. Jeszcze raz chciałem bardzo przeprosić. Przynajmniej przestał mówić ludziom, żeby w ogóle nie używali słowa ,,Linux'' na określenie nazwy systemu operacyjnego...
2. Połatany sterownik ACPI PCI do wersji jądra 2.4.19-rc2-ac2
19 lip 2002 - 26 lip 2002 (3 posts) Archive Link: "[PATCH] uaktualnienie sterownika ACPI PCI Hotplug dla 2.4.19-rc2-ac2"
Greg KH podesłał odnośnik do uaktualnienia sterownika ACPI PCI Hotplug, napisanego przez Takayoshi KOCHI, przetestowanego na IBM i386, NEC i386 i różnych komputerach ia64. Takayoshi odpowiedział małą, dodatkową łatą, która jakoś zniknęła z oryginalnej wersji. Greg dodał ją do swojego drzewa.
3. Obsługa sondowania jądra
19 lip 2002 - 25 lip 2002 (2 posts) Archive Link: "[PATCH] Sondowanie jądra 2.5.26 na i386"
People: Rusty Russell, Suparna Bhattacharya
Rusty Russell nadesłał łatę autorstwa Vamsi Krishna S i wyjaśnił: "To ładna łata Vamsi, pozwalająca wychwytywać instrukcje jądra. Goście z IBM mają nakładki na tę łatę do nieinwazyjnego testowania, odpluskwiania i instrumentacji. Miło jest także móc włączać funkcje w kod bez konieczności restartowania 8)" . Suparna Bhattacharya odparł: "Tutaj jest cokolwiek krótkie podsumowanie tego, co mamy na temat sondowania jądra - mam nadzieję, że dostarczy trochę więcej informacji, zgodnie z sugestiami, które otrzymuję prywatnie." Nadesłał:
Dynamiczne sondowanie jądra (Kernel Dynamic Probes
Dynamiczne sondowanie jądra (kprobes) zapewnia interfejs do umieszczania w jądrze sond i odpowiedniej obsługi tychże. Sonda jest automatycznym punktem przerwania (breakpoint) umieszczanym dynamicznie w wykonywanych (w przestrzeni jądra) modułach, bez konieczności wprowadzania zmian do źródeł. Sondy zostały pomyślane jako usługa od zaraz, gdzie wymaga się jak najmniejszej ingerencji w działanie systemu. Zalecamy je szczególnie w systemach produkcyjnych, gdzie interaktywne odpluskwiacze są niepożądane. kprobes są również przydatne w systemach rozwojowych i testowych. Podczas testów błędy można spowodować lub zasymulować za pomocą sondy. Podczas prac rozwojowych kod odpluskwiający (np. printk) można łatwo włączyć, bez konieczności rekompilowania testowanego modułu.
Dla każdego sondowania podany jest adres funkcji obsługującej zdarzenie. Funkcje obsługujące zdarzenia sondowania działają jako rozszerzenia systemowej obsługi przerwań i powinny tylko trochę zależeć, albo w ogóle nie zależeć, od systemu. Ze względu na taki projekt, sondowania mogą być wstawione nawet w nieprzyjazne środowiska -- kod z przerwaniami, wyłączenia i przełączenia kontekstu, czy kod dla SMP -- bez negatywnego wpływu na wydajność systemu.
Interfejsy kprobes
kprobes ma dwa interfejsy: register_probe i unregister_probe.
register_probe:
Rejestracja definiuje punkt umieszczenia sondy, który musi znajdować się na granicy instrukcji poprzedzającej jakikiekolwiek prefiksy powiązanych opkodów. Definiuje także trzy adresy wywołań dla modułu sondującego:
register_probe przekazuje strukturę kprobe:
struct kprobe {
u8 * addr; /* umiejscowienie punktu sondy */
spinlock_t lock;
struct list_head list;
unsigned long status;
/* Wołane przed wykonaniem addr */
kprobe_pre_handler_t pre_handler;
/* Wywoływane po wykonaniu adrr, chyba że... */
kprobe_post_handler_t post_handler;
/* ...wywoływane, jeśli wykonywany adrr powoduje błąd (np. błąd strony).
* Zwraca 1, jeśli błąd dotyczy sondy, inaczej jądro go zobaczy. */
kprobe_fault_handler_t fault_handler;
u8 opcode;
};
adrr:
umiejscowienie punktu sondowania, który musi znajdować się na granicy
instrukcji poprzedzającej jakikiekolwiek prefiksy powiązanych opkodów
-- zagwarantuje to etykieta w C.
pre_handler:
funkcja wywoływana, gdy sondowana instrukcja ma zostać wykonana.
post_handler:
funkcja wywoływana w przypadku pomyślnego zakończenia wykonania sondowanej
instrukcji.
fault_handler:
funkcja wywoływana, gdy pojawia się wyjątek związany z jakimkolwiek
oprogramowaniem.
Od użytkownika wymaga się utrzymania tej struktury w pamięci rezydentnej tak długo, jak długo sonda pozostaje aktywna. Niektóre z pól są wykorzystywane wewnętrznie przez kprobes i muszą zostać zainicjowane jako NULL lub ZERO. Pola, które użytkownik musi zainicjować to addr i pre_handler. Pola post_handler i fault_handler są opcjonalne.
unregister_probe:
unregister_probe również wymaga struktury kprobe. Użytkownik musi wyrejestrować wszystkie sondy zanim usunie moduł obsługi sond.
Rozszerzenia dynamicznych sond jądra
Dynamiczne sondowanie jądra wywodzi się z łaty pełnego Dynamicznego sondowania. W jej skład wchodzi mechanizm pozwalający sondom istnieć w przestrzeni jądra. Interpreter języka RPN, rozszerzenia punktów obserwacyjnych i sond w przestrzeni użytkownika, będących częścią pakietu dynamicznych sond, będą dostępne jako dodatki na stronie internetowej dynamicznych sond.
http://oss.software.ibm.com/developerworks/opensource/linux/projects/dprobes/
4. Wokół problemów z APIC
22 lip 2002 - 26 lip 2002 (17 posts) Subject: "Łatka dla 2.4.19-rc3-ac2"
People: Mikael Pettersson, James Cleverdon
Steven Cole przysłał łatę dla deweloperów, którzy zauważyli mnóstwo błędów APIC pojawiających się w okolicach jądra 2.4.19-rc1-ac6. Wiele osób stwierdziło, że łata usunęła u nich ten problem; ale Zwane Mwaikambo poinformował o blokadach na tym jądrze, związanych z obsługą architektur wieloprocesorowych, niekoniecznie powodowanych przez łatę Stevena, ale też nienaprawionych przez nią. Potwierdził, że na 2.4.19-rc2 system pracował poprawnie, ale nie dysponował żadnymi innymi informacjami o tym, co zostało zepsute. James Cleverdon nadesłał łatę i zaproponował, żeby Zwane ją wypróbował; ale Zwane ocenił, że część łaty dokonuje zbyt drastycznych zmian. Mikael Pettersson powiedział: "Drastycznych to niedopowiedzenie. Lepiej zabrzmi ,,okropnych''. Zdrowe maszyny wykonujące prawidłowy kod nie powinny rzucać błędami lokalnego APIC. Jeśli cokolwiek powoduje błędy, powinno zostać naprawione, nie ukryte. Mam nadzieję, że to obejście jest tymczasowe, nie stanowi zaś części rozwiązania..." James wyjaśnił:
Przeciwnie, kiedy Intel przeniósł lokalne APIC z osobnej kości do procesora, w okolicach P54C, okulawili cały mechanizm. Poprzednio lokalne APIC potrafiło zaakceptować i zamknąć dowolną liczbę przerwań, ponieważ zawierało trzyczęściowy wektor, który mógł przechowywać wszystkie niezbędne informacje o stanie. P54C (i późniejsze) miał dwie zapadki (latches) na poziom przerwania. Poziom był definiowany jako górne pół bajta wektora przerwania. Zatem P54C mógł zamknąć tylko dwa przerwania dla, powiedzmy, zakresu ISA IRQ 0x31-0x3F. Nie za dobrze, gdy pojawią się trzy przerwania 0x3X. Numer trzy nie zostanie złapany.
Intel dodał nowe błędy stanu do lokalnego APIC i protokół magistrali pozwalający _nie_ dostarczać przerwań z powodu limitu zapadek. W zajętym systemie z dużą liczbą przerwań zauważycie czasem kilka takich błędów dziennie. Nie można z tym nic zrobić, poza przetworzeniem wszystkiego. To jest bardziej ostrzeżenie, niż komunikat o błędzie.
Na naszej maszynie NUMA P6 odkryliśmy, że lokalne APIC zaczynało czasami wypluwać błędy przerwań. Analizator magistrali APIC nie pokazywał żadnych błędów. Po prostu wariowało i żadne próby poprawienia błędu nie dawały rezultatów. Nigdy nie wypracowaliśmy rozwiązania, ani nie otrzymaliśmy wystarczającego wyjaśnienia od Intela. Jedyną działającą metodą było wyłączenie przerwania błędów APIC.
Oczywiście, oczyszczona wersja łaty apic_state_dump nie robiłaby tego lub pozwalałaby wybrać opcję.
W tym punkcie rozmowa się urwała.
5. Planowane rozszerzenie interfejsu programistycznego Watchdog
23 lip 2002 - 27 lip 2002 (9 posts) Archive Link: "Obsługa NMI w module jądra"
People: John Leven, Alan Cox
Francois Isabelle zapytał, czy jądro i386 eksportuje interfejs programistyczny sterowników, aby można było zażądać niemaskowanego przerwania (non-maskable interrupt (NMI)) w ten sam sposób, w jaki żąda się przerwania. Jego firma pracowała nad dwustanowym watchdogiem, który wyszukiwałby i reagował na blokady systemu. Francois chciał wiedzieć, czy jądro obsługuje taki mechanizm. John Leven odpowiedział: "Nie, w tej chwili nie." Zasugerował: "Możesz wykonać okropne obejście z sidt + _set_gate(), aby zastąpić obsługę pułapki NMI," ale dodał, że chciałby zobaczyć czystsze rozwiązanie. Alan Cox powiedział do Fracois: "Mamy interfejs programistyczny Watchdog, ale jeszcze nie mamy obsługi dwustanowości. To staje się standardem, niedługo więc rozszerzenie interfejsu będzie koniecznością." Alan Robertson ogłosił otworzenie nowej listy dyskusyjnej przeznaczonej do omawiania rozszerzeń interfejsu programistycznego watchdog. Alan odpisał: "Przyglądałem się innym listom. Obecny stan wymaga od nas stworzenia podwójnego powiadamiania. W tej chwili mam bardzo szkicowy kod pozwalający nam na coś takiego nawet na sprzęcie, który tego nie obsługuje i gdzie funkcja read() zostaje powiadomiona, kiedy ma nastąpić zdarzenie." Jonathan Lundell aż się zagotował z chęci obejrzenia kodu, ale rozmowa się urwała.
6. Kod obsługi stacji dyskietek od dłuższego czasu jest zepsuty w jądrach serii 2.5
24 lip 2002 - 25 lip 2002 (9 posts) Archive Link: "[BUG] 2.5.27 sterownik stacji dyskietek"
People: Mikael Pettersson
Nico Schottelius powiadomił, że jądro 2.5.27 nie obsługuje prawidłowo stacji dyskietek. Ktoś odpisał, że obsługa jest zepsuta i zostanie zepsuta, dopóki nikt nie zdecyduje się jej naprawić. Nico zasugerował cofnięcie kodu do ostatniej działającej wersji, 2.5.25, ale ta sama osoba odpowiedziała, że kod popsuły poprawki VFS, nie był to więc prosty problem cofnięcia się do poprzedniej wersji kodu. Diego Calleja wskazał, że ostatnie poprawki VFS weszły do 2.5.22 i bezimienna osoba zgodziła się z nim mówiąc, że kod obsługi stacji dyskietek jest zepsuty od jakiegoś czasu i problem jest bardzo dobrze znany. Nico powiedział, że używał obsługi nowszej niż w 2.5.22, ale nie dostał odpowiedzi. W innym miejscu bezimienny/a wspomniał/a, że zgodnie z jego/jej doświadczeniem, ostatnie jądro z prawidłową obsługą stacji dyskietek to 2.5.7, ale zauważył/a też, że cofnięcie się do tak wczesnego stadium rozwoju byłoby niebezpieczne z innych powodów.
Daleko, daleko stąd, w temacie: [PATCH][2.5.28] obejścia zepsutego sterownika stacji dyskietek, podejście numer 4, Mikael Pettersson nadesłał łatę i powiedział:
Oto czwarte podejście do łaty ,,naprawiającej'' sterownik stacji dyskietek, popsuty przez zmiany w sterownikach urządzeń blokowych w 2.5.13-2.5.19 i 2.5.28.
W 2.5.28 nastąpiła zmiana w fs/block_dev.c ustawiająca rozmiar urządzenia stacji dyskietek na 0, a to powoduje błędy ENOSPC podczas zapisu do urządzenia stacji dyskietek. Ta czwarta wersja łaty dodaje obejście powyższego problemu.
Częściowy dostęp do VFS _może_ teraz działać. Stworzyłem system plików ext2 na /dev/fd0 na jądrze 2.5.28 z nałożoną łatą i przeszedł test fsck zarówno na jądrze 2.5.28, jak i na 2.4.19rc3. Kiedy jednak próbowałem zainstalować na tej dyskietce lilo, jądro dało komunikat ,,błąd w warstwie bufora w buffer.c:403'', całość nie działa więc poprawnie.
7. Opieka nad agpgart
24 lip 2002 - 25 lip 2002 (4 posts) Archive Link: "[BK PATCH] zmiany w agpgart w 2.5.27"
People: Greg KH, Linus Torvalds, Dave Jones
Greg KH przesłał od Rusty'ego Russella łatę na kod agpgart i stwierdził: "Wygląda na to, że niektórym ludziom zdaje się, jakobym był osobą, do której wysyła się łaty na agpart, ponieważ ostatni w nim grzebałem, kiedy ja się wreszcie nauczę..." Linus Torvalds odpowiedział: "He. ,,To Twoje ślady, Ty jesteś podejrzany''." Dave Jones dodał:
Miłośnicy teorii spiskowych mogą zasugerować, że zaplanowałem to, kiedy przekonywałem Cię do podzielenia obowiązku między kilka osób. Hmmm... Wspaniale 8-)
Prawda jest taka, że pomimo istnienia opiekuna agpart i pojawiania się Jeffa na dri-devel raz na jakiś czas, w zasadzie niemal wszyscy w tym grzebali i to pies Jeffa, skoro ostatni tykał się kodu, nie musisz więc bać się, że ,,to Ty jesteś podejrzany'' 8-)
8. Stan strony powiadamiania o problemach w 2.5
24 lip 2002 - 25 lip 2002 (2 posts) Archive Link: "Stan powiadamiania o problemach w 2.5"
People: Thomas Molina, Daniel Phillips
Thomas Molina podał odnośnik i ogłosił:
Oto krótkie podsumowanie projektu, którym trochę się bawiłem przez ostatnie kilka dni. Projekt ma na celu śledzenie powiadomień o problemach, oopsach, błędach itd. jądra rozwojowego. Mam nadzieję, że okaże się przydatny. Kilka uwag o projekcie:
Daniel Phillips odpowiedział: "tak długo, jak długo będziesz miał wystarczająco energii, rób to."
9. Nowy interfejs modułów
24 lip 2002 - 28 lip 2002 (11 posts) Archive Link: "[PATCH][RFC] nowy interfejs modułów"
People: Roman Zippel, Rusty Russell, Keith Owens, Kai Germaschewski
Roman Zippel ogłosił:
Łata, którą zamieszczam, przeznaczona jest dla jąder z serii 2.4, ale łatwo ją przenieść na 2.5, poza tym myślę, że rdzeń jest wystarczająco stabilny i pozwoli w przyszłości na elastyczniejszą obsługę modułów. Kiedy już uaktualnię do 2.5 i uaktualnię kilka architektur wyślę tę łatę oficjalnie, każdy odzew byłby więc teraz pożądany. (Łata nie wymaga nowych modutils, chociaż w nowej wersji można zapobiec powstawaniu obejść, z tym jednak można poczekać.)
Łata ta implementuje nowy interfejs modułów. Najważniejsza zmiana polega chyba na tym, że licznik użyć nie jest już częścią struktury modułu. Jeśli licznik jest wymagany przez kod modułu, moduł jest o niego proszony. Licznik nie musi być dokładny, jedynie wartość zwracana przez funkcje wyjściowe decyduje o usunięciu modułu. To oznacza również, że żadne struktury jądra nie muszą być zanieczyszczane wskaźnikami modułów, struktura modułu jest teraz w zasadzie jego wewnętrzną sprawą, żaden normalny moduł nie musi w niej mieszać. To także oznacza, że MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT/MOD_IN_USE jest nareszcie ostatecznie przestarzały. Moduły teraz utrzymują swój własny licznik użycia, ale to mniej bolesne od wskaźnika modułu (popatrzcie na przykład systemu plików poniżej). W innych przypadkach taki licznik już istnieje, np. interfejs podobny do proc może użyć pola i_count z i-węzła (stop() odwiązuje pozycję, exit() sprawdzałoby, czy i_count ma wartość 1). Poniżej zmieniłem kod affs i fs, aby zademonstrować nowy interfejs. Moduł jest definiowany w następujący sposób:
DEFINE_MODULE
.start = start_affs_fs,
.stop = stop_affs_fs,
.exit = exit_affs_fs,
.usecount = usecount_affs_fs,
DEFINE_MODULE_END
Powyższe definiuje strukturę automatycznie rejestrowaną podczas inicjalizacji modułu. Struktura jest elastyczniejsza niż ileśtam fukncji. insmod musi wiedzieć o wszystkich tych funkcjach, a tymczasem powyższa struktura jest inicjalizowana, kiedy moduł jest podwiązywany. Łatwo dodać nowe pola, np. nowe sekcje poprawek łatwo dodać bez kłopotania insmod.
Z drugiej strony, stare interfejsy wciąż działają (nawet bezpośrednie wywołanie init_module()), usunięcie takich modułów jest niemożliwe.
Podstawowa różnica widoczna dla użytkownika to /proc/modules pokazujący również moduły wkompilowane w jądro. Taka zmiana wymaga drobnej modyfikacji kbuild, wymaga bowiem niepowtarzalnych nazw modułów. Wciąż nie jestem całkiem usatysfakcjonowany tą częścią rozwiązania, ale wyraźnie widać, co jest możliwe. Ważniejsze jest, że zmniejsza się różnica między wkompilowanymi i niewkompilowanymi w jądro modułami.
Trochę więcej nudnych szczegółów implementacji:
Rusty Russell zapytał, dla jakiej wersji jądra jest ta łata przeznaczona, a Roman odparł, że dla 2.4.18. Obydwaj pracowali w tym samym obszarze, wymienili więc uwagi o szczegółach implementacji. Dyskusja zeszła na temat kontrowersji wokół kbuild, kiedy Rusty oświadczył: "Potrzebuję również tego mitycznego już ,,KBUILD_MODNAME''. Obydwaj, Keith i Kai, mi to obiecali..." Keith Owens odparł: "KBUILD_OBJECT jest już w kbuild 2.5 od 5 kwietnia (kbuild-2.5-core-1). To nie moja wina, jeśli Linus tego nie weźmie, a Kai tego nie zaimplementuje." Kai Germaschewski tymczasem powiedział Rusty'emu: "Mówiłem Ci, że mam kod i że możesz go dostać, kiedy tylko zechcesz. Ale Ty nigdy nie poprosiłeś. Chcesz teraz go dostać?" Rusty powiedział, że byłoby wspaniale i Kai wysłał kod.
10. Nieporozumienia wśród deweloperów przy poprawkach hotplugowych aic7xxx
24 lip 2002 - 25 lip 2002 (10 posts) Archive Link: "[PATCH] sterownik aic7xxx nie zwalnia obszaru"
People: Justin T. Gibbs, Jens Axboe
Takayoshi KOCHI wysłał łatkę naprawiającą sterowniki aic7xxx w 2.4 i 2.5, która pozwala zwalniać sterownikowi wykorzystaną pamięć i obszary WE/WY. Bez łatki, próby hotplugowego włączenia/wyłączenia urządzenia nie powiodą się. Testowałem to na serwerze IA32 z hotplugiem ACPI PCI i wygląda na to, że działa. Justin T. Gibbs odparł, że ten problem już był rozwiązany w sterowniku. Powiedział: "Nie pamiętam dokładnie, kiedy to zostało poprawione w sterowniku aic7xxx, ale coś koło 6.2.5. Jądro 2.5.x niekoniecznie używa ostatniej wersji sterownika. Drzewo Marcelo ma wersję 6.2.8, która na pewno nie potrzebuje tej łatki (nawet nie będzie się aplikować)." Takayoshi przeprosił za nieprzetestowanie ostatnich pre-jąder, ale Jens Axboe utemperował Justina: "Tak jakby to ktoś inny miał aktualizować. Wersja w 2.5 to jest dokładnie ta, do której ją uaktualniłeś, koniec pieśni." Justin odgryzł się:
Tak jakbym w ogóle zrobił cokolwiek dla 2.5. Nie zrobiłem. Ktoś inny wykonał przeniesienie aic7xxx do 2.5. Koniec pieśni. 8-)
Niestety, nie miałem wystarczająco dużo czasu, aby zająć się 2.5. Szczęśliwie opiekowałem się sterownikiem w 2.4 i zajmę się nim w 2.5, gdy przyjdzie na to pora.
Jens spytał, czy Justin będzie miał coś przeciwko temu, żeby Jens się tym zajął i uaktualnił wersję w 2.5, a Justin odparł: "A pytałeś mnie, gdy zrobiłeś to za pierwszym razem? 8-) Innymi słowy... proszę bardzo." Jens podziękował mu, ale dodał: "Pierwsze przeniesienie _musiało_ być wykonałem dla siebie, bo potrzebowałem _czegoś_, aby móc testować zmiany. Aby bardziej się obronić, dodam, że nie zdążyłem jeszcze spytać opiekunów, gdy Linus wziął te zmiany. Jeśli chcesz, mogę pewnie podać jeszcze kilka powodów :-)" Justin powiedział: "To jest otwarty kod. Gdy kod ujrzy światło dzienne, mam ograniczoną kontrolę nad tym, co ludzie z tym robią. Tak to zostało zaprojektowane i tak ma działać. Nie ma co się bronić, skoro nie zrobiłeś nic złego." Jens na to odparł: "Cóż, w teorii masz rację. Ale zawsze lubię wysłać zmiany do opiekuna do zatwierdzenia i zawsze mam nadzieję, że inni tak robią. Opiekun ma zazwyczaj lepsze pojęcie o kodzie i będzie wiedział lepiej co włączyć, odrzucić, itp. Nawet jeśli to jest otwarte oprogramowanie, nie musi być to anarchia." Koniec wątku.
11. 2.5.28 opublikowane; Stan prac nad IrDA, IDE i SCSI; Filozofia rozwoju
24 lip 2002 - 29 lip 2002 (94 posts) Archive Link: "Linux-2.5.28"
People: Linus Torvalds, Jean Tourrilhes, Daniel Egger, Bartlomiej Zolnierkiewicz, Andries Brouwer, Jens Axboe, Andries Browuer, Dave Jones, Rob Landley
Linus Torvalds ogłosił 2.5.28 i powiedział:
Najważniejsza część zmian była już szeroko dyskutowana na liście i już publikowana na niej wraz z wieloma poprawkami (mam nadzieję, że włączyłem wszystkie), chodzi o usunięcie globalnej blokady irq. W perspektywie krótkoterminowej (słynne ostatnie słowa), niektóre konfiguracje SMP przestaną działać, ale naprawienie tego nie powinno być strasznie trudne.
Również wiele innych zmian -- jak zwykle aktualizacje USB, aktualizacje fbdev, aktualizacje m86k i ppc64, poprawka w IDE oraz synchronizacja z Alem. Warstwa obsługi portu szeregowego została ostro przetrząśnięta (blokada irq w pewien sposób to wymusiła, ale oczekiwano tego od wystarczająco dawna..)
Paul Larson zgłosił problemy przy kompilacji tego jądra, a Linus odparł:
Tak, wiele sterowników nie będzie się kompilowało przy włączonym SMP, bo potrzebują globalnej blokady (która jest usunięta). To obejmuje sterownik IDE cmd640 i sterownik portu równoległego (również wiele innych, ale sądzę, że te dwa są najpopularniejsze).
To wszystko powinno działać w ten sam sposób, jak to działało dotąd na UP, i przypuszczalnie zepsute sterowniki będą już niedługo przepisane tak, aby używać lokalnych blokad (w niektórych przypadkach globalna blokada irq może nie być w ogóle potrzebna).
Gdzie indziej, wbrew temu, co mówił Linus, Alessandro Suardi zgłosił problemy na swoim jednoprocesorowym systemie w kodzie IrDA. Jean Tourrilhes odparł: "IrDA nie zostanie naprawiona szybko. Przez cały czas, gdy naprawiałem stos IrDA, naprawiałem powoli niektóre z najgroźniejszyh zakleszczeń, ale naprawienie pozostałych rzeczy wymaga poważnej pracy i wymaga nieco więcej niż pokropienie kilku aktywnych blokad tu i ówdzie." Linus odrzekł:
Właściwie, to sposobem na emulowanie cli/sti nie jest ,,pokropienie'' blokad, w ogólności możesz to zrobić przy pomocy _jednej_ blokady na podsystem.
Zatem narzucającym się sposobem, aby zasymulować zachowanie cli/sti jest dodanie jednej blokady z aktywnym czekaniem, która jest używana tylko w tym podsystemie, następnie użycie tej blokady przy wejściu w przerwaniach w tym podsystemie i zdarzeniach zegarowych i we wszystkich miejscach, gdzie używaliśmy clt/sti.
To się nieco bardziej komplikuje, gdy trzeba zasymulować zagnieżdżanie cli/sti, bo nie możesz zagnieżdżać spinlocków, ale to nie jest żadna wyższa matematyka.
Oczywiście, zrobienie tego _dobrze_ (w odróżnieniu od zwykłego i bezpośredniego przetłumaczenia semantyki cli/sti) będzie wymagało znacznie więcej pracy. Ale nawet taka translacja wprost poprawia stan poprzedni, ponieważ różne systemy będą teraz niezależne i ponieważ łatwiej później podzielić jedną blokadę tak, jak to będzie akurat potrzebne.
Ale Jean odparł, że podejście jednoblokadowe nie zadziała dla IrDA. Dodał: "problemem jest to, że cały projekt blokowania jest zły. Doskonale wiem, że blokowanie hashbin jest niebezpieczne i to cud, że w ogóle działa. Nie jestem pewien, czy w ogóle kiedyś będę miał coś w 100% bezpiecznego." Było nieco dyskusji na ten temat, ale podwątek wygasł bez żadnych konkluzji.
Gdzie indziej, Daniel Egger zauważył, że w ogłoszeniu Linusa jest mowa jedynie o aktualizacji podystemu IDE, ale nie wiadomo, jakie zmiany zostały wykonane. Linus odparł, że była na ten temat wielka dyskusja na liście: "A ponieważ ta dyskusja nie była pokojowa, nie dostałem listy zmian. Ale możesz jej poszukać sam." Daniel odparł: "Ponieważ kod IDE to nie jest coś, czemu bym bezwarunkowo ufał, MSZ warto dodać odpowiedni komentarz, nawet jeśli to jest: ,,usunięty wyścig wprowadzony w IDE-97, zobacz wojnę na bluzgi''..." Linus odpowiedział: "Większość opinii na temat IDE to FUD i dezinformacja. Każde z jąder 2.5.x jest testowane na systemie IDE (,,penguin.transmeta.com'' ma wszystko na IDE), a główne problemy z 2.5.27 z mojego drzewa BK wynikały ze zmian w obsłudze IRQ." Dodał: "Nie lubię, gdy ludzie, którzy w ogóle nie czytali dyskusji, ani nie próbowali znaleźć samodzielnie tych zmian, czują się bardzo dobrze rozprzestrzeniając FUD i dezinformację na temat warstwy IDE. Czy mamy tam problemy? Tak. Ale mamy _więcej_ problemów z ludźmi sabotującymi pracę niż z samym kodem."
Bartłomiej Żołnierkiewicz powiedział: "Chciałbym, żeby to była dezinformacja." Dodał: "nie lubię, gdy ludzie, którzy nie czytają dokładnie każdej łatki czyszczącej ide, ani nie próbują prześledzić wszystkich zmian (2.4 -> 2.5), czują się bardzo dobrze wygłaszając takie poglądy ;-)." Daniel powiedział Linusowi: "Doceniam pracę Marcina, a nawet bardziej Twoje słowa, że kod jest dość stabilny. Kontynuujcie wysiłki i tak zakończmy ten wątek." Ale Andries Brouwer, również odpowiadając Linusowi, powiedział:
Linus, Linus, jak możesz mówić coś tak naiwnego? Nie muszę Ci mówić, że jeden zadowolony użytkownik nie oznacza, że nikt nie będzie miał problemów.
Kilka osób zgłosiło całkowitą utratę systemów plików. Wiele więcej zgłosiło częściowe uszkodzenia systemu plików. Teraz i Ty zgłaszasz częściowe uszkodzenia systemu plików.
FUD? Strach? Tak, strach jest uzasadniony dla każdego, kto nie robi kopii zapasowych. Niepewność? Tak, gdy system plików jest ponownie uszkodzony, nie jest całkiem oczywiste, co to powoduje. Wątpliwości? Tak, wiele osób wątpi, czy może sobie pozwolić na uruchamianie 2.5.ostatnie.
Tego wieczora uruchomiłem waniliowe 2.5.29 i zostałem nagrodzony uszkodzeniem systemu plików. 91 plików w /lost+found. Nic wielkiego. Kilka wersji jądra temu było o trzy rzędy wielkości gorzej.
IDE? 2.4.17 i 2.5.27+Jens są przy zwykłym używaniu dla mnie stabilne. IRQ? całkiem możliwe. Moim trzecim kandydatem jest USB. Systemy bez USB są znacznie bardziej stabilne.
Linus odparł, że nie próbował powiedzieć, że nikt nie będzie miał problemów z IDE. Powiedział: "_Są_ problemy z IDE, ale prawdziwym problemem jest to, że niektórzy nie próbują nawet pomóc, niezależnie od tego, że mamy teraz opiekuna, który potrafi współpracować z innymi." Dodał: "Zdaję sobie sprawę, że wiele osób jest przyzwyczajonych do tego, że opiekunowie IDE nie biorą łat z zewnątrz, że wiele osób zrezygnowało z pracy nad IDE, ale nie pomaga, że wiele osób ma nastawienie wyłącznie negatywne (tak przy okazji, to nie mówię o Tobie -- byłeś zdecydowanie _pozytywny_ w tym, że cały czas chcesz testować i zgłaszać problemy. Mówię o ludziach, którzy nie zawracają sobie głowy zgłaszaniem błędów, a jedynie narzekają na opiekuna)."
Linus mówił, że uszkodzenia systemu plików, które były zgłaszane nie były związane z warstwą IDE, nawet jeśli IDE było o to obwiniane. Kontynuował:
I TO jest część problemu. Nie wiem dlaczego, ale podsystem IDE budzi w ludziach najgorsze emocje.
To jest, tak przy okazji, powód, dla którego nie cierpię warstw pośrednich. Ludzie obwiniają je o wszystko, a naprawienie ich dla jednych konfiguracji powoduje, że nie działają inne.
Gdzie indziej, Marcin Dalecki wysłał łatkę dla SCSI, a Jens Axboe wytknął kilka problemów. Marcin przyznał mu rację, mówiąc że po prostu przekleił to z innej części kodu, a Jens odparł: "Ale ten śmieć i tak został włączony, fuj... To znowu doskonały przykład na to, że takie rzeczy powinny przechodzić przez opiekuna. Najwyraźniej Linus w ślepo nakłada takie zmiany." Linus odparł:
Ech, ponieważ nie ma aktywnego opiekuna SCSI, to nie mam chyba wielkiego wyboru?
SCSI nie ma opiekuna od kilku lat. Obecnie trzy osoby pracują nad tym w pewnym stopniu (Doug Ledford, James Bottomley i Ty), ale nie dostaję łat na czas i najwyraźniej nikt inny też ich nie dostaje.
Kolejny przypadek: wczoraj debugowałem z Matthew Dharmem pewne problemy w USB storage, a on podesłał mi łatki na podsystem SCSI twierdząc, że na liście scsi były one uznane za prawidłowe już w maju.
Zgadnijcie co? Nie dostałem tych łatek od żadnej z trzech osób, które uważam za najbliższe bycia opiekunami.
Zatem Twoja skarga o treści ,,powinno iść przez opiekuna'' jest na gnat. Nie wahaj się wchodzić na trybunę, ale zanim to zrobisz, nie rzucaj kamieniami w szyby.
Andries odpowiedział: "W obliczu braku pojedynczego opiekuna, dobrą alternatywą jest przegląd kodu." A Linus odparł:
Zgadzam się, ale ciągle chcemy mieć kogoś, kto naprawdę stanie na wyskości zadania i prześle mi łatkę po przeglądzie kodu..
I tak, jeśli nie będzie to ktoś z ustalonych poruczników, to nałożenie takiej łaty na oficjalne jądro będzie zależało trochę bardziej od tego, ile będę miał czasu. Oczywiście, wolałbym żeby opiekun SCSI nie synchronizował swoich zmian bezpośrednio ze mną, ale z kimś, z kim pracuję - tak długo jak to będzie rozsądne pod względem czasu.
(Dobrą _nowiną_ jest to, że w tej chwili opieka nad SCSI aktualnie nie była potrzebna - większość pracy była spowodowana ogólnymi zmianami w warstwie blokowej, z którymi oczywiście świetnie poradził sobie Jens. Reszta polegała _głównie_ na aktualizowaniu poszczególnych sterowników do interfejsu PCI DMA (do tego różne jednolinijkowe poprawki do warstwy blokowej).
Dodał: "Z dokumentacji wynika, że opiekunem SCSI jest Jens, ale tak jest prawdopodobnie dlatego, że jest on opiekunem urządzeń blokowych i stało się tak, że on firmował najważniejsze zmiany. Wydawało mi się, że James Bottomley jest człowiekiem od zmian wewnątrz SCSI, a Doug nie tak dawno wspomniał, że będzie miał on więcej czasu by popracować nad 2.5.x, zatem myślę, że tych trzech uważa się już za częściowych opiekunów. Oczywiście biorę łatki od wszystkich trzech." Dave Jones dodał:
*przytakuję* Zarówno Jens jak i Doug byli nieocenieni w chwili, gdy pożyczyłem sobie trochę rzeczy z 2.4 (a potem zebrałem różne inne małe kawałki dotyczące SCSI z różnych miejsc). Przy braku większego zrozumienia w tym obszarze (i braku motywacji, by w tym głęboko grzebać -- nie mam nawet dysków/kontrolerów SCSI, oprócz jakiejś starożytnej cpqarray, która jest rzadko włączana), dokładanie różnych kawałków do tego podsystemu ze znaczącymi komentarzami było ciężką pracą i czasem niemożliwą bez dodatkowych wyjaśnień Jensa czy Douga.
Na całe szczęście Doug wykonał świetną pracę, odchwaszczając to, co włączyłem i umieszczając tam n razy wypróbowane i przetestowane kawałki.
Głosuję za oboma. Sądzę, że to co robi James jest taką pracą podstawową, co oznacza tu odciążenie całej zabawy z 'synchronizacją/przesyłaniem Linusowi' na jednego z innych i jest chyba dobrym pomysłem, o ile oni się temu nie sprzeciwiają.
W tej samej wiadomości Andries napisał: "Sam zabiłeś pomysł istnienia opiekunów podsystemów, ogłaszając, że nie będziesz pracował z opiekunami, tylko z porucznikami." Rob Landley odpowiedział:
Linus nie zabił ,,pomysłu istnienia opiekunów'', po prostu przeszedł do czterowarstwowej hierarchii, ze względu na potrzebę skalowalności.
Przedstawię tu infrastrukturę rozwijania systemu w moim rozumieniu. Wszyscy, którzy się nie zgadzają z moim punktem widzenia są proszeni o uwagi, w przeciwnym wypadku powinno się pojawić coś w rodzaju kolejnego pytania w FAQ albo uaktualnienie pliku Documentation/SubmittingChanges.
Deweloperzy przesyłają co mają opiekunom. Opiekunowe podsyłają to porucznikom. Porucznikowie przesyłają Linusowi. Każda z osób na każdym poziomie może brać różne rzeczy od wszystkich pod nimi jeśli tylko chce, ale tylko ludzie z warstwy TUŻ pod dostają jakieś wyjaśnienia co do tego, dlaczego łatka nie została zaakceptowana.
To znaczy, jeśli ktoś, kto nie jest porucznikiem, prześle łatkę Linusowi, a Linus ją zignoruje, to raczej nie ma wielkich szans na wyjaśnienia dlaczego tak się stało. Jeśli porucznik podpisze się pod łatką i przekaże ją Linusowi, to jeśli ten ją odrzuci, to prawdopodobnie powie dlaczego tak zrobił. (Może się okazać, że skrzynka pocztowa się przepełni, ale problem ,,przesłałem to tuzin razy i nigdy nie dostałem odpowiedzi'' nie powinien dotyczyć sytuacji, w której łaty przesyłają porucznicy. W każdym razie w idealnym świecie. :)
To jest, tak ogólnie, to co jest najważniejsze w instytucji poruczników. Są JEDYNYMI ludźmi, którym Linus jest winien jakiekolwiek wyjaśnienia, gdy odrzuca łatkę. (Wyjaśnienie może zawierać tylko tekst ,,Nie podoba mi się to, nie zastosuję tego'', ale przynajmniej łatki te nie są bez końca w zawieszeniu. W najgorszym wypadku pomoże to zamknąć sprawę.)
Podobnie, porucznicy powinni odpowiadać opiekunom i zgłaszać im każdy przypadek odrzucenia łatek wysłanych przez opiekuna. A opiekunowie pownni odpowiadać poszczególnym deweloperom, którzy przysyłają im łatki (pocztą elektroniczną bezpośrednio, przesyłek na listę można nie zauważyć). Te odpowiedzi nie są tylko zwykłą kurtuazją, ale wspomagają działanie całego systemu.
Zatem jeśli dowolny deweloper chce, by jego łatka dostała się do Linusa, a Linus po prostu nie usłyszy jej w eterze, to sposób, w który należy postąpić polega na znalezieniu odpowiedniego opiekuna i uzyskaniu jego opinii na temat danej łatki. Deweloper powinien pracować z opiekunem, aż łatka zostanie zaakceptowana przez danego opiekuna: muszą oni naprawić wszystko, co nie będzie się podobało opiekunowi, a jeśli opiekun powie, że całość jest kiepskim pomysłem, to próby ,,przerzucenia nad jego głową'' do porucznika nie powinny dać pozytywnego skutku. (Mają świetną wymówkę, która pozwala im Cię ignorować, która jest dla nich rozwiązaniem wymagającym wysiłku. Teraz nie wolno im zawracać głowy, skończysz tak, że listy od Ciebie będą automatycznie usuwane.)
Opiekun może chcieć zmian, może uznać, że potrzebny jest przegląd kodu na specyficznej liście (czasem na linux-kernel, czasem nie), może chcieć zobaczyć wyniki porównawcze, może zażądać byś ściągnął i uruchomił narzędzie do testowania przy odpowiednim obciążeniu... Ale może też być zadowolony tak po prostu, albo może sprzeciwić się całemu pomysłowi i będziesz musiał zmienić całe podejście.
Zatem, kiedy tylko opiekun podpisze się pod łatką (,,dla mnie wygląda dobrze''), deweloper i/lub opiekun mogą przesłać ją do odpowiedniego porucznika, który odpowiada za większą część jądra i ma szansę znaleźć nowy zestaw rzeczy, które są źle w łacie i w ten sposób proces powtarza się na kolejnym poziomie. (Wiedza, do którego porucznika przekierować deweloperów z łatkami jest częścią pracy opiekuna.) Kiedy deweloper ubiega się o błogosławieństwo porucznika, to cały czas jego problemem są poprawki. Opiekun przekazuje tylko własne zdanie na temat łatki, a w dalszej kolejności robi to porucznik. Żaden z nich nie jest zobowiązany do wykonywania pracy za Ciebie. Znajdują problemy, ale sprawą dewelopera jest ich poprawianie. Twój pomysł ma szansę wzbudzić ich entuzjazm i z tego powodu mogą się nim zająć, ale nie ma na to gwarancji, zwykle mają listę rzeczy do zrobienia tak długą, jak twoje ramię (napisaną bardzo małą czcionką) i są to rzeczy, które będą robić, zanim twoja łatka wejdzie na tapetę.
Znowu, porucznik może zgłosić weto całemu pomysłowi łatki (akceptacja opiekuna nie oznacza akceptacji porucznika), albo zgłosić jakieś zastrzeżenia. Zaaprobowanie przez porucznika jest niezbędne dla dalszej kariery łatki, więc deweloper musi poprawić wszystko, co porucznik uzna za niewłaściwe, nie patrząc na to, co pomyślał opiekun.
Wtedy, gdy porucznik będzie zadowolony i podpisze się pod łatką, wędruje ona do Linusa. Porucznik pewnie będzie tą osobą, która przekaże ją Linusowi (umieszczając dewelopera w cc:), w przeciwnym wypadku Linus by jej nie zauważył (przeleciałaby przez jego skrzynkę).
Prościutkie, oczywiste poprawki błędów, mogą czasem przejść przy użyciu menedżera trywialnych łatek (coś takiego jak trivial@rustcorp.com, zajmuje się tym Rusty Russel, można przejrzeć archiwa.). Myślcie o nim jako o ,,młodszym poruczniku'', akceptuje łatki prosto od deweloperów, ale tylko takie, które naprawdę są oczywistymi poprawkami błędów.
Bitkeeper trochę tu pomaga: widać kiedy łaty idą dalej, więc można szybciej mieć informację zwrotną. I kiedy łatka jest w czyimś drzewie bitkeepera, może się przenieść wyżej bez wielkiej aktywności ze strony dewelopera (przynajmniej dopóki nic złego nie zostanie w niej znalezione). Ale żeby dostać negatywną odpowiedź (to znaczy, że ktoś to obejrzał i odrzucił i wyjaśnienia), deweloper wciąż musi przejść opisanym kanałem.
Zysk z tego jest dwojaki:
Powodem, dla którego niektórzy ludzie myślą, że opiekunowie nie mają teraz żadnego znaczenia jest to, że Linus nie odpowiada bezpośrednio opiekunom. Ponieważ Linus styka się z porucznikami, a porucznicy z opiekunami, którzy są pod nimi, Linus może nawet nic nie usłyszeć o niektórych opiekunach i zaufać ocenie poruczników. Opiekunowie są jednak potrzebni do tego, by skontaktować różnych nieznanych deweloperów z porucznikami, dzięki temu porucznicy nie są przeciążeni. Tak długo jak porucznicy słuchają swoich opiekunów, a Linus słucha poruczników, system dobrze działa.
Nie było odpowiedzi.
12. Wersja 'Restrykcyjnej alokacji pamięci' dla 2.5
24 lip 2002 - 25 lip 2002 (3 posts) Archive Link: "[PATCH] 2.5.28: Restrykcyjna alokacja pamięci"
People: Robert Love
Robert Love podesłał Linusowi Torvaldsowi i Andrew Mortonowi:
Podsyłam wersję Alanowej ,,restrykcyjnej alokacji pamięci'' dla jądra 2.5, której zachowanie wspólnie z nim przedyskutowałem.
Dodaje ona restrykcyjną rejestrację dla wymuszenia limitów przestrzeni adresowej i tym samym wyeliminowania OOM. Wszystkie błędy przydzielania pamięci powinny być przeniesione do procedur alokacji.
Oczywiście ten typ alokacji jest preferowany przez większość, więc domyślnie włączone jest standardowe zachowanie. Restrykcyjna alokacja jest kontrolowana przez sysctl.
Chciałbym przenieść to zachowanie do 2.5, aby lepiej je przetestować oraz uzyskać podstawę dla poprawek 'shmem/restrykcyjnej alokacji', nad którymi pracował Hugh Dickins. Przy domyślnej konfiguracji, zachowanie nie powinno się zmienić.
Łatka jest przeznaczona dla 2.5.28, do dzieła.
Andrew miał kilka problemów z łatką, lecz Alan Cox wyraził opinię, że jest ona w porządku i wątek zakończył się bez żadnych dalszych ustaleń.
13. Pliki nagłówkowe i binarny interfejs aplikacji jądra
24 lip 2002 - 31 lip 2002 (18 posts) Archive Link: "Pliki nagłówkowe oraz ABI jądra"
People: H. Peter Anvin, Brad Hards
H. Peter Anvin zaproponował:
Rozmyślałem trochę nad pewną ideą i chciałbym ją przedstawić do publicznej dyskusji, aby każdy mógł nad nią pomyśleć...
W czasach libc4/libc5 próbowano używać plików nagłówkowych jądra w przestrzeni użytkownika. Powodowało to totalny bałagan, nawet z tego powodu, że pliki nagłówkowe jądra dołączały tony kolejnych, a struktury danych były nieprzystosowane do użycia w przestrzeni użytkownika.
W bibliotece glibc oficjalnym stanowiskiem jest zasada ,,nie używaj plików nagłówkowych jądra''. To powoduje problemy, ponieważ niektóre rodzaje ABI jądra są dostępne jedynie przez pliki nagłówkowe, a ich ręczna reprodukcja jest czasochłonna i narażona na powstawanie nowych błędów.
Jestem w trakcie pisania mojej małej libc dla initramfs i będę musiał zmierzyć się z problemem użycia ABI jądra.
Wydaje się, że rozsądnym rozwiązaniem dojścia do tego nie jest używanie nagłówków jądra przez programy przestrzeni użytkownika, lecz dzielenie przez przestrzeń jądra i przestrzeń procesu małego zestawu plików opisujących ABI. Te pliki powinny być wysoko specjalizowane, aby opisywały tylko rzeczy widoczne dla przestrzeni użytkownika. Co więcej, jeżeli wprowadzają nowe typy zmiennych, niech używają wtedy ustandaryzowanego nazewnictwa, takiego jak w __jądrze__ systemu. Mogłyby być także użyte __s* i __u* dla określonych typów.
To oznacza, że moglibyśmy się pozbyć #if(n)def __KERNEL__ z głównych plików nagłówkowych jądra, a to z powodu separacji spowodowanej położeniem tychże plików -- część plików nagłówkowych jądra mogłaby zostać włączona do plików opisujących ABI, odwrotna sytuacja nie powinna nigdy zaistnieć.
Chciałbym zaproponować, by te pliki zostały umieszczone w przestrzeni plików nagłówkowych w <linux/abi/*> oraz <linux/abi/arch/*> dla plików zależnych od architektury sprzętowej (mimo tego, myślę, że te pliki powinny być umieszczone w drzewie linux/abi. Mógłoby tam istnieć dowiązanie symboliczne do ../asm/abi dopóki nie zmienimy całego układu plików nagłówkowych jądra.) Drzewo plików nagłówkowych linux/ powinno być przeznaczone, w przeciwieństwie do drzewa abi/, tylko dla jądra systemu. Nie odkryłem żadnych potencjalnych konfliktów. Całość miała się nazywać kabi, lecz wydaje się ,,czystszym'' użycie istniejącej przestrzeni nazw.
Jeżeli ludzie powiedzą, że to jest jakiś pomysł, wtedy spróbuję stworzyć całą infrastrukturę w ramach moich prac nad klibc. Z drugiej strony samodzielnie nie podołam przeniesieniu wszystkich potrzebnych plików nagłówkowych.
Z początku deklarowano wiele entuzjazmu dla tej ideii, lecz kilka dni później Brad Hards powiedział:
Cóż, początkowy zapał opadł i nic więcej się nie dzieje.
Czy jest jakakolwiek potrzeba aby zająć się tą kwestią?
Przypominam, że następna większa konferencja odbędzie się podczas Linux Kongress (Kolonia), na początku sierpnia. Może moglibyśmy tam zebrać ludzi od glibc/innych-bibliotek i dzięki nim zrobić pewien postęp.
Jeżeli będzie jakiekolwiek zainteresowanie (preferowany kontakt poza tą listą), to spróbuję skontaktować się z organizatorami i zaangażować w to BoF-a.
Zainteresuję się linux.conf.au jako dodatkową okazją, ale to dopiero w odpowiednim czasie.
Nie było odpowiedzi.
14. Aktualizacja LVM dla 2.4
25 lip 2002 - 26 lip 2002 (8 posts) Archive Link: "Łata LVM 1.0.5 dla Linuksa 2.4.19-rc3"
People: Heinz J . Mauelshagen, Christoph Hellwig, Heinz J. Mauelshagen
Heinz J. Mauelshagen ogłosił:
Wysłałem Marcelo łatę LVM 1.0.5, która naprawia:
Jest dostępna pod: <http://people.sistina.com/~mauelshagen/lvm_patches/lvm_1.0.5+_25.07.2002.patch>
Christoph Hellwig zapytał: "Szacunkowo, kiedy zostanie dołączona implementacja nie-popsutych pvmove Stephena?" A Heinz odpowiedział: "Przypuszczalnie w następnym miesiącu. " [Sierpień] "jeżeli będę miał na to czas."
15. Ogólny sterownik RTC
25 Lip 2002 (1 post) Archive Link: "[PATCH] Ogólny sterownik RTC [0/3]"
People: Tom Rini
Tom Rini podesłał kod, który implementuje ogólny sterownik zegara czasu rzeczywistego oraz wyjaśnił:
To jest w gruncie rzeczy ten sam sterownik, który podsyłałem poprzednio 3 razy, tyle, że z nałożonymi trzema łatami naprawiającymi błędy. Działa on z i386 (powinien pracować też z alphą).
Łatka nr 1 jest obecną wersją sterownika (z zaaplikowanymi inicjalizatorami zgodnymi ze stylem C99, obecną drzewie CVS m68k). Potrzebowała ona zmian, by w ogóle się kompilować. Pytałem poprzednio społeczność m68k, czy mają jakieś zastrzeżenia co do przesłanych im danych, lecz uzyskałem akceptację Richard Zidlicky'ego (który jest wspomniany na początku pliku) oraz Geerta Uytterhoevena.
Łata nr 2 jest wersją dla architektury PPC. Tworzy ona include/asm-ppc/rtc.h i znajduje się w drzewie bitkeepera dla architektury PPC już od ponad miesiąca. Mogę nakłonić Paula Mackerrasa by Wam to wysłał, jeżeli tylko wyrazicie ochotę.
Łata nr 3 jest moim dziełem. Zmienia ona set_rtc_time(struct *rtc_time) by zwracała ona int zamiast typu void. Została zrobiona w sposób, który umożliwia dodanie kodu zależnego od architektury, który wykona dodatkowe testy i zwróci ewentualny błąd. Wprowadza także include/asm-generic/rtc.h, include/asm-i386/rtc.h oraz include/asm-alpha/rtc.h. include/asm-generic/rtc.h zawiera funkcjonalność get_rtc_time and set_rtc_time pochodzących z drivers/char/rtc.c. Łatka została przetestowana na SMP i386. Zmodyfikowała też include/asm-ppc/rtc.h w celu zwracania -ENODEV w przypadku braku obecności zegara czasu rzeczywistego.
A teraz trochę o historii tego sterownika.
Kod znajdował się w drzewie m68k przez wiele lat, więc ogólny kod stojący za tym jest całkiem poprawny. Wyjęto z tego tyle, żeby dojść do punktu, w którym całość działała na innych architekturach (głównie ze względu na hybrydowe maszyny m68k/PPC). To jest całkiem użyteczne, odkąd pewna liczba architektur nie może używać drivers/char/rtc.c, ponieważ odbiegają one od siebie sprzętowo w znaczny sposób oraz jeszcze z innych względów.
To powinno być także użyteczne dla architektury MIPS, dla której kiedyś w przeszłości skopiowano kod RTC ze sterownika architektury PPC (drivers/macintosh/rtc.c) oraz użyteczne również dla innych maszyn.
W oparciu o pewne prywatne zgłoszenia, ludzie od parisc używali wersji 2.4 sterownika przez pewien okres czasu, więc przeniesienie tego na 2.5 powinno być dla nich trywialne (znajduje się to obecnie w ich drzewie, nieprzetestowane, co z pewnych względów powinno być najpierw rozwiązane). Wierzę, że z pewnymi dodatkowymi rozszerzeniami ia64 będzie również mogło z tego skorzystać. A kiedy ludzie od MIPS przekształcą swój sterownik czasu rzeczywistego ma wzór drivers/macintosh/rtc.c, będą mogli także, bez kłopotów, tego użyć.
Nie było odpowiedzi.
16. TLS dla 2.5
25 lip 2002 - 28 lip 2002 (9 posts) Archive Link: "[announce, patch] obsługa TLS w Linuksie 2.5.28"
People: Ingo Molnar
Ingo Molnar zaimplementował nowe wywołanie systemowe, sys_set_thread_area() ze wsparciem dla TLS (Thread Local Storage), który jest szybkim i efektywnym sposobem na przechowywanie lokalnych danych wątków. Opisał to:
właściwe wsparcie dla TLS w kompilatorach (oraz glibc/pthreads) jest rzeczą nieco problematyczną na platformie x86. Istnieje tutaj tylko 8 rejestrów ogólnego przeznaczenia, więc na architekturze x86 musimy używać segmentacji aby uzyskać dostęp do TLS. Glibc korzystały ze stworzenia wpisu, który definiował TLS dla każdego z wątków. Oprócz ogólnych niedoskonałości LDT, wprowadzało to także limit: maksymalna liczba wpisów (entries) w LDT to 8192, więc jest to także maksymalna liczba wątków przypadających na aplikację.
łatka wprowadza zupełnie inne podejście - jądro przechowuje specyficzny, osobny dla każdego wątku wpisu w GDT (GDT entry), który może być modyfikowany przez ten wątek:
asmlinkage int sys_set_thread_area(unsigned int base, unsigned int limit, unsigned int flags)
jądro, przed przełączaniem kontekstu, modyfikuje wpis GDT, aby był zgodny z ustawieniami TLS dla każdego wątku. W ten sposób, wątki w przestrzeni użytkownika mogą uzyskać dostęp do ich specyficznych danych za pomocą tego deskryptora - poprzez używanie tego samego, stałego przełącznika %gs (lub %gs). Liczba przestrzeni TLS jest nieograniczona i nie wymaga żadnych dodatkowych alokacji związanych z obsługą TLS.
Największym problemem, który nie pozwalał na wprowadzenie tej idei był Linuksowy, globalnie dzielony GDT na systemach SMP. Łatka radzi sobie z tym poprzez implementację GDT dla każdego procesora z osobna. To powoduje także szybsze przełączane kontekstów. 2-zadaniowe przełączanie kontekstów typu lat_ctx przyspieszyło o ok. 5% na mojej testowej maszynie z dwoma procesorami Celeron. [ Czy wynika to z faktu, iż współdzielonie GDT jest jest niezbyt optymalne na maszynach SMP? a może uaktualnianie bitu 'accessed' w deskryptorach DS/CS powoduje pewien rodzaj związanego z nakładem cyklu blokad pamięci? ]
opis GDT uprościł się:
* 0 - null
* 1 - segment Thread-Local Storage (TLS)
* 2 - segment kodu jądra
* 3 - segment danych jądra
* 4 - segment kodu użytkownika <==== nowa cacheline
* 5 - segment danych użytkownika
* 6 - TSS
* 7 - LDT
* 8 - obsługa APM BIOS <==== nowa cacheline
* 9 - obsługa APM BIOS
* 10 - obsługa APM BIOS
* 11 - obsługa APM BIOS
* 12 - obsługa PNPBIOS <==== nowa cacheline
* 13 - obsługa PNPBIOS
* 14 - obsługa PNPBIOS
* 15 - pbsługa PNPBIOS
* 16 - obsługa PNPBIOS <==== nowa cacheline
* 17 - nie używane
* 18 - nie używane
* 19 - nie używane
set_thread_area() obecnie rozpoznaje nastepujące flagi:
#define TLS_FLAG_LIMIT_IN_PAGES 0x00000001
#define TLS_FLAG_WRITABLE 0x00000002
#define TLS_FLAG_CLEAR 0x00000004
(to wywołanie systemowe nie udostępnia żadnych innych opcji segmentu przestrzeni użytkownika, jego stopień uprzywilejowania to 3, a segment jest 32-bitowy itp. - używane są bezpieczne i rozsądne wartości.)
INFROMACJA: interfejs ten celowo nie umożliwia zmiany TLS dla innego wątku - to by tylko niepotrzebnie skomplikowało interfejs (oraz implementację). Czy istnieje jakikolwiek dobry powód dla umożliwienia zmiany parametrów TLS innego wątku?
INFROMACJA2: nie używające wątków aplikacje mogą wywoływać set_thread_area() w celu ustanowienia wpisu GDT zaraz poniżej końca stosu. Możemy równie dobrze używać domyślnej przestrzeni TLS, lecz to usztywni segment.
poprawiłem także kilka rzeczy w obsłudze GDT/IDT:
łatka kompiluje się, ładuje oraz działa działa świetnie na jedno- i wieloprocesorowych architekturach x86. Komentarze i sugestie mile widziane,
Oleg Netserov miał kilka pomysłów odnośnie łatki, więc przedyskutowali to razem przez chwilę. Nie wprowadzono żadnych, większych zmian.
17. User-Mode-Linux 2.5.28 wydany
25 lip 2002 (1 post) Archive Link: "UML 2.5.28"
People: Jeff Dike
Jeff Dike ogłosił:
UML został zaktualizowany do 2.5.28 i 2.4.18-44. Zmiany od 2.5.27 zawierają:
Ponieważ UML nie trafił do 2.5.27, to będę wysyłał tę łatkę Linusowi.
Łata dostępna jest tutaj:
http://uml-pub.ists.dartmouth.edu/uml/uml-patch-2.5.28-1.bz2
Inne serwery lustrzane UML oraz innych możliwości pobrania są wymienione pod
adresem:
http://user-mode-linux.sourceforge.net/dl-sf.html
Odnośniki dla zainteresowanych:
Strona domowa projektu UML: http://user-mode-linux.sourceforge.net
Strona społeczności UML: http://usermodelinux.org
Nie było odpowiedzi.
18. Poszukiwana pomoc dla Linux Weekly News
26 lip 2002 - 27 lip 2002 (7 posts) Archive Link: "Linux Weekly News umiera - ktoś pomoże?"
People: Bert Hubert, Daniel Phillips, Rik van Riel
Bert Hubert zmartwił się, gdy dowiedział się, że Linux Weekly News jest zamykane. Napisał: "Kupiliśmy trochę reklam na LWN, ale oczywiście nie możemy sami podtrzymać ich na życiu. Czy ktoś tu ma jakieś pomysły na utrzymanie tego przedsięwzięcia? Popatrzcie na: http://lwn.net" John Bradford napisał, że z przyjemnością i dobrowolnie pomoże tej witrynie, jeśli ktoś tylko będzie utrzymywał domenę. Russell King napisał, że jest prawie pewny, że ktoś chętnie ofiaruje miejsce na serwerze, ale Daniel Phillips odpowiedział: "Jon zwrócił uwagę, że problemem są pensje. Wydaje się, że temu departamentowi brakuje $150,000, albo nawet trochę więcej." Bert także napisał Russellowi:
Tu nie chodzi o serwer. Mam dla nich serwer. Sądzę, że wiele osób nie zdaje sobie sprawy z tego jak wiele czasu Jon i spółka spędzają nad przygotowywaniem LWN; chodzi dokładnie o ten *czas*, który uniemożliwia im robienie czegokolwiek innego.
Porównaj ich z poświęconym Linuksowi Theregister.co.uk - prawdziwe dziennikarstwo z analizami, które przewyższają te dostarczane przez CmdrTaco (choć te są chyba bardziej zabawne) i im podobne.
Żeby móc robić LWN, muszą znaleźć sposób na życie, który umożliwi im poświęcanie czasu na to. Nie mogą tego robić oprócz codziennej pracy.
A Rik van Riel dodał:
Bez dwóch zdań. Nie możesz robić strony z nowościami, strony jakości LWN, przy pomocy 100 ochotników, z których każdy spędzi 2 godziny tygodniowo na zbieraniu informacji.
Zamiast tego potrzebujesz kilka naprawdę dobrze poinformowanych osób. To kosztuje pieniądze, bo ci ludzie nie będą mieli czasu na robienie innych rzeczy, za które zapłacą swoje rachunki.
Daję teraz jakieś pieniędze. Jeśli to nie oszczędzi ich na jeszcze trochę, to będę o nich myślał jako o opłacie za prenumeratę i podziękowaniu...
19. Wsparcie dla SiS IDE ATA 133 w jądrach 2.4
26 lip 2002 - 27 lip 2002 (4 posts) Archive Link: "[PATCH] SiS IDE ATA 133 support"
People: Lionel Bouton
Lionel Bouton ogłosił, że Lui-Chen Chang z SiS zaimplementował obsługę ATA 133 w chipsetach SiS. Zaprezentował oryginalną łatę do 2.4.19-rc3 i swoją wersję do 2.4.19-rc3-ac3. W późniejszej wiadomości dodał: "Łata rc3-ac3 działa na moim ECS K7S5A, a łata rc3 została przetestowana na mostkach południowych 961 i 962 przez Lei-Chuna." Zapytał, czy znajdzie się ktoś inny, kto przetestuje kod, a Daniel Egger powiedział, że może to zrobić.
20. Obsługa wielu dysków SCSI w 2.4 i 2.5
26 lip 2002 - 27 lip 2002 (9 posts) Archive Link: "[PATCH] sd_many naprawiony (1/5)"
People: Kurt Garloff, Andreas Dilger, Christoph Hellwig
Kurf Garloff podesłał łatki dla 2.4, które pozwalają na domyślną obsługę więcej niż 128 dysków SCSI oraz, opcjonalnie, więcej niż 256. Sterownik osiąga to poprzez dynamiczne przydzielanie zasobów dla każdego dysku podłączonego do systemu. Podał odnośnik i powiedział, że łatka "implementuje pewną infrastrukturę, która jest użyteczna: Poszerzono format /proc/scsi/scsi, aby wskazywał podłączone sterowniki wysokiego poziomu. To może zostać użyte przez aplikacje działające w przestrzeni użytkownika do dynamicznego tworzenia plików urządzeń lub do komunikacji z urządzeniem typu sg (który, skądinąd, nie jest łatwy do znalezienia!) oraz do zdobywania informacji, takich jak seryjny numer WWID. "
Alexander Viro popatrzył na łatkę i powiedział, że pomimo, że to może działać z 2.4, to jednak nigdy nie znajdzie się w 2.5 w obecnej formie. Kurt odpowiedział: "Sądzę że, części sd mogą i powinny być przeniesione do 2.5. Rozszerzenia /proc/scsi/scsi oraz reszta kodu nie będzie potrzebna w 2.5, jako że mamy tam driverfs. Oraz, oczywiście, zarządzanie liczbą urządzeń będzie rozwiązane w bardziej ogólny sposób, ale jeszcze nie pojąłem jak." Andreas Dilger odpowiedział:
Właściwie jedynym, interesującym aspektem toczącej się dyskusji EVMS vs. device-mapper, który został całkowicie pominięty, to fakt, iż EVMS potrafi zarządzać wszystkimi urządzeniami blokowymi.
Na początku ,,wchłaniane'' są wszystkie urządzenia blokowe w celu stworzenia różnych przypisań (LVM, RAID, itp.), a na końcu ,,wyrzuca'' je jako główne urządzenia EVMS. Zawierają się w tym urządzenia, które nie zostały zamapowane, takie jak: hdXY lub sdMN. EVMS posiada udogodnienia, które zapewniają, w razie potrzeby, powtarzalność numerów głównych i pobocznych, ale które są przydzielane tylko w przypadku realnej potrzeby.
Obecnie EVMS posiada tylko jeden numer typu głównego ale w moim rozumieniu to powinno móc przejąć wszystkie numery główne urządzeń SCSI oraz IDE. Nie będziemy musieli się już martwić o alokację numerów rzadko spotykanych urządzeń oraz będziemy mogli posiadać bez żadnych problemów, tysiące dysków/partycji.
Christoph Hellwig powiedział, że, oczywiście, EVMS zarządza wszystkimi urządzeniami blokowymi, ponieważ dąży do zduplikowania Linuksowej warstwy zarządzania blokowego. Powiedział też: "To wszystko jest naprawdę świetnym pomysłem." Kurt odpowiedział, że nie chce do doprowadzenia do debaty EVMS versus warstwa blokowa dopóki nie uzyska pewności, że EVMS robi to, co obiecywał Christoph; powiedział także: "Idea posiadania numerów głównych przypisanych do dysków, bez względu na to co jest pod nimi, wygląda na bardzo dobry pomysł. Z obecnym podejściem będziemy potrzebowali zbyt wielu głównych numerów urządzeń, nawet jeżeli w przyszłości przeznaczone na to będą dodatkowe bity. Dlaczegoby nie posiadać pewnej puli głównych numerów urządzeń takich jak: sd, hd, dasd, rd (DAC960), oraz IDE-Raid oraz.... przydzielać je w razie potrzeby?" Christoph odpowiedział:
Taka jest wola Linusa. Powtórzył to na Linux Summit. Ale, aby zrobić to porządnie (= czyli nie za pomocą EVMS) potrzebujemy do tego się przygotować. Al obecnie dużo pracuje nad uczynieniem urządzeń blokowych bardziej niezależnymi od ich numerów głównych. A kiedy to się stanie i sterowniki nie będą potrzebowały wewnętrznie głównych numerów urządzeń, pozostanie tylko zapewnienie wstecznej zgodności na poziomie programów użytkowych.
Jestem całkiem pewien, że przygotowania zakończą się już dla 2.6, ale nie mogę stwierdzić, czy unifikacja głównych numerów dysków zostanie skończona.
21. Aktualizacja devfs
28 lip 2002 (1 post) Archive Link: "[PATCH] devfs v215 jest dostępny"
People: Richard Gooch
Richard Gooch ogłosił:
Wersja 215 mojej łatki devfs jest teraz dostępna na:
http://www.atnf.csiro.au/~rgooch/linux/kernel-patches.html
FAQ devfs jest także tutaj dostępne.
Łata do pobrania bezpośrednio z:
ftp://ftp.us.kernel.org/pub/linux/kernel/people/rgooch/v2.5/devfs-patch-current.gz
i:
ftp://ftp.atnf.csiro.au/pub/people/rgooch/linux/kernel-patches/v2.5/devfs-patch-current.gz
UWAGA: Jądra 2.5.1 i starsze wymagają devfsd-v1.3.19 lub starszego.
To jest dla 2.5.28. Ważniejsze rzeczy w tym wydaniu:
Nie było odpowiedzi.
22. Nowy sterownik PC-Speakera
29 lip 2002 (1 post) Archive Link: "[ANNOUNCE] Nowy sterownik PC-Speakera"
People: Stas Sergeev
Stas Sergeev ogłosił:
Ludziom, którzy wciąż nie mają karty dźwiękowej, chciałbym przedstawić sterownik pc-speakera. Gdzieś w sieci pałętają się inne takie sterowniki, ale z tego co wiem, żaden z nich nie jest naprawdę ukończony i używalny.
Mój sterownik jest oparty na sterowniku Michaela Becka i Davida Woodhousa, ale jest istotnie przerobiony i pretenduje do bycia w 100% zgodnym z OSS, produkując prawie najlepszy dźwięk jaki ktokolwiek kiedykolwiek może uzyskać z pc-speakera. Cóż, (obecnie) nie mam w zamiarze zgłaszać go do umieszczenia w głównym jądrze, więc nie traktujcie go zbyt serio. Komentarze i raporty o błędach będą jednak docenione.
Najnowsza łata na jądro 2.4.18 jest dostępna tu:
Nie było odpowiedzi.
23. Stan /proc/pci
29 lip 2002 - 31 lip 2002 (7 posts) Archive Link: "RFC: usunięcie /proc/pci?"
People: Russell King, Dave Jones, Martin Mares
Russell King zapytał: "Jak przez mgłę pamiętam, że jakiś czas temu (2,3 dni?) odbyła się dyskusja na temat usunięcia /proc/pci na rzecz informacji podawanych przez lspci, jednakże nie ma na ten temat zbyt wiele w google groups (a marc wydaje się być bezużyteczny przy wyszukiwaniach innych niż alfanumeryczne). Czy ktoś pamięta jak się skończyła dyskusja?" Dave Jones zauważył: "Wydaje mi się, że Linus był dość przywiązany do tego, więc zostało przywrócone do życia." A Martin Mares dodał:
Właśnie. Zaznaczyłem to jako zdezaktualizowane lata temu, a kiedy chciałem to wyciąć, to Linus powiedział, że lubi /proc/pci i musi ono zostać.
Wciąż myślę, że to ekstremalnie obrzydliwy interfejs, szczególnie dlatego, że wymaga, by jądro zawierało listę nazw producentów i urządzeń.
24. Obsługa HP Diva w 2.5.29
29 lip 02 0 (1 post) Archive Link: "[PATCH] 2.5.29 uaktualnienie"
Russell King ogłosił nową porcję zmian sterowników szeregowych dla 2.5.29. Głównym elementem jest dodanie obsługi HP Diva przygotowanej przez Matthew Wilcoxa. Nie było odpowiedzi.
25. Opieka nad 64-Bitowym PowerPC
29 lip 2002 - 30 lip 2002 (3 posts) Archive Link: "[TRIVIAL] Anton Blanchard jest opiekunem 2.5 na PPC64"
People: Rusty Russell, Todd Inglett, Tom Gall
Rusty Russell podesłał trywialną łatkę na plik MAINTAINERS, wymieniającą w nim Antona Blancharda jako opiekuna przeniesienia jądra na 64-bitowy PowerPC, w miejsce Davida Engebretsena. Napisał: "Anton jest tą osobą, do której idzie cała poczta i która wysyła łatki Linusowi. David jest opiekunem w 2.4. " Todd Inglett odpowiedział:
Sądzę, że powinieneś wyjaśnić to z Dave'em. Został zawalony robotą nad 2.4, ale nie sądzę, że kiedykolwiek planował porzucić opiekę nad projektem, tylko dlatego, że to 2.5.
Nikt nie zaprzecza, że Anton sporo pracuje nad tym, żeby ppc64 w 2.5 było aktualne, ale to nie oznacza automatycznej zmiany opiekuna.
Tom Gall także napisał Rusty'emu: "Dave w dalszym ciągu jest ogólnie opiekunem ppc64. Popatrz na linuxppc64.org."
26. Opieka nad Sparc32
29 lip 2002 (1 post) Archive Link: "[TRIVIAL] Zaznaczenie sparc32 jako nieutrzymywanego w 2.5"
Rusty Russell, po uzgodnieniu z Davidem Millerem, podesłał na listę łatkę, która zaznaczała przeniesienie na Sparc32 jako nieutrzymywane. Nie było odpowiedzi.
27. Dokumentacja do BitKeepera
30 lip 2002 - 31 lip 2002 (5 posts) Archive Link: "Proste BK HOWTO"
People: Dave Jones
Krzysiek Taraszka zapytał o prostą dokumentację do BitKeepera i paru gości odesłało go do Documentation/BK-usage; Dave Jones dodał:
Użyteczny jest BK - jazda próbna - http://www.bitkeeper.com/Test.html
Obejrzyj też slajdy itp. z wykładu Val Henson na OLS; są na jej stronie - http://www.nmt.edu/~val/
28. Modutils 2.4.19
31 lip 2002 (1 post) Subject: "Ogłoszenie: dostępne są modutils 2.4.19"
People: Keith Owens
Keith Owens ogłosił modutils 2.4.19 i napisał:
Wyciąg z listy zmian:
Użytkownikom IA64, którzy debugują moduły, mocno polecamy aktualizację do tej wersji.
Nie było odpowiedzi.
29. Stan drzewa -dj
31 lip 2002 (1 post) Subject: "dlaczego nie ma nowej łatki 2.5-dj ?"
People: Dave Jones
Dave Jones napisał:
Mam już dość odpowiadania ciągle na te same pytania, więc postawiłem, że wyślę to tutaj.
Najbardziej powszechne pytanie, które ostatnio jest mi zadawane, można przedstawić w formie ,,Dlaczego nie ma 2.5-dj od .27?'' (Tia, całe dwie wersje i ludzie już się pocą z przejęcia).
W ostatnim punkcie zaznaczyłem ważną zmianę w moim sposobie pracy. Spędziłem trochę czasu próbując zdecydować, jak się się udać na wakacje, żeby nie wrócić do nocnego koszmaru synchronizacji wszystkiego po przerwie. Puryści z FSF mnie znienawidzą, ale znowu zacząłem bawić się BitKeeperem i tym razem się udało. (Ciekawi mogą popatrzeć na http://linux-dj.bkbits.net)
W tym tygodniu odłożyłem podsyłanie kawałków Linusowi, żeby wyraźnie utrudnić sobie życie, gdybym musiał synchronizować się z jego ostatnim drzewem ręcznie, by zobaczyć, czy bk naprawdę sobie z tym radzi. Do tej pory, to co zwykle zabiera mi większą część godziny, może być teraz zrobione w ciągu 10 minut.
Zatem po moim powrocie, ponowna synchronizacja powinna być mniej bolesna niż kiedyś i zabiorę się za przesyłanie Linusowi niektórych rzeczy, które już na to od pewnego czasu czekają.
Ostatnia rzecz: Ze względu na to, że tydzień mnie nie będzie, niczego nowego nie włączę do mojego drzewa 8) Wysyłajcie jednak co macie, zajmę się tym po powrocie.
Nie było odpowiedzi.
30. 2.4.19-rc4 wydane
31 lip 2002 (2 posts) Subject: "Linux 2.4.19-rc4"
People: Marcelo Tosatti
Marcelo Tosatti wydał 2.4.19-pre4 i napisał: "Ponieważ wystąpiły pewne krytczne problemy (głównie wyścig d_unhash() przy SMP), oto rc4." Rudmer van Dijk zgłosił, że pojawiły się ostrzeżenia podczas kompilacji, ale nie było na ten temat dalszej dyskusji.
31. Uaktualnienie protokołu Stream Control Transmission
31 lip 2002 (1 post) Subject: "[ANNOUNCE] nowa wersja lksctp - lksctp-2_5_29-0_5_0"
People: Jon Grimm
Jon Grimm ogłosił:
Można już ściągnąć SCTP dla jądra Linuksa w wersji lksctp-2_5_29-0_5_0.
Projekt lksctp został stworzony w celu implementacji protokołu transportowego SCTP dla jądra Linuksa.
Więcej informacji, kod źródłowy i łatki można znaleźć pod adresem:
http://www.sourceforge.net/projects/lksctp/
Łatka na wersję linux-2.5.29 może być bezpośrednio ściągnięta z:
http://prdownloads.sourceforge.net/lksctp/lksctp-2_5_29-0_5_0.patch?download
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. |