<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? I can not conceive
of any reason why this is needed. In addition, error checking the
value can result in perfectly functioning applications no longer working.
Long ago, the Linux BE ABI Specification stated:</font>
<br>
<br><font size=2 face="sans-serif">"<i>The two largest tag ID’s (30
and 31) are reserved for runtime library or privileged services. The runtime
service routines are responsible for preserving the application’s tagmask
whenever the runtime must perform DMA synchronization. The application’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’s (0
through 29) are available for application use."</i></font>
<br>
<br><font size=2 face="sans-serif">We abandoned tag ID partitioning because
it wasn't required. 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 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 <asayama@sm.sony.co.jp></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 <gerhard.stenzel@de.ibm.com>
wrote:<br>
> One thing I noticed:<br>
> <br>
> > + /* tag 16-31 are reserved by kernel */<br>
> > + if (tag > 0x0f || tid > 0xff || rid > 0xff)
{<br>
> > + errno = EINVAL;<br>
> > + return -1;<br>
> > + }<br>
> <br>
> 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 "MFC Class ID<br>
Register" 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>
(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>