<br><font size=2 face="sans-serif">All,</font>
<br>
<br><font size=2 face="sans-serif">Can someone explain why it is necessary
to partition the tag IDs between the kernel and user? &nbsp;I can not conceive
of any reason why this is needed. &nbsp; In addition, error checking the
value can result in perfectly functioning applications no longer working.
&nbsp; Long ago, the Linux BE ABI Specification stated:</font>
<br>
<br><font size=2 face="sans-serif">&quot;<i>The two largest tag ID&#8217;s (30
and 31) are reserved for runtime library or privileged services. The runtime
service routines are responsible for preserving the application&#8217;s tagmask
whenever the runtime must perform DMA synchronization. The application&#8217;s
tagmask is preserved either by fetching the current tagmask or by shadowing
the application tagmask setting.</i></font>
<br>
<br><font size=2 face="sans-serif"><i>The remaining thirty tag ID&#8217;s (0
through 29) are available for application use.&quot;</i></font>
<br>
<br><font size=2 face="sans-serif">We abandoned tag ID partitioning because
it wasn't required. &nbsp;Before making this code change, we need to fully
understand why this partitioning is needed, and if appropriate, open an
RFC to standardize it.</font>
<br><font size=2 face="sans-serif"><br>
Sincerely,<br>
<br>
Dan B.<br>
-------------------------------------------------------------------------------<br>
Daniel A. Brokenshire<br>
STSM / Emerging Products Development<br>
brokensh@us.ibm.com &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 512-838-3373</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Kazunori Asayama &lt;asayama@sm.sony.co.jp&gt;</b>
</font>
<br><font size=1 face="sans-serif">Sent by: cbe-oss-dev-bounces+brokensh=us.ibm.com@ozlabs.org</font>
<p><font size=1 face="sans-serif">06/27/2007 05:00 AM</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">gerhard.stenzel@de.ibm.com</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">cbe-oss-dev@ozlabs.org</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Re: [Cbe-oss-dev] [PATCH 3/3] libspe2:
Clean up proxy DMA and add error checks</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>Gerhard Stenzel &lt;gerhard.stenzel@de.ibm.com&gt;
wrote:<br>
&gt; One thing I noticed:<br>
&gt; <br>
&gt; &gt; + &nbsp; /* tag 16-31 are reserved by kernel */<br>
&gt; &gt; + &nbsp; if (tag &gt; 0x0f || tid &gt; 0xff || rid &gt; 0xff)
{<br>
&gt; &gt; + &nbsp; &nbsp; &nbsp;errno = EINVAL;<br>
&gt; &gt; + &nbsp; &nbsp; &nbsp;return -1;<br>
&gt; &gt; + &nbsp; }<br>
&gt; <br>
&gt; I failed to find these limits in the API spec. Maybe we should add
them?<br>
<br>
The range checks of tid and rid come from the size of &quot;MFC Class ID<br>
Register&quot; in the CBEA spec.<br>
<br>
The limit of tag comes from a comment in the kernel source code, but I<br>
could not find any other explicit explanation of it. We should add a<br>
Linux implementation note about this limit to the libspe spec, I<br>
think.<br>
<br>
--<br>
(ASAYAMA Kazunori<br>
 &nbsp;(asayama@sm.sony.co.jp))<br>
t<br>
_______________________________________________<br>
cbe-oss-dev mailing list<br>
cbe-oss-dev@ozlabs.org<br>
https://ozlabs.org/mailman/listinfo/cbe-oss-dev<br>
</font></tt>
<br>