Portál AbcLinuxu, 7. listopadu 2025 08:59
#> chrt -r 99 ./program
nebo takhle:
#> nice -20 ./program
nebo normálně:
#> ./program
vždy se rozptyl času potřebného k vykonání smyčky pohybuje okolo 9.99+-0.04ms. Tj. jedna smyčka proběhne průměrně o 9.99ms jinak dlouho než nějaká jiná smyčka. Není mi jasné, proč ani chrt ani nice nemá na rozptyl vliv. Jádro je 2.6.31.6-rt19-1-amd64 #1 SMP PREEMPT RT .
Máte tip, jak otestovat, zdali rt-preemt funguje a pakliže ano, proč nefunguje chrt?
./cyclictest -t1 -p 80 -n -i 10000 -l 10000 policy: fifo: loadavg: 0.02 0.17 0.10 1/158 17841 T: 0 (17147) P:80 I:10000 C: 10000 Min: 6 Act: 8 Avg: 8 Max: 31
(Pro ty šťastné, kteří o téhle hrůze nevědí: http://en.wikipedia.org/wiki/System_Management_Mode#Entering_SMM - pozor, je to k zblití)
Tohle je nutné ověřit; asi bych zkusil něco jako vypisovat místo měření jenom čistý systémový čas, stroj ničím jiným nezatěžovat a sledovat, jak moc čas skáče. Pokud poskakuje moc, tak je zle a daný motherboard se prostě nehodí pro realtime operace. (Respektive, možná by šlo přeflashovat BIOS nějakým otevřeným firmwarem, ale hádám, že to skončí mrtvou deskou.)
Když to nepůjde jinak, což zbastlit nějaký mezikus s Atmelem, PICem nebo tak (pokud bude stíhat, ale snad by mohl) a do PC-čka posílat už připravená data?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.