この文書では、Linux カーネルの機能を中心に、 huge page に関連するメモ リ管理の機能についてまとめる。概観とキーワードの把握、およびリファレン スの提供を目的である。特に non-trasparent な huge page と transparent huge page の違いとそれらの境界を把握することをひとつの主眼としている。 そのため、詳細さと網羅性はスコープ外である。
前置き、または免責
ある事実なり履歴を改竄できない形で複製して保持する技術の総称
> rp((fun F(A) -> case {lists:nth(rand:uniform(2), [z,d]), A} of {d, [z,z,z,z|_]} -> lists:reverse([kys,d|A]); {ZD,A} -> F([ZD|A]) end end )([])). | |
[d,z,z,d,z,z,d,z,z,z,d,z,z,z,z,z,z,d,kys] |
% S3CURL=.s3curl.15018.alice s3curl.pl --id cs -- -x 127.0.0.1:15018 -v -s 'http://test-acl.s3.amazonaws.com/?acl' | |
* Hostname was NOT found in DNS cache | |
* Trying 127.0.0.1... | |
* Connected to 127.0.0.1 (127.0.0.1) port 15018 (#0) | |
> GET http://test-acl.s3.amazonaws.com/?acl HTTP/1.1 | |
> User-Agent: curl/7.35.0 | |
> Host: test-acl.s3.amazonaws.com | |
> Accept: */* | |
> Proxy-Connection: Keep-Alive | |
> x-amz-date: Thu, 21 Jan 2016 02:18:41 GMT |
#!/bin/bash | |
trap 'echo "$0($LINENO) \"$BASH_COMMAND\"" ; exit 1' ERR | |
export S3CURL=.s3curl.15018.alice | |
s3curl.pl --id cs \ | |
--contentType 'application/xml' \ | |
-- \ | |
-d @- \ |
"use strict"; | |
var fs = require('fs'), AWS = require('aws-sdk'); | |
var config_file = process.argv[2]; | |
// console.log("configuration file:", config_file); | |
var conf = JSON.parse(fs.readFileSync(config_file, 'utf8')); | |
// console.log(conf); | |
var bucket = process.argv[3]; |
#!/usr/bin/env escript | |
% -*- mode: erlang -*- | |
main([BeamFile]) -> | |
{ok,{_,[{abstract_code,{_,AC}}]}} = beam_lib:chunks(BeamFile,[abstract_code]), | |
io:fwrite("~s~n", [erl_prettypr:format(erl_syntax:form_list(AC))]). |
-module(bm). | |
-export([help/0, bm/2, bm/3, bmp/3]). | |
help() -> | |
io:format("bm(F, Count) -- execute microbench function F\n"), | |
io:format("bm(F, Count) -- execute microbench function F\n"), | |
io:format("bm(F, CountPerProcess, Processes) -- execute microbench function F in parallel\n"), | |
io:format("bmp(F, CountPerProcess, Processes) -- execute microbench function F in parallel\n"), | |
ok. |
Reason: | |
exception: | |
exit({critical_error, | |
{doublewrite_diff, | |
{1054, 10, | |
<<112, 114, 101, 94, 49, 49, 102, 99, 51, 99, 55, 55, 45, 50, | |
51, 51, 49, 45, 52, 50, 55, 57, 45, 97, 97, 54, 100, 45, 98, | |
52, 97, 99, 51, 56, 57, 99, 50, 102, 100, 101, 94, 49>>}, | |
{<<238, 218, 215, 47, 192, 100, 61, 134, 197, 172>>, | |
<<144, 27, 54, 46, 180, 192, 91, 103, 59, 109>>}}}) |
==> machi (eunit) | |
Running test function(s): | |
machi_ap_repair_eqc:prop_repair_par_test_/0 | |
Got stable chain: [{a,{1113,[a,b,c,d,e],[],[]}},{b,{1113,[a,b,c,d,e],[],[]}},{c,{1113,[a,b,c,d,e],[],[]}},{d,{1113,[a,b,c,d,e],[],[]}},{e,{1113,[a,b,c,d,e],[],[]}}] | |
<o><o><o><o><o><o><o><o><o><o><o>## Turn ON partition: [{c,a},{a,c},{d,a},{a,d},{e,a},{a,e},{e,b},{b,e},{e,c},{c,e},{e,d},{d,e}] | |
## Chain state after tick()=[{a,{1115,[a,b],[],[c,d,e]}},{b,{1118,[b,c,d],[a],[e]}},{c,{1116,[b,c,d],[],[a,e]}},{d,{1116,[b,c,d],[],[a,e]}},{e,{1113,[a,b,c,d,e],[],[]}}] | |
<o><to:c:<0.1079.0>>## Chain state after tick()=[{a,{1119,[a],[],[b,c,d,e]}},{b,{1120,[b,c,d],[],[a,e]}},{c,{1120,[b,c,d],[],[a,e]}},{d,{1120,[b,c,d],[],[a,e]}},{e,{1115,[e],[],[a,b,c,d]}}] | |
<o><o><o><o>## Turn ON partition: [{d,a},{a,d}] | |
<o><o>## Turn ON partition: [{c,a},{a,c},{c,b},{b,c},{d,a},{a,d},{e,a},{a,e},{e,b},{b,e},{e,c},{c,e}] | |
<o>## Chain state after tick()=[{a,{1119,[a],[],[b,c,d,e]}},{b,{1120,[b,c,d],[],[a,e]}},{c,{1120,[b,c,d],[],[a,e]}},{ |