WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] mapped memory delay?

This sounds like the symptoms you'd experience with multiple functions
using the same event channel port.

How are you obtaining the ports you're using to communicate?
Are you using alloc_unbound ?

c.

On Fri, 2005-02-18 at 22:41, Xin Zhao wrote:
> Thanks for your advice. I tried rmb() and wmb() before I sent last email,
> they does not help.
> 
> Actually I am running a single processor core. :( So it should not have
> any delay. But I still ran into the problem. Another interesting thing is
> that my working flow should be as follows:
> 
> domU issue a request -> generate an irq at dom0 -> domU waits for reply->
> dom0 gets the request, processes it and reply -> domU wakes up by irq
> caused by notification event sent by dom0, gets the result -> DomU sends
> another request
> 
> That means, if domU does not get the irq from dom0, it will not issue next
> request. Because of the problem of req_prod updates, dom0 failed to get
> the request and thus will not process it, not mention to reply. So dom0
> should not be able to receive next request or next irq.
> 
> But the fact is that dom0 can still get irq even it failed to get last
> request. It appears that dom0 issues multiple irqs for one event. How
> could that happed?
> 
> -x
> 
> 
> On Fri, 18 Feb 2005, Christopher Clark wrote:
> 
> > Are you running this on a single processor core?
> >
> > If not, it sounds to me like a cache coherency issue - you'll need a
> > write memory barrier after writing to the req_prod.  If you're using
> > the ring macros from io/ring.h this should be already taken care of
> > for you in the push macros.
> >
> > c.
> >
> >
> > On Fri, 18 Feb 2005 16:44:30 -0500 (EST), Xin Zhao
> > <zhaoxin@xxxxxxxxxxxxxx> wrote:
> > > I ran into the following problem:
> > >
> > > I setup a shared ring page and an event channel between two domains (dom0
> > > and one domU), DomU increases req_prod by one and notify the dom0 via the
> > > event channel, dom0 then check req_prod pointer and process the request in
> > > the shared ring. But I noticed that sometimes dom0 get the irq triggered
> > > by the notification event, but the req_prod remains the same. This
> > > situation only happened occasionally. Why? Because the req_prod is saved
> > > in the shared, mapped page, I suspect that there is a delay of updates
> > > between two domains. Is that true? If so, how to handle this problem?
> > >
> > > Your advice is highly appreciated!
> > >
> > > -x
> > >
> > > -------------------------------------------------------
> > > SF email is sponsored by - The IT Product Guide
> > > Read honest & candid reviews on hundreds of IT Products from real users.
> > > Discover which products truly live up to the hype. Start reading now.
> > > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
> > > _______________________________________________
> > > Xen-devel mailing list
> > > Xen-devel@xxxxxxxxxxxxxxxxxxxxx
> > > https://lists.sourceforge.net/lists/listinfo/xen-devel
> > >
> >



-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/xen-devel

<Prev in Thread] Current Thread [Next in Thread>