<div>Thanks for your guidance!!</div><div><br></div>Now: <div>My kernel version==4.0.0 libdrc-dev version==2.4.56<div>And after reading sample code, I realize that may be the reason is host memory should be aligned 64.</div><div><br></div><div>So:</div><div>I "sudo apt-get remove libdrm-dev" and install libdrm 2.4.60.2 (link:    https://launchpad.net/ubuntu/+archive/primary/+files/libdrm_2.4.60.orig.tar.gz)</div><div>It depends "sudo apt-get install libpciaccess-dev".</div><div><br></div><div>But:</div><div>After all of this, the run test in Beignet is OK, but one of my previous simple example has "Segmentation fault (core dumped)" when run, although compiling is OK. Error function is clGetDeviceIDs().</div><div>After rebuild and install the latest Beignet, problem is still.</div><div><br></div><div>I don't know why? Could you give me some guidance? (attachments are: log file and simple code)</div><div><br></div><div><div><br></div><div>769  summary:</div><div>770  ----------</div><div>771   total: 681</div><div>772   run: 680</div><div>773   pass: 680</div><div>774   fail: 0</div><div>775   pass rate: 1.000000</div></div><div><br></div><div><br><br><br><blockquote name="replyContent" class="ReferenceQuote" style="padding-left:5px;margin-left:5px;border-left:#b6b6b6 2px solid;margin-right:0">-----原始邮件-----<br>
<b>发件人:</b><span id="rc_from">"Guo, Yejun" <yejun.guo@intel.com></span><br>
<b>发送时间:</b><span id="rc_senttime">2015-05-04 09:58:24 (星期一)</span><br>
<b>收件人:</b> "Gao, Sanshan" <gss@mail.ustc.edu.cn>, "beignet@lists.freedesktop.org" <beignet@lists.freedesktop.org><br>
<b>抄送:</b> <br>
<b>主题:</b> RE: [Beignet] Shared Host Memory but not Share<br><br>



<style></style>


<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Please refer to the sample code in utests/runtime_use_host_ptr_buffer.cpp and  kernels/runtime_use_host_ptr_buffer.cl<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">To avoid internal copy, it requires libdrm version >= 2.4.58 and linux kernel version >= 3.16<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Beignet [mailto:<a href="mailto:beignet-bounces@lists.freedesktop.org" target="_blank">beignet-bounces@lists.freedesktop.org</a>]
<b>On Behalf Of </b>Gao, Sanshan<br>
<b>Sent:</b> Sunday, May 03, 2015 3:56 PM<br>
<b>To:</b> <a href="mailto:beignet@lists.freedesktop.org" target="_blank">beignet@lists.freedesktop.org</a><br>
<b>Subject:</b> [Beignet] Shared Host Memory but not Share<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi, alls,<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal">I want to use CL_MEM_USE_HOST_PTR to create a buffer object which shares host memory, so the changes to the elements in kernel can be used by host program.<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">But the result is that, I have changed the element in kernel, but the element in host program has not changed. I don't know why? Does this method still be a copy of host memory, so the change is not done to the host memory, but only device
 memory?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Hope for helps!<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><b>Device:</b> GIGA Mini PC with core i7 and Iris Pro, integrated GPU<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><b>Kernel function:</b><o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal"> 47 __kernel void PacketsIndexCalculation(<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 48                          const unsigned int     packets_info_size,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 49                          __global packet_info_t  *packets_info,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 50                          const unsigned int     flow_table_size )<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 51 {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 52     int gid = get_global_id(0);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 53     __global packet_info_t *p = packets_info + gid;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 54<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 55     //calculate hash value<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 56     <span style="color:red">p->index</span> = ( ((p->flow_id).src_ip & 0xff) | (((p->flow_id).dst_ip & 0xff)<<8) |<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 57                  (((p->flow_id).src_port & 0xff)<<16) | (((p->flow_id).dst_port & 0xff)<<24) )%flow_table_size;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 58    <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> 59 }<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal"><b>Problem:</b><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"> In host program, the memory pointed by &(p->index) has not changed by kernel function.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>


</blockquote></div></div>