Hi Geoff,<br><br>Thanks for your reply, but I&#39;m not sure if you&#39;ve read the previous e-mails on this, this is due to the following, and please forgive me if I&#39;m wrong:<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><br>
</div>It is up to the system to prevent such abuse by user threads in<br>
preemptive multi-tasking environments. &nbsp;Modules are different because<br>
they run with the same privileges as the Linux kernel anyway, this is<br>
not the case for user applications.</blockquote><div>&nbsp;</div><div class="Ih2E3d">Yes, but we are talking of enabling IPC communication between oklinux user threads and l4 native ones, true; the usual way of doing this is by writing a proxy driver that does it, My point is that writing such driver is still dangerous, just as it is enabling direct IPC on the basis of giving the OKLInux user thread a higher priority than the OKLinuxkernel one, and making the oklinux scheduler aware of it, by the mechanism initially proposed in this discussion.&nbsp; <br>

<br>
</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">This does not work because it can allow the &quot;current&quot; pointer<br>
in Linux to get stale. &nbsp;e.g. Thread A runs, gets interrupted due<br>
to an OK Linux timer interrupt, OK Linux performs scheduling decision +<br>
dispatch and hence changes the current pointer. &nbsp;At this point<br>
the L4 timeslice expiry kicks in, the scheduler schedules Thread A<br>
due to robin-robin scheduling and at this point your current pointer<br>
is stale.</blockquote><div>&nbsp;</div><div>This wont happen since as initially pointed linux scheduler would&#39;ve been aware of it, and hence would&#39;ve have sent it to a waitqueue, before the userlevel threads enters into dealing with native l4-iguana operations (please refer to the first emails on this). therefore linux kernel will never perform as you say, as long as the thread remains on the waitqueue as proposed (making the scheduler aware of threads performing l4native aperations).<br>
&nbsp; <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Unfortunately this scheme does not work as pointed out above.<br>
<br>
Note that currently the system does not enforce who the OK Linux<br>
user threads can Ipc() to. &nbsp;What we are trying to say is you<br>
can in theory use Ipc() inside OK Linux user threads, however, there<br>
are many things that need to be considered if you dec</blockquote><div>&nbsp;</div><div>This is just a propossal for Damien&#39;s idea,&nbsp; on&nbsp; direct IPCing,&nbsp;  nothing else, on which I have proposed that it could be possible if the scheduler knows that it can&#39;t schedule tasks that are doing l4 IPCing.<br>
&nbsp;<br>Cheers AGAIN,<br><br><br>JORGE<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt;<br>
&gt;<br>
&gt; Cheers,<br>
&gt;<br>
&gt; Jorge<br>
<font color="#888888"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;-gl<br>
</font><div><div></div><div class="Wj3C7c"><br>
&gt;<br>
&gt; On Fri, Feb 29, 2008 at 12:49 AM, Nelson Tam &lt;<a href="mailto:nelson@ok-labs.com">nelson@ok-labs.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; Hi all,<br>
&gt; &gt;<br>
&gt; &gt; On 29/02/2008, at 1:58 PM, Kalamkar, Dhiraj D wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; I am not sure whether OKLinux userland process can access Iguana<br>
&gt; &gt; &gt; services directly even after the changes you suggested in OKLinux<br>
&gt; &gt; &gt; scheduler. As far as I understand Iguana server and other services<br>
&gt; &gt; &gt; are based on Iguana Single Address Space (SAS). i.e. Iguana server<br>
&gt; &gt; &gt; and other services work on assumption that they have same virtual to<br>
&gt; &gt; &gt; physical mappings for all the threads in Iguana PD (of course with<br>
&gt; &gt; &gt; different access rights). As OKLinux user processes are external<br>
&gt; &gt; &gt; address spaces (EAS) they can not access iguana services directly.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Of course, after enabling IPC for userland OKLinux process, you can<br>
&gt; &gt; &gt; do a raw IPC to any L4 thread and may write services which don&#39;t<br>
&gt; &gt; &gt; assume Iguana SAS.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; On 29/02/2008, at 2:12 PM, Jorge Torres wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; Yes, one could use L4 native calls, and non SAS based iguana<br>
&gt; &gt; &gt; services, like high resolution timers, or driver servers (I guess),<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Not all OKL4 services rely on the SAS. &nbsp;As correctly noted, as long as<br>
&gt; &gt; the service doesn&#39;t require any sort of shared memory, EAS threads<br>
&gt; &gt; would be able to utilise them also.<br>
&gt; &gt;<br>
&gt; &gt; Which brings me to an earlier question asked by Jorge: how to control<br>
&gt; &gt; IPC permissions in L4? &nbsp;The answer is L4_SecurityControl() (for IPC<br>
&gt; &gt; permissions you probably want the wrappers L4_IpcAllow() and cousins).<br>
&gt; &gt;<br>
&gt; &gt; But as I said before, you shouldn&#39;t do this in the OKLinux setup due<br>
&gt; &gt; to scheduling reasons.<br>
&gt; &gt; --<br>
&gt; &gt; (nt)<br>
&gt; &gt;<br>
&gt; &gt; Nelson Tam<br>
&gt; &gt; <a href="mailto:nelson@ok-labs.com">nelson@ok-labs.com</a><br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; Developer mailing list<br>
&gt; &gt; <a href="mailto:Developer@okl4.org">Developer@okl4.org</a><br>
&gt; &gt; <a href="https://lists.okl4.org/mailman/listinfo/developer" target="_blank">https://lists.okl4.org/mailman/listinfo/developer</a><br>
&gt; &gt;<br>
<br>
&gt; _______________________________________________<br>
&gt; Developer mailing list<br>
&gt; <a href="mailto:Developer@okl4.org">Developer@okl4.org</a><br>
&gt; <a href="https://lists.okl4.org/mailman/listinfo/developer" target="_blank">https://lists.okl4.org/mailman/listinfo/developer</a><br>
<br>
<br>
</div></div>--<br>
<br>
</blockquote></div><br>