Poniedzielnik: wieści ze świata OpenSource. Numer 8 6


Wieści ze świata Open Source: 27 Czerwca – 3 Lipca 2011

Tematem przewodnim ósmego numeru Poniedzielnika jest zużycie energii – coś na co patrzy każdy użytkownik urządzeń mobilnych i rzadziej PC-towiec. Ostatnio sporo się działo w tej sprawie, głównie za sprawą kilku poważnych regresji, podwyższających apetyt kernela na energię elektryczną. Jedną z nich opisano w tym tygodniu. Chociaż udało się zidentyfikować źródło problemu, to nadal jest wiele do zrobienia.

Stan prac nad wykryciem źródła zwiększonego zapotrzebowania kernela na energię elektryczną.

Gdzieś głęboko w kernelu 2.6.38 zaszył się błąd spędzający sen z oczu użytkownikom Linuksa na urządzeniach mobilnych. Pisałem o tym w drugim numerze Poniedzielnika, zaś sama regresja w jądrze Linuksa została wykryta przeszło dwa miesiące temu przez Michaela Laraberta, redaktora portalu Phoronix.com. Od tamtego momentu jednak niewiele w temacie ruszyło. Błąd był, ale nikt nie był wstanie wskazać winowajcy. Nie była to jakaś prosta, rzucająca się w oczy rzecz jak to zwykle bywa z tego typu błędami. Nie był to niedomknięty nawias czy pomylone funkcje o podobnej nazwie. W międzyczasie po baterii dostali mobilni użytkownicy Ubuntu 11.04 i Fedory 15.

Skoro nie dało się prosto znaleźć błędu, sięgnięto po rozwiązanie siłowe. Krótko mówiąc, sprawdzono po kolei wszystkie commity wprowadzone do kernela 2.6.38. Najpierw wzięto czysty .37 i nakładano na niego kolejne łatki, aż dotarto do kernela .38, Po każdym takim commicie kernel budowano, bootowano i testowano pobór prądu. Mówimy tu zapewne o kilkunastu tysiącach commitów, więc wyobrażacie chyba sobie ogrom pracy. Chociaż wszystko było zautomatyzowane, to całość trwała niewiarygodnie długo.

W ten sposób znaleziono pośredniego winnego: commit 2f671e2dbff6eb5ef4e2600adbec550c13b8fe72 „PCI: Disable ASPM if BIOS asks us to.” ASPM, czyli Active-State Power Management, to technologia mająca na celu oszczędzanie energii poprzez przestawianie urządzeń PCI w tryb zmniejszonego zużycia energii (kosztem mniejszej wydajności). Dane o obsłudze ASPM były przechowywane przez BIOS, tak więc jeżeli BIOS mówił iż urządzenie nie obsługuje ASPM, to kernel się do tego nie dotykał. Praktyka pokazała, że nie można polegać na danych z BIOS-u, gdyż czasem są nieprawdziwe. Dlatego też deweloperzy wprowadzili małą poprawkę, tak aby kernel potwierdzał dane z BIOS-u w tablicy FADT (Fixed ACPI Description Table) i odpowiednio na to reagował. I tu zaczęło się schody.

Producenci sprzętu, BIOS-ów oraz Microsoft traktując oficjalną dokumentację ACPI bardzo elastycznie, nie zaś jako obowiązujący standard. Efektem jest gigantyczna prowizorka w całym systemie zarządzania energią, gdyż wszyscy próbowali dostosować się do mechanizmu zarządzania energii MS Windows. Bardzo wiele podzespołów dla urządzeń mobilnych obsługuje ASPM w celu oszczędzania energii, ale przez te wszystkie prowizorki i obejścia nieprawidłowo zgłaszają się w tabelach ACPI BIOS-u, z których to Linux czerpie informacje. Deweloperzy przerabiali to już kilka lat temu, przy okazji wprowadzania obsługi usypiania/hibernacji.

Co można z tym zrobić? Chałupniczym sposobem można zrobić kolejną prowizorkę, wymuszając ASPM na wszystkich urządzeniach. W GRUB-ie trzeba dodać „pcie_aspm=force” do polecenia bootowania. Potwierdzono, że to działa i redukuje zużycie energii podczas pracy na baterii o około 15%. Problem w tym, że na niektórych podzespołach może nie zadziałać i spowodować zawieszenie systemu.

W długim okresie deweloperów kernela czeka tytaniczna praca wprowadzenia do sterowników urządzeń PCI / PCI-E ręcznego sprawdzania i ustawiania stanów ASPM, z pominięciem danych z BIOS-u. Innym rozwiązaniem jest stworzenie listy urządzeń, które działają prawidłowo i zezwolenie na używanie ASPM tylko przez te urządzenia. W obu wypadkach potrzeba będzie dużo czasu na wprowadzenie poprawek do kernela. Najwcześniej będzie to 3.1, ale możliwe iż dopiero wersja 3.2 doczeka się odpowiednich poprawek.

Źródła:
Phoronix.com (1, 2)

Ubuntu vs Windows – pojedynek na energię

Z poprzedniego tekstu można odnieść wrażenie, że do zasilania Linuksa potrzeba przynajmniej elektrowni atomowej. Ale tak naprawdę „wielka i zła” regresja powoduje wzrost zużycia energii o 10%, zaś w skrajnych przypadkach 40% (ale te dane nie mają potwierdzenia, najbezpieczniej przyjąć 10-20% w zależności od podzespołów komputera). Zwolennicy systemu spod znaku Zamkniętego Okna nie omieszkali tego wytknąć, chwaląc jaki to ich system jest energooszczędny. Czy jest? Spece z Phoronix.com postanowili to przetestować.

W teście porównano zużycie energii przez Ubuntu 11.04 x86_64 oraz. Windows 7 Professional Service Pack 1 x64. Oba systemy zostały na czysto zainstalowane na testowych komputerach i laptopach (całkiem nowe maszyny), bez żadnej dodatkowej konfiguracji. Oba systemy przetestowano na każdym sprzęcie w czterech testach (bootowanie, zwykła praca, odtwarzanie filmów HD, granie) podczas których mierzono zużycie energii.

Tabelkami, wykresami i szczegółowymi wynikami nie będę was zamęczał, to można sobie sprawdzić na Phoronix.com. Ale przejdę do tego co najciekawsze, czyli wniosków.

Ciężko wskazać zwycięzcę tego pojedynku. W większości testów wyniki są do siebie bardzo zbliżone (1-3 waty różnicy na 200 zużywanych). Windows 7 SP1 wygrywa tam gdzie można się tego spodziewać, czyli przy odtwarzaniu filmów Flash HD. Żadna niespodzianka, szczególnie na systemach z kartami ATI – sterowniki Catalyst nie dają na Ubuntu akceleracji sprzętowej dla Flasha. Ubuntu przeważnie wygrywało w testach bootowania i użytkowania pulpitu, ale głównie za sprawą bardziej zrównoważonego zużycia energii, podczas gdy Windows „skakał” w górę i w dół.

Nie należy zapominać, że Ubuntu działało bez wymuszania pcie_aspm w kernelu tak więc teoretycznie większość wyników mogłaby by być o 10% lepsza.

W skrócie

20 lat Linuksa - zwycięski projekt na koszulkę rocznicową

20 lat Linuksa – zwycięski projekt na koszulkę rocznicową

Document Fundation wydaje LibreOffice 3.4.1 – zwierającą poprawki błędów znalezionych w wydanym tydzień temu 3.4.0. Kolejna wersja (3.4.2) będzie oznaczona jako stabilna.

Powstaje nowy sklep z grami na Linuksa – Gameolith. Co w nim specjalnego? Gry będzie można ściągnąć jako paczki .deb i .rpm, co mocno ułatwi instalację. 7 lipca przekonamy się na ile bogata jest ich oferta.

W sierpniu będziemy świętować dwudziestą rocznicę powstania Linuksa. Na tą okazję Linux Fundation rozpisała konkurs na rocznicową koszulkę. Projekt zwycięzcy można zobaczyć z boku.

NVIDIA wydała pierwszą betę serii 280 swoich zamkniętych sterowników dla Uniksów. Poza naprawieniem kilku błędów, nowy sterownik wprowadza obsługę serwera X.org w wersji 1.11


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

6 komentarzy do “Poniedzielnik: wieści ze świata OpenSource. Numer 8

  • dareczek

    Co do oszczędzania energii:
    Na Kubuntu 10.04 postanowiłem wyłączyć tego typu ficzery jak wygaszacz ekranu czy wyłączenie monitora, o ile z wygaszaczem problemów nie miałem, to z wyłączaniem monitora już tak. Co bym nie ustawił włączył lub wyłączył to po 10 minutach bezczynności monitor był wyłączany.

    [quote post=”15020″]Gry będzie można ściągnąć jako paczki .deb i .rpm, co mocno ułatwi instalację.[/quote]
    Oby tak dalej. Obecnie paczki ze źródłami są wszędzie, a paczek skompilowanych to ze świeca szukać i nie tylko chodzi tu o gry.

  • Heos

    Bardzo mnie ucieszyła nVidia swoją serią 280, wreszcie coś się ruszyło.
    Gameolith, czy to nie będzie tak, że poza paczkami nie będą mieli do zaoferowania nic nowego? Jeżeli nie wynajdą skądś dobrych innych gier niż pozostałe sklepy to nie wróże im świetlanej przyszłości. Sama obecność paczek nie da im przebicia.

  • pawiecki

    Mnie każda inicjatywa w stronę popularyzacji gier a tym bardziej komercyjna napawa optymizmem. Ktoś w to inwestuje pieniądze więc albo ma ich za dużo, albo jest maniakalnym fanem open source albo jednak widzi w tym potencjalny zarobek 🙂

    Może i sama obecność paczek to żaden szał, ale już sklep dostępny i działający dla każdej dystrybucji z łatwą instalacją natywnych programów, owszem. Tego wciąż brakuje. Masz Ubuntu – masz USC, Get/PlayDeb, masz Fedorę – RPMFusion ale nie masz jednego sklepu dla każdego GNU/Linuxa. Jeśli zajmą się „paczkowaniem”, ułatwią dystrybucję nowych aplikacji i dobrze się zareklamują to mogą nieźle zamieszać 🙂