[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xen-ppc-devel
Subject:    Re: [XenPPC] [PATCH] [UPDATE] Xencomm
From:       Jimi Xenidis <jimix () watson ! ibm ! com>
Date:       2007-01-29 13:07:39
Message-ID: E0A0C75B-D6F6-4690-AAA0-D477A5D4B9A9 () watson ! ibm ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hollis, please ack the name change.

On Jan 29, 2007, at 1:45 AM, Jerone Young wrote:

> Here is yet another go at this. This patch I have thoroughly gone
> thought.
>
> Changes:
> 	- move xencomm_map_early to xencomm_map_no_alloc
>
> 	- added xencomm_free everywhere
> 	
> 	- return ERRNOs instead of -1
> 	
>
> Testing:
> 	- loaded Dom0
> 		- load modules xenblk(VIO) & xennet
> 	- lodaded DomU loading VI
> 		- load modules xenblk(VIO) & xennet
> 	
> It appears that it allways hits create_inline everytime within the  
> _map
> functions and so xencomm_create_mini() & xencomm_create are not  
> getting
> worked out yet.

Then please temporarily disable inline and test it until you are  
satisfied.
Certainly domain creation should have cause a non-mini create.

>
> But I think I've found problems making all the suggestions workout:
>
> For xencomm_map & xencomm_map_no_alloc there is a bit of an issue. The
> caller has to accept the fact that it will get physcial address, since
> it does not know if argument address can be made inline or not.

Unless I'm missing something, the descriptor is opaque and the caller  
should have no need to understand the contents, which is why we made  
it a void *.

> It has
> to use the resulting address in the following hypercall, and  
> converting
> it is unsure, since if are argument address can be made to an  
> inline you
> are converting a physical address to an invalid physical address.
>
> The other problem that is created in this case is where we get an
> physical address from xencomm_map that is returned from function
> xencomm_pa() and cannot be simply converted back to a it's resulting
> virtual address with __va().

As our previous email discussed, this thread:
   http://lists.xensource.com/archives/html/xen-ppc-devel/2007-01/ 
msg00218.html
only __pa() and __va() should be applied to the descriptor, in the  
xencomm routines.


>
> If I'm wrong about this please blast away :-)

Please respin and test.
-JX


[Attachment #5 (unknown)]

<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: \
after-white-space; ">Hollis, please ack the name change.<DIV><BR><DIV><DIV>On Jan 29, \
2007, at 1:45 AM, Jerone Young wrote:</DIV><BR \
class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><DIV style="margin-top: \
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Here is yet another \
go at this. This patch I have thoroughly gone</DIV><DIV style="margin-top: 0px; \
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">thought.<SPAN \
class="Apple-converted-space"> </SPAN></DIV><DIV style="margin-top: 0px; \
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; \
"><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; \
margin-left: 0px; ">Changes:</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-tab-span" \
style="white-space:pre">	</SPAN>- move xencomm_map_early to \
xencomm_map_no_alloc</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV \
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; \
"><SPAN class="Apple-tab-span" style="white-space:pre">	</SPAN>- added xencomm_free \
everywhere</DIV><P style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><SPAN \
class="Apple-tab-span" style="white-space:pre">	</SPAN><BR \
class="khtml-block-placeholder"></P><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; "><SPAN class="Apple-tab-span" \
style="white-space:pre">	</SPAN>- return ERRNOs instead of -1</DIV><P style="margin: \
0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><SPAN class="Apple-tab-span" \
style="white-space:pre">	</SPAN><SPAN class="Apple-converted-space"> </SPAN><BR \
class="khtml-block-placeholder"></P><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV \
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; \
">Testing:</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; \
margin-left: 0px; "><SPAN class="Apple-tab-span" style="white-space:pre">	</SPAN>- \
loaded Dom0</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; \
margin-left: 0px; "><SPAN class="Apple-tab-span" \
style="white-space:pre">	</SPAN><SPAN class="Apple-tab-span" \
style="white-space:pre">	</SPAN>- load modules xenblk(VIO) &amp; xennet</DIV><DIV \
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; \
"><SPAN class="Apple-tab-span" style="white-space:pre">	</SPAN>- lodaded DomU loading \
VI</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; \
margin-left: 0px; "><SPAN class="Apple-tab-span" \
style="white-space:pre">	</SPAN><SPAN class="Apple-tab-span" \
style="white-space:pre">	</SPAN>- load modules xenblk(VIO) &amp; xennet</DIV><P \
style="margin: 0.0px 0.0px 0.0px 0.0px; min-height: 14.0px"><SPAN \
class="Apple-tab-span" style="white-space:pre">	</SPAN><BR \
class="khtml-block-placeholder"></P><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">It appears that it allways hits create_inline \
everytime within the _map</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">functions and so xencomm_create_mini() &amp; \
xencomm_create are not getting</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">worked out yet.</DIV></BLOCKQUOTE><DIV><BR \
class="khtml-block-placeholder"></DIV><DIV>Then please temporarily disable inline and \
test it until you are satisfied.</DIV><DIV>Certainly domain creation should have \
cause a non-mini create.</DIV><DIV><BR \
class="khtml-block-placeholder"></DIV><BLOCKQUOTE type="cite"><DIV style="margin-top: \
0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR \
class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">But I think I've found problems making all \
the suggestions workout:</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV \
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; \
">For xencomm_map &amp; xencomm_map_no_alloc there is a bit of an issue. \
The</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; \
margin-left: 0px; ">caller has to accept the fact that it will get physcial address, \
since</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; \
margin-left: 0px; ">it does not know if argument address can be made inline or \
not.<BR></DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Unless \
I'm missing something, the descriptor is opaque and the caller should have no need to \
understand the contents, which is why we made it a void *.</DIV><BR><BLOCKQUOTE \
type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; \
margin-left: 0px; "> It has</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">to use the resulting address in the following \
hypercall, and converting</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">it is unsure, since if are argument address \
can be made to an inline you</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">are converting a physical address to an \
invalid physical address.<SPAN class="Apple-converted-space"> </SPAN></DIV><DIV \
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; \
min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">The other problem that is created in this \
case is where we get an</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">physical address from xencomm_map that is \
returned from function</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">xencomm_pa() and cannot be simply converted \
back to a it's resulting</DIV><DIV style="margin-top: 0px; margin-right: 0px; \
margin-bottom: 0px; margin-left: 0px; ">virtual address with \
__va().</DIV></BLOCKQUOTE><DIV><BR class="khtml-block-placeholder"></DIV>As our \
previous email discussed, this thread:</DIV><DIV>  <FONT class="Apple-style-span" \
face="Helvetica"><A href="http://lists.xensource.com/archives/html/xen-ppc-devel/2007- \
01/msg00218.html">http://lists.xensource.com/archives/html/xen-ppc-devel/2007-01/msg00218.html</A></FONT></DIV><DIV>only \
__pa() and __va() should be applied to the descriptor, in the xencomm \
routines.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR><BLOCKQUOTE \
type="cite"><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; \
margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; \
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">If I'm wrong about this \
please blast away :-)</DIV></BLOCKQUOTE><DIV><BR \
class="khtml-block-placeholder"></DIV><DIV>Please respin and \
test.</DIV><DIV>-JX</DIV></DIV><BR></DIV></BODY></HTML>



_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic