Missing figures in RT_PREEMPT_HOWTO
A message that is not in the archive (sent off-list or not yet received): [email protected]
Dirk,
Quoted 3 lines · Dirk Behme
can you please check the missing figures 3 & 4 & 5 in
http://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO#Patching_the_Kernel
As the document states, the primary source is still the DocBook, not the Wiki. Juergen has reworked quite some parts of the documents, including the 2pt screenshots :-) , I assume he will check it in during the next days.
I've added your changes in the Wiki to the DocBook document, to make sure they don't disappear at the next update. Next time better check out the svn from our server and send me patches against the latest version.
Robert
Signature · 5 lines
Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
Pengutronix - Linux Solutions for Science and Industry
Handelsregister: Amtsgericht Hildesheim, HRA 2686
Hannoversche Str. 2, 31134 Hildesheim, Germany
Phone: +49-5121-206917-0 | Fax: +49-5121-206917-9Quoted 8 lines · Robert Schwebel
As the document states, the primary source is still the DocBook, not the Wiki. Juergen has reworked quite some parts of the documents, including the 2pt screenshots :-) , I assume he will check it in during the next days.
I've added your changes in the Wiki to the DocBook document, to make sure they don't disappear at the next update. Next time better check out the svn from our server and send me patches against the latest version.
I didn't notice that and I've recently added some content to the Wiki too. I see that you've added my changes to the DocBook, good. Next time I'll send patches against that. But how do I checkout from the SVN?
I tried
svn co https://iocaste.penguin.de/viewsvn/rt-preempt-howto/trunk/
but this doesn't work. I'm getting:
svn: PROPFIND request failed on '/viewsvn/rt-preempt-howto/trunk'
svn: PROPFIND of '/viewsvn/rt-preempt-howto/trunk': 301 Moved (https://iocaste.penguin.de)
Michal
Michael,
Quoted 6 lines · Michal Schmidt
Quoted 5 lines · Robert Schwebel
As the document states, the primary source is still the DocBook, not the Wiki. Juergen has reworked quite some parts of the documents, including the 2pt screenshots :-) , I assume he will check it in during the next days.
Quoted 7 lines
Quoted 3 lines
I've added your changes in the Wiki to the DocBook document, to make sure they don't disappear at the next update. Next time better check out the svn from our server and send me patches against the latest version.
I didn't notice that and I've recently added some content to the Wiki too. I see that you've added my changes to the DocBook, good. Next time I'll send patches against that. But how do I checkout from the SVN?
I've ported the changes from the wiki diff output; please send me a diff with a correct credit line for the document header. I suppose I've not correctly seen who made which changes.
Quoted 6 lines
I tried
svn co https://iocaste.penguin.de/viewsvn/rt-preempt-howto/trunk/
but this doesn't work. I'm getting:
svn: PROPFIND request failed on '/viewsvn/rt-preempt-howto/trunk'
svn: PROPFIND of '/viewsvn/rt-preempt-howto/trunk': 301 Moved
(https://iocaste.penguin.de)
The URL with "viewsvn" is for online viewing, replace it by "svn" and it should work.
Robert
Signature · 5 lines
Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
Pengutronix - Linux Solutions for Science and Industry
Handelsregister: Amtsgericht Hildesheim, HRA 2686
Hannoversche Str. 2, 31134 Hildesheim, Germany
Phone: +49-5121-206917-0 | Fax: +49-5121-206917-9Hi all,
Quoted 6 lines · Robert Schwebel
Quoted 5 lines · Michal Schmidt
Quoted 4 lines · Robert Schwebel
As the document states, the primary source is still the DocBook, not the Wiki. Juergen has reworked quite some parts of the documents, including the 2pt screenshots :-) , I assume he will check it in during the next days.
Done. Check "svn co https://iocaste.penguin.de/svn/rt-preempt-howto"
Juergen
Signature · 4 lines
Dipl.-Ing. Juergen Beisert | http://www.pengutronix.de Pengutronix - Linux Solutions for Science and Industry Vertretung Sued/Muenchen, Germany Phone: +49-5121-206917-7 | Fax: +49-5121-206917-9
Robert Schwebel skrev:
Quoted 3 lines
I've ported the changes from the wiki diff output; please send me a diff with a correct credit line for the document header. I suppose I've not correctly seen who made which changes.
Here's a patch fixing a slight confusion, where the description of threaded IRQs seemed to suggest that they're executed either in user or kernel context, while the real distinction is interrupt/process context. It also adds myself to the document header and updates the revhistory.
Michal Schmidt
RT-Preempt-HOWTO.docbook +37 -14
@@ -49,6 +49,15 @@ </affiliation> </collabname> </collab> + <collab> + <collabname> + <firstname>Michal</firstname> + <surname>Schmidt</surname> + <affiliation> + <address><email>[email protected]</email></address> + </affiliation> + </collabname> + </collab> </authorgroup>
@@ -63,9 +72,21 @@ <revhistory> <revision> + <revnumber>1.3</revnumber> + <date>2006-11-27</date> + <revremark>Clear the userspace/kernel vs. interrupt/process context + confusion; Michal Schmidt</revremark> + </revision> + <revision> + <revnumber>1.2</revnumber> + <date>2006-11-22</date> + <revremark>Clock Source and Clock Events; Juergen Beisert</revremark> + </revision> + <revision> <revnumber>1.1</revnumber> <date>2006-11-19</date> - <revremark>Typos added; patch by Dirk Behme</revremark> + <revremark>Typos fixed, IRQ_* flags documented; + Dirk Behme, Michal Schmidt</revremark> </revision> <revision> <revnumber>1.0</revnumber>
@@ -106,7 +127,7 @@ <listitem> <para> - Making in-kernel locking-primitives (using spinlocks) preemptible though + Making in-kernel locking-primitives (using spinlocks) preemptible through reimplementation with rtmutexes: </para> <para>
@@ -133,8 +154,9 @@ </para> <para> The RT-Preempt patch treats soft interrupt handlers in kernel thread - context, which is represented by a task_struct like a common userspace - process. However it is also possible register an IRQ in kernel context. + context, which is represented by a task_struct like a common process. + However it is also possible register an IRQ handler for immediate + execution in interrupt context. </para> </listitem>
@@ -266,8 +288,8 @@ </itemizedlist> <para> Further interesting options can be found under the "Kernel -Hacking" menu entry This menu lists options for system debugging and -performance measurement. Keep in mind that the debug options may either +Hacking" menu entry. This menu lists options for system debugging and +performance measurement. Keep in mind that the debug options may increase the kernel size or cause higher latencies. If you do not want to debug the kernel or get some automatically produced histograms, make sure that you don't activate any unneccessary options here. If you have
@@ -311,13 +333,14 @@ <para>Now have a look at the process list. As mentioned earlier in this document, the IRQ handlers are treated by a patched kernel in kernel -thread context. Single IRQ Handlers are transparently represented by task -structs like user space tasks. Thus they can be listed or controlled by +thread context. Single IRQ Handlers are transparently represented by +task_structs like other tasks. Thus they can be listed or controlled by userspace tools. The following figure shows partly a list of running processes on a system with a patched kernel.</para> <para>Note that, in contrast to a non-RT kernel, the interrupt handlers -are kernel threads here, so they are listed [in square brackets].</para> +have dedicated threads, so they are listed here like other kernel threads +[in square brackets].</para> <figure> <title>Checking for Kernel Threads in the Process List</title>
@@ -398,17 +421,17 @@ </programlisting> </figure> -<para> A "N" marks an IRQ which is declared as an hard IRQ and thus -handled in kernel context. In our example we have IRQ0, IRQ2 and IRQ7 -marked as hard IRQs, which are handled in kernel context. IRQ0 (timer) +<para> A "N" marks an IRQ which is declared as a hard IRQ and thus +handled in interrupt context. In our example we have IRQ0, IRQ2 and IRQ7 +marked as hard IRQs, which are handled in interrupt context. IRQ0 (timer) and IRQ2 (cascade controller) are set as hard IRQ by the system by default. IRQ7 (lpptest) is used for benchmarking interrupt latency time. The lpptest comes with the realtime preemption patch. To mark an IRQ as -hard IRQ, you will have to manipulate the IRQ decription manually. With +hard IRQ, you will have to manipulate the IRQ description manually. With the IRQ status marked as IRQ_NODELAY and the flags of the IRQ action marked as IRQF_NODELAY | IRQF_DISABLED the handler of the IRQ will not be treated as a kernel thread. Since such an IRQ handler is -unpreemptable, it's absolutely not recommended to mark an IRQ as hard +not preemptible, it's absolutely not recommended to mark an IRQ as hard IRQ manually while developing your own kernel modules. To change the priority of a kernel thread like e.g. an interrupt handler, you can use the chrt tool, which is downloadable at <xref linkend="5"/>. With this
Quoted 9 lines · Michal Schmidt
Robert Schwebel skrev:
Quoted 3 lines
I've ported the changes from the wiki diff output; please send me a diff with a correct credit line for the document header. I suppose I've not correctly seen who made which changes.
Here's a patch fixing a slight confusion, where the description of threaded IRQs seemed to suggest that they're executed either in user or kernel context, while the real distinction is interrupt/process context. It also adds myself to the document header and updates the revhistory.
Committed, please re-check.
Robert
Signature · 5 lines
Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
Pengutronix - Linux Solutions for Science and Industry
Handelsregister: Amtsgericht Hildesheim, HRA 2686
Hannoversche Str. 2, 31134 Hildesheim, Germany
Phone: +49-5121-206917-0 | Fax: +49-5121-206917-9