<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Hi Zeus,<br>
      <br>
      There is rudimentary support for global CPU scheduling via
      dispatcher manifests and phase changes. See
      usr/monitor/resource_ctrl.c and lib/barrelfish/resource_ctrl.c.<br>
      <br>
      Thread migration is not yet implemented in barrelfish and it's
      difficult. The reason are core-local state, like capabilities, and
      communication channels, which are explicitly setup to a particular
      dispatcher running on a core. In order to migrate a thread,
      capabilities need to be migrated and channels re-established on
      the new dispatcher/core.<br>
      <br>
      There currently is a hack that allows you to migrate a thread from
      one CPU to another, without migrating any channels or
      capabilities. This works as long as the thread has not setup any
      of this state on a core and was useful in porting POSIX
      applications that typically create a thread first and then pin it
      to a particular core immediately after creation. This is invoked
      via domain_thread_move_to(), defined in lib/barrelfish/domain.c.<br>
      <br>
      Barrelfish's model is not to share any OS state among cores, so
      even if you have a spanned shared-memory domain, its capabilities
      are replicated (but currently not kept consistent) among all
      involved cores.<br>
      <br>
      Hope this helps,<br>
      Simon<br>
      <br>
      On 12-10-30 09:43 AM, Zeus G&oacute;mez Marmolejo wrote:<br>
    </div>
    <blockquote
cite="mid:CAPgvYs4aJ6vA8aEpCpJukZyFhfBQ4bMYr7Zhxd7=VJqabvH05w@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      Hi all,
      <div><br>
      </div>
      <div>We were discussing some interesting work that could be tested
        on the ARM big.LITTLE architecture. As this is an heterogeneous
        system, it is very interesting for Barrelfish. But I had some
        questions regarding the task scheduling. As far as I know,
        Barrelfish doesn't support system wide CPU scheduling.</div>
      <div><br>
      </div>
      <div>It can happen that an application running on a specific core,
        because of the&nbsp;asymmetric cpu load or&nbsp;its own profile may need
        to be 'migrated' to a faster core (or a different type of the
        current one). Would it be difficult to do this?</div>
      <div><br>
      </div>
      <div>I guess in a shared memory system, the dispatcher
        capabilities can be transferred from one core to the other. Is
        this possible? But it would be necessary to have a "cpu server"
        or something like that, keeping track of the use of each CPU.</div>
      <div><br>
      </div>
      <div>Then in this case, it would be desirable to switch off a CPU
        completely, when all tasks running there have been migrated out
        of the core. How this could be achieved in Barrelfish?</div>
      <div><br>
      </div>
      <div>
        <br>
      </div>
      <div>Cheers,<br clear="all">
        <div><br>
        </div>
        -- <br>
        Zeus G&oacute;mez Marmolejo<br>
        Barcelona Supercomputing Center<br>
        PhD student<br>
        <a moz-do-not-send="true" href="http://www.bsc.es"
          target="_blank">http://www.bsc.es</a><br>
        <br>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Barrelfish-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Barrelfish-users@lists.inf.ethz.ch">Barrelfish-users@lists.inf.ethz.ch</a>
<a class="moz-txt-link-freetext" href="https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users">https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>