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 01:44 | Pozvánky

Cez víkend 17. a 18. júna (června) 2017 sa v Bratislave na Fakulte matematiky fyziky a informatiky UK uskutoční štvrtý ročník prednáškového podujatia OSS víkend Bratislava, ktoré bude venované otvorenému softvéru, otvorenému hardvéru, otvoreným dátam a otvoreným štandardom. Návrhy na prednášky možno predkladať do 11. mája (května) 2017. Záznamy z prechádzajúceho OSS Víkendu na YouTube.

Ladislav Hagara | Komentářů: 0
dnes 00:11 | Zajímavý článek

Od 28. do 30. dubna proběhl v Torontu Creative Commons Global Summit 2017. Nezisková organizace Creative Commons plánovala budoucnost, ale také hodnotila minulost. V první den konference byla vydána výroční zpráva Creative Commons za rok 2016.

Ladislav Hagara | Komentářů: 0
včera 02:00 | Nová verze

Byla vydána stabilní verze 2.0 linuxové distribuce Lakka, jež umožňuje transformovat podporované počítače v herní konzole. Lakka 2.0 obsahuje například LibreELEC 8.0 nebo RetroArch 1.5.0.

Ladislav Hagara | Komentářů: 2
29.4. 23:44 | Pozvánky

24. 5. 2017 od 9:00 proběhne v Brně na Fakultě informatiky MU (Botanická 68a) v místnosti D2 jednodenní konference Industry Cocktail (Facebook), na které máš šanci nahlédnout do způsobů využití nových technologií v aktuálních projektech z různých průmyslových odvětví. To, že složité problémy se neřeší jen v laboratořích a způsoby, jakými se s nimi vypořádat v praxi, rozeberou přednášející z jednotlivých firem.

mjedlick | Komentářů: 0
29.4. 23:33 | Nová verze

Byla vydána verze 0.69 populárního telnet a ssh klienta PuTTY. Podrobnosti v přehledu změn. Řešen je také bezpečnostní problém ve verzi pro Windows.

Ladislav Hagara | Komentářů: 0
28.4. 13:11 | Nová verze

Po téměř dvou letech byla vydána nová verze 4.0 linuxové distribuce Audiophile Linux (též AP-Linux-V4). Tato distribuce vychází z Arch Linuxu, používá systemd, správce oken Fluxbox a vlastní real-time jádro pro nižší latence. Z novinek můžeme jmenovat podporu nových procesorů Intel Skylake a Kaby Lake nebo možnost instalace vedle jiných OS na stejný disk. Pokud se zajímáte o přehrávání hudby v Linuxu, doporučuji návštěvu webu této

… více »
Blaazen | Komentářů: 7
27.4. 18:55 | Nová verze

Byla vydána nová stabilní verze 1.9 (1.9.818.44) webového prohlížeče Vivaldi (Wikipedie). Z novinek vývojáři zdůrazňují podporu nového vyhledávače Ecosia. Ten z příjmů z reklam podporuje výsadbu stromů po celém světě (YouTube). Nově lze přeskupovat ikonky rozšíření nebo řadit poznámky. Nejnovější Vivaldi je postaveno na Chromiu 58.0.3029.82.

Ladislav Hagara | Komentářů: 21
27.4. 17:00 | Nová verze

Byla vydána verze 3.7.0 svobodného systému pro správu obsahu (CMS) Joomla!. V oznámení o vydání (YouTube) se píše o 700 vylepšeních. Opraveno bylo také 8 bezpečnostních chyb.

Ladislav Hagara | Komentářů: 1
27.4. 08:22 | Komunita

Grsecurity (Wikipedie) je sada bezpečnostních patchů pro linuxové jádro (porovnání se SELinuxem, AppArmorem a KSPP). Od září 2015 nejsou stabilní verze těchto patchů volně k dispozici. Dle včerejšího oznámení (FAQ) nejsou s okamžitou platností volně k dispozici už ani jejich testovací verze.

Ladislav Hagara | Komentářů: 80
26.4. 23:33 | Komunita

OpenBSD 6.1 vyšlo již 11. dubna. Po dvou týdnech byla vydána i oficiální píseň. Její název je Winter of 95 a k dispozici je ve formátech MP3 a OGG.

Ladislav Hagara | Komentářů: 1
Chystáte se pořídit CPU AMD Ryzen?
 (4%)
 (35%)
 (1%)
 (7%)
 (45%)
 (9%)
Celkem 359 hlasů
 Komentářů: 50, poslední 27.4. 04: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.