<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:#002060;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#002060">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#002060">I posted this on the OSE forum some weeks ago, but I did not get any response.  I hope someone on this list can give me some guidance, because this is getting critical for me.  Thanks.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#002060">I have a virtual device model plugged in through PDM, in which a PCIe switch is plugged into the ICH9 host bus, and a PCIe endpoint is connected to the secondary bus of the PCIe switch (each is a different PDM
 instance). The endpoint is capable of accessing system memory via DMA, which I model by calling PDMDevHlpPhysRead() and PDMDevHlpPhysWrite() from a separate thread that I have. So far so good.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#002060">Now I need to add support for PCIe "atomic" operations. These are a set of endpoint initiated read/modify/write operations that are carried out without interruption. It's quite easy to implement the read/modify/write
 part in my model, but I am concerned about the possibility of another VirtualBox thread doing another memory access in between the read/modify/write phases.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#002060">Is there a way to ensure nothing else can access memory during the critical steps of the read/modify/write? I have mutual exclusion between my own two threads, but I'm worried about guest software or other device
 models that are not in my control.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="color:#002060">_____________________________________________<o:p></o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;color:#002060"><o:p> </o:p></span></b></p>
<p class="MsoNormal"><b><span style="color:#002060">Ric Vilbig</span></b><span style="color:#002060"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#002060">Mentor Graphics, Emulation Division</span><span style="font-size:10.0pt;color:#002060"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#002060">46871 Bayside Parkway, Fremont CA, 94538<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#002060">Phone:  510-354-7360<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#002060">Mobile: 408-529-2365<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#002060">email:  <a href="mailto:ric_vilbig@mentor.com">
<span style="color:blue">ric_vilbig@mentor.com</span></a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>