<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Intel Communities: Message List - Queries on ETI Baremetal framework</title>
    <link>http://communities.intel.com/community/marc?view=discussions</link>
    <description>Most recent forum messages</description>
    <language>en</language>
    <pubDate>Sat, 03 Sep 2011 02:42:40 GMT</pubDate>
    <generator>Jive SBS 5.0.2.0  (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2011-09-03T02:42:40Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>Re: Queries on ETI Baremetal framework</title>
      <link>http://communities.intel.com/message/137836?tstart=0#137836</link>
      <description>&lt;!-- [DocumentBodyStart:21fe63f5-530e-40b3-8655-43ce7f7a2d72] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;those two bytes are actually the encoding for an instruction that the scc team added to the p54c to&lt;/p&gt;&lt;p&gt;flusht the cache. since its not part of the standard pentium instruction set, gas doesn't really&lt;/p&gt;&lt;p&gt;know about it, so we cheat by issuing the opcode as a byte constant...the processor interprets&lt;/p&gt;&lt;p&gt;it as a flush of all those lines in the L1 which have the MPB bit set&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;as far as the second bit, i usually set up a reader/writer ring buffer, one for each processor&lt;/p&gt;&lt;p&gt;pair thats going to communicate. a processors sends by writing data into the ring, and&lt;/p&gt;&lt;p&gt;advancing the write pointer. the receiver polls the write pointer, and when it has consumed&lt;/p&gt;&lt;p&gt;the data it advances the read pointer. if the write pointer is up against the read pointer, its&lt;/p&gt;&lt;p&gt;means the writer has filled up the buffer, it needs to block or busy-spin, because the buffer is full.&lt;/p&gt;&lt;p&gt;if the read pointer is at the write pointer, it means the channel is empty. this structure works&lt;/p&gt;&lt;p&gt;without locks because each of the two pointers has exactly one writer and one reader.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;if you set up 47 of these channels in each mpb, it means you have only 174 bytes per channel,&lt;/p&gt;&lt;p&gt;which is why we chose to put the messages in dram, so we could send more data between&lt;/p&gt;&lt;p&gt;each polling interval (bandwidth delay product)&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;obviously there are all sorts of other schemes you could come up with for managing/sharing&lt;/p&gt;&lt;p&gt;the mpb buffer space.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:21fe63f5-530e-40b3-8655-43ce7f7a2d72] --&gt;</description>
      <pubDate>Sat, 03 Sep 2011 02:42:40 GMT</pubDate>
      <author>webadmin@intel.com</author>
      <guid>http://communities.intel.com/message/137836?tstart=0#137836</guid>
      <dc:date>2011-09-03T02:42:40Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Queries on ETI Baremetal framework</title>
      <link>http://communities.intel.com/message/137816?tstart=0#137816</link>
      <description>&lt;!-- [DocumentBodyStart:60352ae5-98b9-42da-8251-54c9d2856217] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Sorry but i am still not very clear. what i understand is that the asm statement just defines two bytes.&lt;/p&gt;&lt;p&gt;I am not getting how is it actually causing the mpb to be invalidated.&lt;/p&gt;&lt;p&gt;Also please suggest how to go about polling the mpb for messages.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks&lt;/p&gt;&lt;p&gt;Vaibhav &lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:60352ae5-98b9-42da-8251-54c9d2856217] --&gt;</description>
      <pubDate>Sat, 03 Sep 2011 02:23:50 GMT</pubDate>
      <author>webadmin@intel.com</author>
      <guid>http://communities.intel.com/message/137816?tstart=0#137816</guid>
      <dc:date>2011-09-03T02:23:50Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Queries on ETI Baremetal framework</title>
      <link>http://communities.intel.com/message/137829?tstart=0#137829</link>
      <description>&lt;!-- [DocumentBodyStart:7d606ddd-374a-4c10-83ca-e6ba92f64042] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;the asm statement is called when you are unsure that the values you may have in the L1 cache&lt;/p&gt;&lt;p&gt;represent whats in the underlying memory. typically you would flush at each message boundary,&lt;/p&gt;&lt;p&gt;although i suppose its possible to invalidate only when cycling around to the beginning of a ring&lt;/p&gt;&lt;p&gt;buffer.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;scc_find_region just gives you the address for the base of the mpb for some remote processor&lt;/p&gt;&lt;p&gt;as mapped to your core address space. this value doesn't change during the run and should be&lt;/p&gt;&lt;p&gt;cached in some local structure as the implementation of scc_find_region isn't particularily efficient&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:7d606ddd-374a-4c10-83ca-e6ba92f64042] --&gt;</description>
      <pubDate>Sat, 03 Sep 2011 00:49:21 GMT</pubDate>
      <author>webadmin@intel.com</author>
      <guid>http://communities.intel.com/message/137829?tstart=0#137829</guid>
      <dc:date>2011-09-03T00:49:21Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Queries on ETI Baremetal framework</title>
      <link>http://communities.intel.com/message/137824?tstart=0#137824</link>
      <description>&lt;!-- [DocumentBodyStart:e1d90dd5-fff8-4e53-9ded-619f50acfb02] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Thanks hoffman for the reply! But I am not clear&lt;/p&gt;&lt;p&gt;about the the invalidate function.Could you please explain a little how the asm statement is &lt;/p&gt;&lt;p&gt;causing cache invalidation ? Also ,&amp;nbsp; should the scc_find_region be used for polling the mpb as well ?&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-Thanks&lt;/p&gt;&lt;p&gt;Vaibhav&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:e1d90dd5-fff8-4e53-9ded-619f50acfb02] --&gt;</description>
      <pubDate>Fri, 02 Sep 2011 23:09:29 GMT</pubDate>
      <author>webadmin@intel.com</author>
      <guid>http://communities.intel.com/message/137824?tstart=0#137824</guid>
      <dc:date>2011-09-02T23:09:29Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:replyCount>3</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Queries on ETI Baremetal framework</title>
      <link>http://communities.intel.com/message/137799?tstart=0#137799</link>
      <description>&lt;!-- [DocumentBodyStart:56cdafd8-b327-4061-a603-b90c9a6ece36] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;well, in ETI land, assuming you are doing polling, all you'd need to do is run&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; memory_region m;&lt;/p&gt;&lt;p&gt;&amp;nbsp; scc_find_region(MEMORY_REGION_MPB, target, &amp;amp;m)&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;where m is defined in memory_region.h, and target is the name of the remote node.&lt;/p&gt;&lt;p&gt;m will contain a pointer in your address space to that node's 8k MPB base.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;static inline void invalidate_l1_mpb()&lt;br/&gt;{&lt;br/&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; __asm__ volatile ( ".byte 0x0f; .byte 0x0a;\n" );&lt;br/&gt;}&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;would then be used to flush the lines with the MPB tag&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:56cdafd8-b327-4061-a603-b90c9a6ece36] --&gt;</description>
      <pubDate>Fri, 02 Sep 2011 19:26:51 GMT</pubDate>
      <author>webadmin@intel.com</author>
      <guid>http://communities.intel.com/message/137799?tstart=0#137799</guid>
      <dc:date>2011-09-02T19:26:51Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:replyCount>4</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Queries on ETI Baremetal framework</title>
      <link>http://communities.intel.com/message/137792?tstart=0#137792</link>
      <description>&lt;!-- [DocumentBodyStart:5bfbb251-8146-40d3-9156-2f92921ac9f1] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Actually&amp;nbsp; right now my aim is to gain a better understanding of the system and of the tradeoffs involved in message-passing(such as dram vs mpb).&lt;/p&gt;&lt;p&gt;So to begin with I was thinking of implementing few simple baremetal applications which can use mpb for message passing. &lt;/p&gt;&lt;p&gt;This is basically primitive work. So I was hoping to get some directions and may be some sample code so that I can get started.&lt;/p&gt;&lt;p&gt;I am not looking into running benchmarks and collecting statistics right now (though it might come at a later stage).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks&lt;/p&gt;&lt;p&gt;Vaibhav &lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5bfbb251-8146-40d3-9156-2f92921ac9f1] --&gt;</description>
      <pubDate>Fri, 02 Sep 2011 17:03:56 GMT</pubDate>
      <author>webadmin@intel.com</author>
      <guid>http://communities.intel.com/message/137792?tstart=0#137792</guid>
      <dc:date>2011-09-02T17:03:56Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:replyCount>5</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Queries on ETI Baremetal framework</title>
      <link>http://communities.intel.com/message/137790?tstart=0#137790</link>
      <description>&lt;!-- [DocumentBodyStart:e74477ca-8967-40cd-8142-1fe233e4f319] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;it should be pretty straightforward to use the '-r' mode and set up ring buffers in the mpbs&lt;/p&gt;&lt;p&gt;in order to run benchmarks. is it acceptable to poll for message arrival, or would you prefer&lt;/p&gt;&lt;p&gt;to use asynchronous interrupts?&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:e74477ca-8967-40cd-8142-1fe233e4f319] --&gt;</description>
      <pubDate>Fri, 02 Sep 2011 15:37:23 GMT</pubDate>
      <author>webadmin@intel.com</author>
      <guid>http://communities.intel.com/message/137790?tstart=0#137790</guid>
      <dc:date>2011-09-02T15:37:23Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:replyCount>6</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Queries on ETI Baremetal framework</title>
      <link>http://communities.intel.com/message/137740?tstart=0#137740</link>
      <description>&lt;!-- [DocumentBodyStart:82f413c5-7db7-4eaf-bae6-15fe3f93baae] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;I am interested in looking at the messaging performance and don't care much about MPI.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:82f413c5-7db7-4eaf-bae6-15fe3f93baae] --&gt;</description>
      <pubDate>Fri, 02 Sep 2011 12:56:26 GMT</pubDate>
      <author>webadmin@intel.com</author>
      <guid>http://communities.intel.com/message/137740?tstart=0#137740</guid>
      <dc:date>2011-09-02T12:56:26Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:replyCount>7</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Queries on ETI Baremetal framework</title>
      <link>http://communities.intel.com/message/137566?tstart=0#137566</link>
      <description>&lt;!-- [DocumentBodyStart:0f881738-2350-4d99-986a-9eb4484a3c4d] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;with the -r option, the messaging that the ETI software uses doesn't use the MPBs, you're free to&lt;/p&gt;&lt;p&gt;play with them as you like. which implies you'd need to write your own messaging layer in&lt;/p&gt;&lt;p&gt;order to use them.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;it would be possible to add another mode which drastically reduces the MPI mtu and&lt;/p&gt;&lt;p&gt;allocates the message buffers out of the MPB space. we dont really have alot of resources&lt;/p&gt;&lt;p&gt;to do this, but are looking at various options for ongoing support of the software, so implementing&lt;/p&gt;&lt;p&gt;this is a possiblity&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;how important is the MPI layer to your work? or are you just interested in looking at messaging&lt;/p&gt;&lt;p&gt;performance?&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:0f881738-2350-4d99-986a-9eb4484a3c4d] --&gt;</description>
      <pubDate>Wed, 31 Aug 2011 17:33:22 GMT</pubDate>
      <author>webadmin@intel.com</author>
      <guid>http://communities.intel.com/message/137566?tstart=0#137566</guid>
      <dc:date>2011-08-31T17:33:22Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:replyCount>8</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Queries on ETI Baremetal framework</title>
      <link>http://communities.intel.com/message/137545?tstart=0#137545</link>
      <description>&lt;!-- [DocumentBodyStart:2c72fb21-5173-4415-ae34-0d0ece65e143] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Hi hoffman,&lt;/p&gt;&lt;p&gt;I wish to experiment with message passing entirely using mpb. Can you please suggest how to proceed after &lt;/p&gt;&lt;p&gt;using the -r option. The user manual says that after using -r&amp;nbsp; MPI and streams are unavailable.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;-Thanks&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:2c72fb21-5173-4415-ae34-0d0ece65e143] --&gt;</description>
      <pubDate>Wed, 31 Aug 2011 16:55:39 GMT</pubDate>
      <author>webadmin@intel.com</author>
      <guid>http://communities.intel.com/message/137545?tstart=0#137545</guid>
      <dc:date>2011-08-31T16:55:39Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:replyCount>9</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
  </channel>
</rss>

