1<html><head><meta http-equiv="Content-Type" content="text/html; charset=ANSI_X3.4-1968"><title>check_asym_packing</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Device Drivers"><link rel="up" href="ch01s03.html" title="Delaying, scheduling, and timer routines"><link rel="prev" href="API-update-sd-lb-stats.html" title="update_sd_lb_stats"><link rel="next" href="API-fix-small-imbalance.html" title="fix_small_imbalance"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">check_asym_packing</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-update-sd-lb-stats.html">Prev</a> </td><th width="60%" align="center">Delaying, scheduling, and timer routines</th><td width="20%" align="right"> <a accesskey="n" href="API-fix-small-imbalance.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-check-asym-packing"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>check_asym_packing — 2 Check to see if the group is packed into the sched doman. 3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">check_asym_packing </b>(</code></td><td>struct lb_env * <var class="pdparam">env</var>, </td></tr><tr><td> </td><td>struct sd_lb_stats * <var class="pdparam">sds</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idp1106874092"></a><h2>Arguments</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>env</code></em></span></dt><dd><p> 4 The load balancing environment. 5 </p></dd><dt><span class="term"><em class="parameter"><code>sds</code></em></span></dt><dd><p> 6 Statistics of the sched_domain which is to be packed 7 </p></dd></dl></div></div><div class="refsect1"><a name="idp1106876692"></a><h2>Description</h2><p> 8 </p><p> 9 10 This is primarily intended to used at the sibling level. Some 11 cores like POWER7 prefer to use lower numbered SMT threads. In the 12 case of POWER7, it can move to lower SMT modes only when higher 13 threads are idle. When in lower SMT modes, the threads will 14 perform better since they share less core resources. Hence when we 15 have idle threads, we want them to be the higher ones. 16 </p><p> 17 18 This packing function is run on idle threads. It checks to see if 19 the busiest CPU in this domain (core in the P7 case) has a higher 20 CPU number than the packing function is being run on. Here we are 21 assuming lower CPU number will be equivalent to lower a SMT thread 22 number. 23</p></div><div class="refsect1"><a name="idp1106878236"></a><h2>Return</h2><p> 24 1 when packing is required and a task should be moved to 25 this CPU. The amount of the imbalance is returned in *imbalance. 26</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-update-sd-lb-stats.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch01s03.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-fix-small-imbalance.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">update_sd_lb_stats</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">fix_small_imbalance</span></td></tr></table></div></body></html> 27