Article View: pl.comp.os.linux.programowanie
Article #72374Re: Problem w sterowniku 8250 - printk pomaga, brak sekcji krytycznej
From: Krzysztof Halasa
Date: Thu, 27 Oct 2011 23:19
Date: Thu, 27 Oct 2011 23:19
29 lines
2298 bytes
2298 bytes
"elonica.pl" <bartlomiej.grzeskowiak@gmail.com> writes: > Mam napisaną własną część sterownika 8250. Dodatkowe kości 16C550 > podłączone są przez GPIO. Problem jest taki, ze sterownik gubi mi > część znaków przesyłanych na /dev/ttySX (pojawia sie tylko jakies > 20%). Podczas deboggowania wyszło, ze kiedy wstawię printk na początku > w funkcji write_byte(...). Problem znika. A co to za scalak? Teoretycznie jest szansa, ze samo opoznienie cos powoduje (np. w przypadku wadliwych operacji I/O), ale bardziej prawdopodobne jest, ze udelay() tworzy bariery, ktore zapobiegaja "wyoptymalizowaniu" rzekomo zbednego kodu, albo np. zmianie kolejnosci kodu. Domyslam sie ze SoCreg() to jakis *(volatile *)... co to za kompilator? Przyjrzalbym sie wersji assemblerowej w obu przypadkach. Np. gcc 2.6.x jest znany z tego, ze potrafi wyoptymalizowac niektore rzeczy tak, jakby nie byly volatile. > Próbowałem już kilkanaście razy zmieniać delaye, ale nic. Jedyne co mi > jeszcze przychodzi do głowy to fakt, ze funkcje read i write nie sa > sekcjami krytycznymi. Czy to dobry trop ? Mam delikatne wrazenie, ze driver 8250 wykonuje tylko jedna operacje w danej chwili (sam uzywa spinlocka), co by sugerowalo, ze te funkcje nie musza byc "atomic". Ale oczywiscie tak jest tylko pod warunkiem, ze zaden inny kod (np. inny driver) ich nie uzywa. Plik .s (a wlasciwie dwa pliki) powinny rozjasnic sprawe. -- Krzysztof Halasa
Technical Details
Message-ID:
<m3vcra3tw0.fsf@intrepid.localdomain>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!not-for-mailReferences:
<0c34e073-bf61-43b8-820d-e5d1634b743f@r2g2000vbj.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!not-for-mail From: Krzysztof Halasa <khc@pm.waw.pl> Newsgroups: pl.comp.os.linux.programowanie Subject: Re: Problem w sterowniku 8250 - printk pomaga, brak sekcji krytycznej Date: Fri, 28 Oct 2011 01:19:11 +0200 Organization: NASK - www.nask.pl Lines: 29 Message-ID: <m3vcra3tw0.fsf@intrepid.localdomain> References: <0c34e073-bf61-43b8-820d-e5d1634b743f@r2g2000vbj.googlegroups.com> NNTP-Posting-Host: nat.piap.pl Mime-Version: 1.0 X-Trace: pippin.nask.net.pl 1319757555 5363 195.187.100.13 (27 Oct 2011 23:19:15 GMT) X-Complaints-To: abuse ATSIGN nask.pl NNTP-Posting-Date: Thu, 27 Oct 2011 23:19:15 +0000 (UTC) Cancel-Lock: sha1:cvo3R8Ye7Pzg93pDXXqY2sueZes= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit