<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Kernel Mode SCIF  in Software Archive</title>
    <link>https://community.intel.com/t5/Software-Archive/Kernel-Mode-SCIF/m-p/945378#M18173</link>
    <description>&lt;P&gt;I can not figure this out from the tutorial. Hopefully folks can give me a hand ... So I have a set of client code resides inside MIC, and a set of server code lives in Xeon host - both allocate a piece of memory (kmalloc), described by a structure "mic_mem" as the following:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;struct mic_mem {&lt;/P&gt;
&lt;P&gt;void *base;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* address returned from kmalloc */&lt;/P&gt;
&lt;P&gt;off_t offset;&lt;/P&gt;
&lt;P&gt;};&lt;/P&gt;
&lt;P&gt;struct mic_mem lmem, rmem;&lt;/P&gt;
&lt;P&gt;lmem.offset&amp;nbsp;= scif_register(epd,&amp;nbsp;lmem.base, 2*PAGE_SIZE, 0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIF_PROT_READ|SCIF_PROT_WRITE,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIF_MAP_KERNEL);&lt;/P&gt;
&lt;P&gt;/*&lt;/P&gt;
&lt;P&gt;* then I use a pair of plain scif_send/scif_recv to exchange contents of mic_mem structure&lt;/P&gt;
&lt;P&gt;&amp;nbsp;* local mem in lmem, and remote mem in rmem w/ peer ...&lt;/P&gt;
&lt;P&gt;* ... so far so good ..&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;ret = scif_writeto(epd, lmem.offset+PAGE_SIZE, PAGE_SIZE, rmem.offset,,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIF_RMA_ORDERED);&lt;/P&gt;
&lt;P&gt;/* I'm thinking to write to&amp;nbsp;the bottom page of my local buffer to the remote upper page&lt;/P&gt;
&lt;P&gt;* unfortunately, I always get "-6" back from scif_writeto.&lt;/P&gt;
&lt;P&gt;* /&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I must mis-understand the programming model. Could someone explain exactly what the "offset" implies here ?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Wendy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 01 May 2013 00:23:04 GMT</pubDate>
    <dc:creator>Wendy__C_</dc:creator>
    <dc:date>2013-05-01T00:23:04Z</dc:date>
    <item>
      <title>Kernel Mode SCIF</title>
      <link>https://community.intel.com/t5/Software-Archive/Kernel-Mode-SCIF/m-p/945378#M18173</link>
      <description>&lt;P&gt;I can not figure this out from the tutorial. Hopefully folks can give me a hand ... So I have a set of client code resides inside MIC, and a set of server code lives in Xeon host - both allocate a piece of memory (kmalloc), described by a structure "mic_mem" as the following:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;struct mic_mem {&lt;/P&gt;
&lt;P&gt;void *base;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* address returned from kmalloc */&lt;/P&gt;
&lt;P&gt;off_t offset;&lt;/P&gt;
&lt;P&gt;};&lt;/P&gt;
&lt;P&gt;struct mic_mem lmem, rmem;&lt;/P&gt;
&lt;P&gt;lmem.offset&amp;nbsp;= scif_register(epd,&amp;nbsp;lmem.base, 2*PAGE_SIZE, 0,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIF_PROT_READ|SCIF_PROT_WRITE,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIF_MAP_KERNEL);&lt;/P&gt;
&lt;P&gt;/*&lt;/P&gt;
&lt;P&gt;* then I use a pair of plain scif_send/scif_recv to exchange contents of mic_mem structure&lt;/P&gt;
&lt;P&gt;&amp;nbsp;* local mem in lmem, and remote mem in rmem w/ peer ...&lt;/P&gt;
&lt;P&gt;* ... so far so good ..&lt;/P&gt;
&lt;P&gt;*/&lt;/P&gt;
&lt;P&gt;...&lt;/P&gt;
&lt;P&gt;ret = scif_writeto(epd, lmem.offset+PAGE_SIZE, PAGE_SIZE, rmem.offset,,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCIF_RMA_ORDERED);&lt;/P&gt;
&lt;P&gt;/* I'm thinking to write to&amp;nbsp;the bottom page of my local buffer to the remote upper page&lt;/P&gt;
&lt;P&gt;* unfortunately, I always get "-6" back from scif_writeto.&lt;/P&gt;
&lt;P&gt;* /&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I must mis-understand the programming model. Could someone explain exactly what the "offset" implies here ?&lt;/P&gt;
&lt;P&gt;Thanks,&lt;/P&gt;
&lt;P&gt;Wendy&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 01 May 2013 00:23:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Kernel-Mode-SCIF/m-p/945378#M18173</guid>
      <dc:creator>Wendy__C_</dc:creator>
      <dc:date>2013-05-01T00:23:04Z</dc:date>
    </item>
    <item>
      <title>I don't see why this shouldn</title>
      <link>https://community.intel.com/t5/Software-Archive/Kernel-Mode-SCIF/m-p/945379#M18174</link>
      <description>&lt;P&gt;I don't see why this shouldn't work - assuming there were no other errors along the way. If you use:&lt;/P&gt;
&lt;P&gt;ret = scif_writeto(epd, lmem.offset, 2*PAGE_SIZE, rmem.offset,&amp;nbsp;SCIF_RMA_ORDERED);&lt;/P&gt;
&lt;P&gt;does that write succeed? So it is only the offset addition that is messing up? (By the way, there is an extra comma in your scif_writeto statement. I'm assuming that was just a transcription error.)&lt;/P&gt;</description>
      <pubDate>Wed, 01 May 2013 19:03:08 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Kernel-Mode-SCIF/m-p/945379#M18174</guid>
      <dc:creator>Frances_R_Intel</dc:creator>
      <dc:date>2013-05-01T19:03:08Z</dc:date>
    </item>
    <item>
      <title>Thanks for the response. I've</title>
      <link>https://community.intel.com/t5/Software-Archive/Kernel-Mode-SCIF/m-p/945380#M18175</link>
      <description>&lt;P&gt;Thanks for the response. I've found&amp;nbsp;the problem ... I used an “int” to store the return code from scif_register() before storing it to a permanent “off_t” field. The value got truncated to “0” and subsequently passed to scif_writeto().&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 02 May 2013 17:47:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Software-Archive/Kernel-Mode-SCIF/m-p/945380#M18175</guid>
      <dc:creator>Wendy__C_</dc:creator>
      <dc:date>2013-05-02T17:47:34Z</dc:date>
    </item>
  </channel>
</rss>

