abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 06:00 | Komunita

V Praze na půdě Elektrotechnické fakulty ČVUT dnes probíhá RT-Summit 2017 – setkání vývojářů linuxového jádra a uživatelů jeho real-time verze označované jako preempt-rt. Přednášky lze sledovat online na YouTube.

Ladislav Hagara | Komentářů: 0
včera 14:33 | Zajímavý projekt

Blender Animation Studio zveřejnilo první epizodu z připravovaného animovaného seriálu The Daily Dweebs o domácím mazlíčkovi jménem Dixey. Ke zhlédnutí také ve 3D s rozlišením 8K.

Ladislav Hagara | Komentářů: 0
včera 12:34 | Komunita

Aktualizovanou počítačovou hru Warhammer 40,000: Dawn of War III v ceně 39,99 eur běžící také na Linuxu lze o víkendu na Steamu hrát zdarma a případně ještě v pondělí koupit s 50% slevou. Do soboty 19:00 lze na Humble Bundle získat zdarma Steam klíč k počítačové hře Sid Meier's Civilization® III v ceně 4,99 eur běžící také ve Wine.

Ladislav Hagara | Komentářů: 0
včera 00:22 | Nasazení Linuxu

Společnost Samsung oznámila, že skrze dokovací stanici DeX a aplikaci Linux on Galaxy bude možno na Samsung Galaxy S8 a S8+ a Galaxy Note 8 provozovat Linux. Distribuce nebyly blíže upřesněny.

Phantom Alien | Komentářů: 10
19.10. 23:55 | Komunita

Společnost Purism na svém blogu oznámila, že její notebooky Librem jsou nově dodávány se zrušeným (neutralized and disabled) Intel Management Engine (ME). Aktualizací corebootu na již prodaných noteboocích lze Management Engine také zrušit. Více v podrobném článku.

Ladislav Hagara | Komentářů: 0
19.10. 21:44 | Nová verze

Organizace Apache Software Foundation (ASF) na svém blogu slaví páté výročí kancelářského balíku Apache OpenOffice jako jejího Top-Level projektu. Při této příležitosti byl vydán Apache OpenOffice 4.1.4 (AOO 4.1.4). Podrobnosti v poznámkách k vydání. Dlouhé čekání na novou verzi tak skončilo.

Ladislav Hagara | Komentářů: 6
19.10. 19:22 | Pozvánky

Již příští týden - 26. a 27. října se v Praze v hotelu Olšanka odehraje OpenWRT Summit. Na webu konference naleznete program a možnost zakoupení lístků - ty stojí 55 dolarů. Čtvrtek bude přednáškový a v pátek se budou odehrávat převážně workshopy a meetingy.

Miška | Komentářů: 1
19.10. 13:44 | Nová verze

Bylo vydáno Ubuntu 17.10 s kódovým názvem Artful Aardvark. Ke stažení jsou Ubuntu Desktop a Server, Ubuntu Cloud Images, Ubuntu Netboot, Kubuntu, Lubuntu a Lubuntu Alternate, Lubuntu Next, Ubuntu Budgie, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio a Xubuntu. Podrobnosti v poznámkách k vydání.

Ladislav Hagara | Komentářů: 22
19.10. 13:00 | Komunita

MojeFedora.cz informuje, že Fedora 27 dostane podporu pro AAC. Podpora multimediálních formátů je ve výchozí instalaci Fedory tradičně limitovaná kvůli softwarovým patentům, ale desktopový tým Red Hatu se ji i tak snaží v poslední době co nejvíce rozšířit. Už nějaký čas obsahuje kodeky pro MP3, H.264, AC3 a nyní byl přidán také kodek pro další velmi rozšířený zvukový formát – AAC.

Ladislav Hagara | Komentářů: 2
18.10. 23:55 | Pozvánky

Spolek OpenAlt zve příznivce otevřených technologií a otevřeného přístupu na 145. brněnský sraz, který proběhne v pátek 20. října od 18:00 hodin v restauraci Time Out na adrese Novoměstská 2 v Řečkovicích. Jedná se o poslední sraz před konferencí OpenAlt 2017, jež proběhne o víkendu 4. a 5. listopadu 2017 na FIT VUT v Brně. Běží registrace účastníků.

Ladislav Hagara | Komentářů: 0
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (10%)
 (1%)
 (1%)
 (1%)
 (75%)
 (12%)
Celkem 146 hlasů
 Komentářů: 7, poslední 19.10. 23:06
    Rozcestník

    Dotaz: kthread: jak správně ukončit vlákno?

    Karry avatar 31.12.2008 11:51 Karry | skóre: 10
    kthread: jak správně ukončit vlákno?
    Přečteno: 283×
    Zdravím.

    Potřeboval bych v jaderném driveru nějakým způsobem implementovat vlákno, které by se po určitých časových intervalech probouzelo, dotázalo se hardwaru na jeho stav a podle výsledku vykonalo specifický kód.

    Zatím jsem to napsal zhruba takto:

    vytvoření vlákna a jeho spuštění:
        rotation_thread = kthread_create(rotation_thread_function, cam, "rotation thread");
        cam->sensor->private_data = (void *)rotation_thread;
        wake_up_process(rotation_thread);
    
    samotná vláknová funkce:
      
        int rotation_thread_function(void *data){
            struct m5602_camera *cam = (struct m5602_camera *)data;
            // deklarace pár struktur a lokálních proměnných
            
            set_current_state(TASK_INTERRUPTIBLE);
            while(!schedule_timeout(500)){
                
                // vemu si mutex pro přístup k zařízení
                if (mutex_lock_interruptible(&cam->fileop_mutex))
                    continue;
                
                // tady se vykonává práce s hardwarem
                
                // uvolním mutex zařízení
                mutex_unlock(&cam->fileop_mutex);
                set_current_state(TASK_INTERRUPTIBLE);
            }
        
            info("End of rotation thread!");
            return 0;
        }
    
    když má být vlákno ukončeno (při unloadu modulu):
        if (cam->sensor->private_data){
            kthread_stop((struct task_struct *)cam->sensor->private_data);
        }
    
    Pokud to mám takto, vlákno běží krásně a v pravidelných intervalech se probouzí. Problém nastane, když chci modul unloadnout, například při hibernaci... Čas od času mi tento kód způsobí oops, který sebou s velkým rachotem veme usbcore a další moduly, takže jádro je nutné rebootnout :(

    Netuším kde přesně mám chybu. Odhaduji že asi ve špatném použití schdule_timeoout...? Nebo tam někdo vidíte kritickou část, kterou mám ošetřenu špatně? S vlákny v uživatelském prostoru nemám problém, ale v jádře něco takového píšu prvně... Navíc se to mnohem hůř ladí, než v user módu...

    Za jakékoliv nápady předem děkuji.
    unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep

    Odpovědi

    1.1.2009 09:42 luky
    Rozbalit Rozbalit vše Re: kthread: jak správně ukončit vlákno?
    Chybí mi tam kthread_should_stop() a myslím, že nenulová návratovka schedule_timeout() není důvod k ukončení toho cyklu.

    Při ručním unloadu jen toho jednoho modulu to klekne taky? Z Oopsu není vidět, kde to padne?
    Karry avatar 3.1.2009 01:42 Karry | skóre: 10
    Rozbalit Rozbalit vše Re: kthread: jak správně ukončit vlákno?
    Tak jsem si s tím dneska trochu pohrál a vypadá to už to nepadá. Prakticky jsem jenom při neúspěchu získání zámku k zařízení ukončil celé vlákno...
    	...
    	stop = 0;
    	while((!schedule_timeout(100)) || stop ){
    		if (mutex_lock_interruptible(&sd->gspca_dev.usb_lock)){
    			stop = 1;
    			continue;
    		}
    		...
    
    Ještě pár dní budu svoji kameru tímto modulem trápit a pokud to ani jednou nespadne, půjde patch do světa...

    Každopádně děkuji Lukynovi za čas :)
    unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep
    David Watzke avatar 3.1.2009 12:45 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: kthread: jak správně ukončit vlákno?
    Uff... nebylo by lepší dát do těla toho ifu spíš break a neřešit tu zbytečnou proměnnou stop?
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Karry avatar 3.1.2009 14:52 Karry | skóre: 10
    Rozbalit Rozbalit vše Re: kthread: jak správně ukončit vlákno?
    Jak říkáš :) Takhle to dopadá když programuju ve dvě ráno...
    unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.